diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f6ac20a..2070c95 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -67,12 +67,14 @@ - + - + + + - + - + + + { private Context context; + private List iconData = new ArrayList<>(); + private List itemData = new ArrayList<>(); public HomeRecycleAdapter(Context context) { this.context = context; } + public void setItemData(@Nullable List icons, @Nullable List items) { + this.iconData = icons; + this.itemData = items; + } + @NonNull @Override public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -30,7 +40,7 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - holder.bindView(context, position); + holder.bindView(position); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override @@ -43,7 +53,7 @@ @Override public int getItemCount() { - return Constant.ITEMS.size(); + return itemData.size(); } private OnGridItemClickListener clickListener; @@ -56,7 +66,7 @@ this.clickListener = onGridItemClickListener; } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { private ImageView imageView; private TextView textView; @@ -67,9 +77,9 @@ textView = itemView.findViewById(R.id.textView); } - void bindView(Context context, int position) { - imageView.setBackgroundResource(Constant.ICONS.get(position)); - textView.setText(Constant.ITEMS.get(position)); + void bindView(int position) { + imageView.setBackgroundResource(iconData.get(position)); + textView.setText(itemData.get(position)); } } } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f6ac20a..2070c95 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -67,12 +67,14 @@ - + - + + + { private Context context; + private List iconData = new ArrayList<>(); + private List itemData = new ArrayList<>(); public HomeRecycleAdapter(Context context) { this.context = context; } + public void setItemData(@Nullable List icons, @Nullable List items) { + this.iconData = icons; + this.itemData = items; + } + @NonNull @Override public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -30,7 +40,7 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - holder.bindView(context, position); + holder.bindView(position); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override @@ -43,7 +53,7 @@ @Override public int getItemCount() { - return Constant.ITEMS.size(); + return itemData.size(); } private OnGridItemClickListener clickListener; @@ -56,7 +66,7 @@ this.clickListener = onGridItemClickListener; } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { private ImageView imageView; private TextView textView; @@ -67,9 +77,9 @@ textView = itemView.findViewById(R.id.textView); } - void bindView(Context context, int position) { - imageView.setBackgroundResource(Constant.ICONS.get(position)); - textView.setText(Constant.ITEMS.get(position)); + void bindView(int position) { + imageView.setBackgroundResource(iconData.get(position)); + textView.setText(itemData.get(position)); } } } diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index b9c4615..d9b10e0 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; import java.util.ArrayList; @@ -62,7 +63,10 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - Glide.with(context).load(mediaList.get(position)).into(holder.imageView); + Glide.with(context) + .load(mediaList.get(position)) + .apply(new RequestOptions().error(R.drawable.ic_load_error)) + .into(holder.imageView); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f6ac20a..2070c95 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -67,12 +67,14 @@ - + - + + + { private Context context; + private List iconData = new ArrayList<>(); + private List itemData = new ArrayList<>(); public HomeRecycleAdapter(Context context) { this.context = context; } + public void setItemData(@Nullable List icons, @Nullable List items) { + this.iconData = icons; + this.itemData = items; + } + @NonNull @Override public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -30,7 +40,7 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - holder.bindView(context, position); + holder.bindView(position); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override @@ -43,7 +53,7 @@ @Override public int getItemCount() { - return Constant.ITEMS.size(); + return itemData.size(); } private OnGridItemClickListener clickListener; @@ -56,7 +66,7 @@ this.clickListener = onGridItemClickListener; } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { private ImageView imageView; private TextView textView; @@ -67,9 +77,9 @@ textView = itemView.findViewById(R.id.textView); } - void bindView(Context context, int position) { - imageView.setBackgroundResource(Constant.ICONS.get(position)); - textView.setText(Constant.ITEMS.get(position)); + void bindView(int position) { + imageView.setBackgroundResource(iconData.get(position)); + textView.setText(itemData.get(position)); } } } diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index b9c4615..d9b10e0 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; import java.util.ArrayList; @@ -62,7 +63,10 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - Glide.with(context).load(mediaList.get(position)).into(holder.imageView); + Glide.with(context) + .load(mediaList.get(position)) + .apply(new RequestOptions().error(R.drawable.ic_load_error)) + .into(holder.imageView); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/casic/dcms/base/BaseActivity.java b/app/src/main/java/com/casic/dcms/base/BaseActivity.java index caf0356..2ca87fe 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseActivity.java +++ b/app/src/main/java/com/casic/dcms/base/BaseActivity.java @@ -17,8 +17,8 @@ setContentView(initLayoutView()); ButterKnife.bind(this); QMUIStatusBarHelper.translucent(this);//沉浸式状态栏 - setupTopBarLayout(); initData(); + setupTopBarLayout(); initEvent(); } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f6ac20a..2070c95 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -67,12 +67,14 @@ - + - + + + { private Context context; + private List iconData = new ArrayList<>(); + private List itemData = new ArrayList<>(); public HomeRecycleAdapter(Context context) { this.context = context; } + public void setItemData(@Nullable List icons, @Nullable List items) { + this.iconData = icons; + this.itemData = items; + } + @NonNull @Override public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -30,7 +40,7 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - holder.bindView(context, position); + holder.bindView(position); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override @@ -43,7 +53,7 @@ @Override public int getItemCount() { - return Constant.ITEMS.size(); + return itemData.size(); } private OnGridItemClickListener clickListener; @@ -56,7 +66,7 @@ this.clickListener = onGridItemClickListener; } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { private ImageView imageView; private TextView textView; @@ -67,9 +77,9 @@ textView = itemView.findViewById(R.id.textView); } - void bindView(Context context, int position) { - imageView.setBackgroundResource(Constant.ICONS.get(position)); - textView.setText(Constant.ITEMS.get(position)); + void bindView(int position) { + imageView.setBackgroundResource(iconData.get(position)); + textView.setText(itemData.get(position)); } } } diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index b9c4615..d9b10e0 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; import java.util.ArrayList; @@ -62,7 +63,10 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - Glide.with(context).load(mediaList.get(position)).into(holder.imageView); + Glide.with(context) + .load(mediaList.get(position)) + .apply(new RequestOptions().error(R.drawable.ic_load_error)) + .into(holder.imageView); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/casic/dcms/base/BaseActivity.java b/app/src/main/java/com/casic/dcms/base/BaseActivity.java index caf0356..2ca87fe 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseActivity.java +++ b/app/src/main/java/com/casic/dcms/base/BaseActivity.java @@ -17,8 +17,8 @@ setContentView(initLayoutView()); ButterKnife.bind(this); QMUIStatusBarHelper.translucent(this);//沉浸式状态栏 - setupTopBarLayout(); initData(); + setupTopBarLayout(); initEvent(); } diff --git a/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java new file mode 100644 index 0000000..8de58a4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java @@ -0,0 +1,78 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CommonSentenceBean { + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 请及时处理 + * id : 156 + * value : 请及时处理 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f6ac20a..2070c95 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -67,12 +67,14 @@ - + - + + + { private Context context; + private List iconData = new ArrayList<>(); + private List itemData = new ArrayList<>(); public HomeRecycleAdapter(Context context) { this.context = context; } + public void setItemData(@Nullable List icons, @Nullable List items) { + this.iconData = icons; + this.itemData = items; + } + @NonNull @Override public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -30,7 +40,7 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - holder.bindView(context, position); + holder.bindView(position); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override @@ -43,7 +53,7 @@ @Override public int getItemCount() { - return Constant.ITEMS.size(); + return itemData.size(); } private OnGridItemClickListener clickListener; @@ -56,7 +66,7 @@ this.clickListener = onGridItemClickListener; } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { private ImageView imageView; private TextView textView; @@ -67,9 +77,9 @@ textView = itemView.findViewById(R.id.textView); } - void bindView(Context context, int position) { - imageView.setBackgroundResource(Constant.ICONS.get(position)); - textView.setText(Constant.ITEMS.get(position)); + void bindView(int position) { + imageView.setBackgroundResource(iconData.get(position)); + textView.setText(itemData.get(position)); } } } diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index b9c4615..d9b10e0 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; import java.util.ArrayList; @@ -62,7 +63,10 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - Glide.with(context).load(mediaList.get(position)).into(holder.imageView); + Glide.with(context) + .load(mediaList.get(position)) + .apply(new RequestOptions().error(R.drawable.ic_load_error)) + .into(holder.imageView); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/casic/dcms/base/BaseActivity.java b/app/src/main/java/com/casic/dcms/base/BaseActivity.java index caf0356..2ca87fe 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseActivity.java +++ b/app/src/main/java/com/casic/dcms/base/BaseActivity.java @@ -17,8 +17,8 @@ setContentView(initLayoutView()); ButterKnife.bind(this); QMUIStatusBarHelper.translucent(this);//沉浸式状态栏 - setupTopBarLayout(); initData(); + setupTopBarLayout(); initEvent(); } diff --git a/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java new file mode 100644 index 0000000..8de58a4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java @@ -0,0 +1,78 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CommonSentenceBean { + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 请及时处理 + * id : 156 + * value : 请及时处理 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java new file mode 100644 index 0000000..5258d89 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CommonSentenceBean; +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 CaseCommonSentenceModelImpl implements ICaseCommonSentenceModel { + + private OnGetCommonSentenceListener sentenceListener; + + public CaseCommonSentenceModelImpl(OnGetCommonSentenceListener commonSentenceListener) { + this.sentenceListener = commonSentenceListener; + } + + public interface OnGetCommonSentenceListener { + void onSuccess(CommonSentenceBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCommonSentenceResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (sentenceListener != null) { + sentenceListener.onFailure(e); + } + } + + @Override + public void onNext(CommonSentenceBean resultBean) { + if (resultBean != null) { + sentenceListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f6ac20a..2070c95 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -67,12 +67,14 @@ - + - + + + { private Context context; + private List iconData = new ArrayList<>(); + private List itemData = new ArrayList<>(); public HomeRecycleAdapter(Context context) { this.context = context; } + public void setItemData(@Nullable List icons, @Nullable List items) { + this.iconData = icons; + this.itemData = items; + } + @NonNull @Override public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -30,7 +40,7 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - holder.bindView(context, position); + holder.bindView(position); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override @@ -43,7 +53,7 @@ @Override public int getItemCount() { - return Constant.ITEMS.size(); + return itemData.size(); } private OnGridItemClickListener clickListener; @@ -56,7 +66,7 @@ this.clickListener = onGridItemClickListener; } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { private ImageView imageView; private TextView textView; @@ -67,9 +77,9 @@ textView = itemView.findViewById(R.id.textView); } - void bindView(Context context, int position) { - imageView.setBackgroundResource(Constant.ICONS.get(position)); - textView.setText(Constant.ITEMS.get(position)); + void bindView(int position) { + imageView.setBackgroundResource(iconData.get(position)); + textView.setText(itemData.get(position)); } } } diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index b9c4615..d9b10e0 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; import java.util.ArrayList; @@ -62,7 +63,10 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - Glide.with(context).load(mediaList.get(position)).into(holder.imageView); + Glide.with(context) + .load(mediaList.get(position)) + .apply(new RequestOptions().error(R.drawable.ic_load_error)) + .into(holder.imageView); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/casic/dcms/base/BaseActivity.java b/app/src/main/java/com/casic/dcms/base/BaseActivity.java index caf0356..2ca87fe 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseActivity.java +++ b/app/src/main/java/com/casic/dcms/base/BaseActivity.java @@ -17,8 +17,8 @@ setContentView(initLayoutView()); ButterKnife.bind(this); QMUIStatusBarHelper.translucent(this);//沉浸式状态栏 - setupTopBarLayout(); initData(); + setupTopBarLayout(); initEvent(); } diff --git a/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java new file mode 100644 index 0000000..8de58a4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java @@ -0,0 +1,78 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CommonSentenceBean { + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 请及时处理 + * id : 156 + * value : 请及时处理 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java new file mode 100644 index 0000000..5258d89 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CommonSentenceBean; +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 CaseCommonSentenceModelImpl implements ICaseCommonSentenceModel { + + private OnGetCommonSentenceListener sentenceListener; + + public CaseCommonSentenceModelImpl(OnGetCommonSentenceListener commonSentenceListener) { + this.sentenceListener = commonSentenceListener; + } + + public interface OnGetCommonSentenceListener { + void onSuccess(CommonSentenceBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCommonSentenceResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (sentenceListener != null) { + sentenceListener.onFailure(e); + } + } + + @Override + public void onNext(CommonSentenceBean resultBean) { + if (resultBean != null) { + sentenceListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java new file mode 100644 index 0000000..a8cb3fc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java @@ -0,0 +1,53 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseUpdateSuperviseModelImpl implements ICaseUpdateSuperviseModel { + + private OnUpdateSuperviseListener listener; + + public CaseUpdateSuperviseModelImpl(OnUpdateSuperviseListener updateSuperviseListener) { + this.listener = updateSuperviseListener; + } + + /** + * 数据回调接口 + */ + public interface OnUpdateSuperviseListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String superviseRemarks) { + Observable observable = RetrofitServiceManager.getUpdateSuperviseResult(id, superviseRemarks); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f6ac20a..2070c95 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -67,12 +67,14 @@ - + - + + + { private Context context; + private List iconData = new ArrayList<>(); + private List itemData = new ArrayList<>(); public HomeRecycleAdapter(Context context) { this.context = context; } + public void setItemData(@Nullable List icons, @Nullable List items) { + this.iconData = icons; + this.itemData = items; + } + @NonNull @Override public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -30,7 +40,7 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - holder.bindView(context, position); + holder.bindView(position); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override @@ -43,7 +53,7 @@ @Override public int getItemCount() { - return Constant.ITEMS.size(); + return itemData.size(); } private OnGridItemClickListener clickListener; @@ -56,7 +66,7 @@ this.clickListener = onGridItemClickListener; } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { private ImageView imageView; private TextView textView; @@ -67,9 +77,9 @@ textView = itemView.findViewById(R.id.textView); } - void bindView(Context context, int position) { - imageView.setBackgroundResource(Constant.ICONS.get(position)); - textView.setText(Constant.ITEMS.get(position)); + void bindView(int position) { + imageView.setBackgroundResource(iconData.get(position)); + textView.setText(itemData.get(position)); } } } diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index b9c4615..d9b10e0 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; import java.util.ArrayList; @@ -62,7 +63,10 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - Glide.with(context).load(mediaList.get(position)).into(holder.imageView); + Glide.with(context) + .load(mediaList.get(position)) + .apply(new RequestOptions().error(R.drawable.ic_load_error)) + .into(holder.imageView); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/casic/dcms/base/BaseActivity.java b/app/src/main/java/com/casic/dcms/base/BaseActivity.java index caf0356..2ca87fe 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseActivity.java +++ b/app/src/main/java/com/casic/dcms/base/BaseActivity.java @@ -17,8 +17,8 @@ setContentView(initLayoutView()); ButterKnife.bind(this); QMUIStatusBarHelper.translucent(this);//沉浸式状态栏 - setupTopBarLayout(); initData(); + setupTopBarLayout(); initEvent(); } diff --git a/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java new file mode 100644 index 0000000..8de58a4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java @@ -0,0 +1,78 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CommonSentenceBean { + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 请及时处理 + * id : 156 + * value : 请及时处理 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java new file mode 100644 index 0000000..5258d89 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CommonSentenceBean; +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 CaseCommonSentenceModelImpl implements ICaseCommonSentenceModel { + + private OnGetCommonSentenceListener sentenceListener; + + public CaseCommonSentenceModelImpl(OnGetCommonSentenceListener commonSentenceListener) { + this.sentenceListener = commonSentenceListener; + } + + public interface OnGetCommonSentenceListener { + void onSuccess(CommonSentenceBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCommonSentenceResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (sentenceListener != null) { + sentenceListener.onFailure(e); + } + } + + @Override + public void onNext(CommonSentenceBean resultBean) { + if (resultBean != null) { + sentenceListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java new file mode 100644 index 0000000..a8cb3fc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java @@ -0,0 +1,53 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseUpdateSuperviseModelImpl implements ICaseUpdateSuperviseModel { + + private OnUpdateSuperviseListener listener; + + public CaseUpdateSuperviseModelImpl(OnUpdateSuperviseListener updateSuperviseListener) { + this.listener = updateSuperviseListener; + } + + /** + * 数据回调接口 + */ + public interface OnUpdateSuperviseListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String superviseRemarks) { + Observable observable = RetrofitServiceManager.getUpdateSuperviseResult(id, superviseRemarks); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java new file mode 100644 index 0000000..263ef6c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseCommonSentenceModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f6ac20a..2070c95 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -67,12 +67,14 @@ - + - + + + { private Context context; + private List iconData = new ArrayList<>(); + private List itemData = new ArrayList<>(); public HomeRecycleAdapter(Context context) { this.context = context; } + public void setItemData(@Nullable List icons, @Nullable List items) { + this.iconData = icons; + this.itemData = items; + } + @NonNull @Override public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -30,7 +40,7 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - holder.bindView(context, position); + holder.bindView(position); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override @@ -43,7 +53,7 @@ @Override public int getItemCount() { - return Constant.ITEMS.size(); + return itemData.size(); } private OnGridItemClickListener clickListener; @@ -56,7 +66,7 @@ this.clickListener = onGridItemClickListener; } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { private ImageView imageView; private TextView textView; @@ -67,9 +77,9 @@ textView = itemView.findViewById(R.id.textView); } - void bindView(Context context, int position) { - imageView.setBackgroundResource(Constant.ICONS.get(position)); - textView.setText(Constant.ITEMS.get(position)); + void bindView(int position) { + imageView.setBackgroundResource(iconData.get(position)); + textView.setText(itemData.get(position)); } } } diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index b9c4615..d9b10e0 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; import java.util.ArrayList; @@ -62,7 +63,10 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - Glide.with(context).load(mediaList.get(position)).into(holder.imageView); + Glide.with(context) + .load(mediaList.get(position)) + .apply(new RequestOptions().error(R.drawable.ic_load_error)) + .into(holder.imageView); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/casic/dcms/base/BaseActivity.java b/app/src/main/java/com/casic/dcms/base/BaseActivity.java index caf0356..2ca87fe 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseActivity.java +++ b/app/src/main/java/com/casic/dcms/base/BaseActivity.java @@ -17,8 +17,8 @@ setContentView(initLayoutView()); ButterKnife.bind(this); QMUIStatusBarHelper.translucent(this);//沉浸式状态栏 - setupTopBarLayout(); initData(); + setupTopBarLayout(); initEvent(); } diff --git a/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java new file mode 100644 index 0000000..8de58a4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java @@ -0,0 +1,78 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CommonSentenceBean { + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 请及时处理 + * id : 156 + * value : 请及时处理 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java new file mode 100644 index 0000000..5258d89 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CommonSentenceBean; +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 CaseCommonSentenceModelImpl implements ICaseCommonSentenceModel { + + private OnGetCommonSentenceListener sentenceListener; + + public CaseCommonSentenceModelImpl(OnGetCommonSentenceListener commonSentenceListener) { + this.sentenceListener = commonSentenceListener; + } + + public interface OnGetCommonSentenceListener { + void onSuccess(CommonSentenceBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCommonSentenceResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (sentenceListener != null) { + sentenceListener.onFailure(e); + } + } + + @Override + public void onNext(CommonSentenceBean resultBean) { + if (resultBean != null) { + sentenceListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java new file mode 100644 index 0000000..a8cb3fc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java @@ -0,0 +1,53 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseUpdateSuperviseModelImpl implements ICaseUpdateSuperviseModel { + + private OnUpdateSuperviseListener listener; + + public CaseUpdateSuperviseModelImpl(OnUpdateSuperviseListener updateSuperviseListener) { + this.listener = updateSuperviseListener; + } + + /** + * 数据回调接口 + */ + public interface OnUpdateSuperviseListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String superviseRemarks) { + Observable observable = RetrofitServiceManager.getUpdateSuperviseResult(id, superviseRemarks); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java new file mode 100644 index 0000000..263ef6c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseCommonSentenceModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java new file mode 100644 index 0000000..518d602 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseUpdateSuperviseModel { + Subscription sendRetrofitRequest(String id, String superviseRemarks); +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f6ac20a..2070c95 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -67,12 +67,14 @@ - + - + + + { private Context context; + private List iconData = new ArrayList<>(); + private List itemData = new ArrayList<>(); public HomeRecycleAdapter(Context context) { this.context = context; } + public void setItemData(@Nullable List icons, @Nullable List items) { + this.iconData = icons; + this.itemData = items; + } + @NonNull @Override public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -30,7 +40,7 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - holder.bindView(context, position); + holder.bindView(position); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override @@ -43,7 +53,7 @@ @Override public int getItemCount() { - return Constant.ITEMS.size(); + return itemData.size(); } private OnGridItemClickListener clickListener; @@ -56,7 +66,7 @@ this.clickListener = onGridItemClickListener; } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { private ImageView imageView; private TextView textView; @@ -67,9 +77,9 @@ textView = itemView.findViewById(R.id.textView); } - void bindView(Context context, int position) { - imageView.setBackgroundResource(Constant.ICONS.get(position)); - textView.setText(Constant.ITEMS.get(position)); + void bindView(int position) { + imageView.setBackgroundResource(iconData.get(position)); + textView.setText(itemData.get(position)); } } } diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index b9c4615..d9b10e0 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; import java.util.ArrayList; @@ -62,7 +63,10 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - Glide.with(context).load(mediaList.get(position)).into(holder.imageView); + Glide.with(context) + .load(mediaList.get(position)) + .apply(new RequestOptions().error(R.drawable.ic_load_error)) + .into(holder.imageView); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/casic/dcms/base/BaseActivity.java b/app/src/main/java/com/casic/dcms/base/BaseActivity.java index caf0356..2ca87fe 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseActivity.java +++ b/app/src/main/java/com/casic/dcms/base/BaseActivity.java @@ -17,8 +17,8 @@ setContentView(initLayoutView()); ButterKnife.bind(this); QMUIStatusBarHelper.translucent(this);//沉浸式状态栏 - setupTopBarLayout(); initData(); + setupTopBarLayout(); initEvent(); } diff --git a/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java new file mode 100644 index 0000000..8de58a4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java @@ -0,0 +1,78 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CommonSentenceBean { + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 请及时处理 + * id : 156 + * value : 请及时处理 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java new file mode 100644 index 0000000..5258d89 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CommonSentenceBean; +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 CaseCommonSentenceModelImpl implements ICaseCommonSentenceModel { + + private OnGetCommonSentenceListener sentenceListener; + + public CaseCommonSentenceModelImpl(OnGetCommonSentenceListener commonSentenceListener) { + this.sentenceListener = commonSentenceListener; + } + + public interface OnGetCommonSentenceListener { + void onSuccess(CommonSentenceBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCommonSentenceResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (sentenceListener != null) { + sentenceListener.onFailure(e); + } + } + + @Override + public void onNext(CommonSentenceBean resultBean) { + if (resultBean != null) { + sentenceListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java new file mode 100644 index 0000000..a8cb3fc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java @@ -0,0 +1,53 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseUpdateSuperviseModelImpl implements ICaseUpdateSuperviseModel { + + private OnUpdateSuperviseListener listener; + + public CaseUpdateSuperviseModelImpl(OnUpdateSuperviseListener updateSuperviseListener) { + this.listener = updateSuperviseListener; + } + + /** + * 数据回调接口 + */ + public interface OnUpdateSuperviseListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String superviseRemarks) { + Observable observable = RetrofitServiceManager.getUpdateSuperviseResult(id, superviseRemarks); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java new file mode 100644 index 0000000..263ef6c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseCommonSentenceModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java new file mode 100644 index 0000000..518d602 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseUpdateSuperviseModel { + Subscription sendRetrofitRequest(String id, String superviseRemarks); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java new file mode 100644 index 0000000..6b65f13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseCommonSentenceModelImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; + +public class CaseCommonSentencePresenterImpl extends BasePresenter implements ICaseCommonSentencePresenter, + CaseCommonSentenceModelImpl.OnGetCommonSentenceListener { + + private ICaseCommonSentenceView view; + private CaseCommonSentenceModelImpl actionModel; + + public CaseCommonSentencePresenterImpl(ICaseCommonSentenceView commonSentenceView) { + this.view = commonSentenceView; + actionModel = new CaseCommonSentenceModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CommonSentenceBean resultBean) { + view.obtainCommonSentenceData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f6ac20a..2070c95 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -67,12 +67,14 @@ - + - + + + { private Context context; + private List iconData = new ArrayList<>(); + private List itemData = new ArrayList<>(); public HomeRecycleAdapter(Context context) { this.context = context; } + public void setItemData(@Nullable List icons, @Nullable List items) { + this.iconData = icons; + this.itemData = items; + } + @NonNull @Override public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -30,7 +40,7 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - holder.bindView(context, position); + holder.bindView(position); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override @@ -43,7 +53,7 @@ @Override public int getItemCount() { - return Constant.ITEMS.size(); + return itemData.size(); } private OnGridItemClickListener clickListener; @@ -56,7 +66,7 @@ this.clickListener = onGridItemClickListener; } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { private ImageView imageView; private TextView textView; @@ -67,9 +77,9 @@ textView = itemView.findViewById(R.id.textView); } - void bindView(Context context, int position) { - imageView.setBackgroundResource(Constant.ICONS.get(position)); - textView.setText(Constant.ITEMS.get(position)); + void bindView(int position) { + imageView.setBackgroundResource(iconData.get(position)); + textView.setText(itemData.get(position)); } } } diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index b9c4615..d9b10e0 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; import java.util.ArrayList; @@ -62,7 +63,10 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - Glide.with(context).load(mediaList.get(position)).into(holder.imageView); + Glide.with(context) + .load(mediaList.get(position)) + .apply(new RequestOptions().error(R.drawable.ic_load_error)) + .into(holder.imageView); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/casic/dcms/base/BaseActivity.java b/app/src/main/java/com/casic/dcms/base/BaseActivity.java index caf0356..2ca87fe 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseActivity.java +++ b/app/src/main/java/com/casic/dcms/base/BaseActivity.java @@ -17,8 +17,8 @@ setContentView(initLayoutView()); ButterKnife.bind(this); QMUIStatusBarHelper.translucent(this);//沉浸式状态栏 - setupTopBarLayout(); initData(); + setupTopBarLayout(); initEvent(); } diff --git a/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java new file mode 100644 index 0000000..8de58a4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java @@ -0,0 +1,78 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CommonSentenceBean { + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 请及时处理 + * id : 156 + * value : 请及时处理 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java new file mode 100644 index 0000000..5258d89 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CommonSentenceBean; +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 CaseCommonSentenceModelImpl implements ICaseCommonSentenceModel { + + private OnGetCommonSentenceListener sentenceListener; + + public CaseCommonSentenceModelImpl(OnGetCommonSentenceListener commonSentenceListener) { + this.sentenceListener = commonSentenceListener; + } + + public interface OnGetCommonSentenceListener { + void onSuccess(CommonSentenceBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCommonSentenceResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (sentenceListener != null) { + sentenceListener.onFailure(e); + } + } + + @Override + public void onNext(CommonSentenceBean resultBean) { + if (resultBean != null) { + sentenceListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java new file mode 100644 index 0000000..a8cb3fc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java @@ -0,0 +1,53 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseUpdateSuperviseModelImpl implements ICaseUpdateSuperviseModel { + + private OnUpdateSuperviseListener listener; + + public CaseUpdateSuperviseModelImpl(OnUpdateSuperviseListener updateSuperviseListener) { + this.listener = updateSuperviseListener; + } + + /** + * 数据回调接口 + */ + public interface OnUpdateSuperviseListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String superviseRemarks) { + Observable observable = RetrofitServiceManager.getUpdateSuperviseResult(id, superviseRemarks); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java new file mode 100644 index 0000000..263ef6c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseCommonSentenceModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java new file mode 100644 index 0000000..518d602 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseUpdateSuperviseModel { + Subscription sendRetrofitRequest(String id, String superviseRemarks); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java new file mode 100644 index 0000000..6b65f13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseCommonSentenceModelImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; + +public class CaseCommonSentencePresenterImpl extends BasePresenter implements ICaseCommonSentencePresenter, + CaseCommonSentenceModelImpl.OnGetCommonSentenceListener { + + private ICaseCommonSentenceView view; + private CaseCommonSentenceModelImpl actionModel; + + public CaseCommonSentencePresenterImpl(ICaseCommonSentenceView commonSentenceView) { + this.view = commonSentenceView; + actionModel = new CaseCommonSentenceModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CommonSentenceBean resultBean) { + view.obtainCommonSentenceData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java new file mode 100644 index 0000000..66e1f44 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseUpdateSuperviseModelImpl; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; + +public class CaseUpdateSupervisePresenterImpl extends BasePresenter implements ICaseUpdateSupervisePresenter, + CaseUpdateSuperviseModelImpl.OnUpdateSuperviseListener { + + private ICaseUpdateSuperviseView view; + private CaseUpdateSuperviseModelImpl actionModel; + + public CaseUpdateSupervisePresenterImpl(ICaseUpdateSuperviseView updateSuperviseView) { + this.view = updateSuperviseView; + actionModel = new CaseUpdateSuperviseModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String superviseRemarks) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, superviseRemarks)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainUpdateSuperviseData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f6ac20a..2070c95 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -67,12 +67,14 @@ - + - + + + { private Context context; + private List iconData = new ArrayList<>(); + private List itemData = new ArrayList<>(); public HomeRecycleAdapter(Context context) { this.context = context; } + public void setItemData(@Nullable List icons, @Nullable List items) { + this.iconData = icons; + this.itemData = items; + } + @NonNull @Override public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -30,7 +40,7 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - holder.bindView(context, position); + holder.bindView(position); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override @@ -43,7 +53,7 @@ @Override public int getItemCount() { - return Constant.ITEMS.size(); + return itemData.size(); } private OnGridItemClickListener clickListener; @@ -56,7 +66,7 @@ this.clickListener = onGridItemClickListener; } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { private ImageView imageView; private TextView textView; @@ -67,9 +77,9 @@ textView = itemView.findViewById(R.id.textView); } - void bindView(Context context, int position) { - imageView.setBackgroundResource(Constant.ICONS.get(position)); - textView.setText(Constant.ITEMS.get(position)); + void bindView(int position) { + imageView.setBackgroundResource(iconData.get(position)); + textView.setText(itemData.get(position)); } } } diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index b9c4615..d9b10e0 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; import java.util.ArrayList; @@ -62,7 +63,10 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - Glide.with(context).load(mediaList.get(position)).into(holder.imageView); + Glide.with(context) + .load(mediaList.get(position)) + .apply(new RequestOptions().error(R.drawable.ic_load_error)) + .into(holder.imageView); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/casic/dcms/base/BaseActivity.java b/app/src/main/java/com/casic/dcms/base/BaseActivity.java index caf0356..2ca87fe 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseActivity.java +++ b/app/src/main/java/com/casic/dcms/base/BaseActivity.java @@ -17,8 +17,8 @@ setContentView(initLayoutView()); ButterKnife.bind(this); QMUIStatusBarHelper.translucent(this);//沉浸式状态栏 - setupTopBarLayout(); initData(); + setupTopBarLayout(); initEvent(); } diff --git a/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java new file mode 100644 index 0000000..8de58a4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java @@ -0,0 +1,78 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CommonSentenceBean { + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 请及时处理 + * id : 156 + * value : 请及时处理 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java new file mode 100644 index 0000000..5258d89 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CommonSentenceBean; +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 CaseCommonSentenceModelImpl implements ICaseCommonSentenceModel { + + private OnGetCommonSentenceListener sentenceListener; + + public CaseCommonSentenceModelImpl(OnGetCommonSentenceListener commonSentenceListener) { + this.sentenceListener = commonSentenceListener; + } + + public interface OnGetCommonSentenceListener { + void onSuccess(CommonSentenceBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCommonSentenceResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (sentenceListener != null) { + sentenceListener.onFailure(e); + } + } + + @Override + public void onNext(CommonSentenceBean resultBean) { + if (resultBean != null) { + sentenceListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java new file mode 100644 index 0000000..a8cb3fc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java @@ -0,0 +1,53 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseUpdateSuperviseModelImpl implements ICaseUpdateSuperviseModel { + + private OnUpdateSuperviseListener listener; + + public CaseUpdateSuperviseModelImpl(OnUpdateSuperviseListener updateSuperviseListener) { + this.listener = updateSuperviseListener; + } + + /** + * 数据回调接口 + */ + public interface OnUpdateSuperviseListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String superviseRemarks) { + Observable observable = RetrofitServiceManager.getUpdateSuperviseResult(id, superviseRemarks); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java new file mode 100644 index 0000000..263ef6c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseCommonSentenceModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java new file mode 100644 index 0000000..518d602 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseUpdateSuperviseModel { + Subscription sendRetrofitRequest(String id, String superviseRemarks); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java new file mode 100644 index 0000000..6b65f13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseCommonSentenceModelImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; + +public class CaseCommonSentencePresenterImpl extends BasePresenter implements ICaseCommonSentencePresenter, + CaseCommonSentenceModelImpl.OnGetCommonSentenceListener { + + private ICaseCommonSentenceView view; + private CaseCommonSentenceModelImpl actionModel; + + public CaseCommonSentencePresenterImpl(ICaseCommonSentenceView commonSentenceView) { + this.view = commonSentenceView; + actionModel = new CaseCommonSentenceModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CommonSentenceBean resultBean) { + view.obtainCommonSentenceData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java new file mode 100644 index 0000000..66e1f44 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseUpdateSuperviseModelImpl; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; + +public class CaseUpdateSupervisePresenterImpl extends BasePresenter implements ICaseUpdateSupervisePresenter, + CaseUpdateSuperviseModelImpl.OnUpdateSuperviseListener { + + private ICaseUpdateSuperviseView view; + private CaseUpdateSuperviseModelImpl actionModel; + + public CaseUpdateSupervisePresenterImpl(ICaseUpdateSuperviseView updateSuperviseView) { + this.view = updateSuperviseView; + actionModel = new CaseUpdateSuperviseModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String superviseRemarks) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, superviseRemarks)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainUpdateSuperviseData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java new file mode 100644 index 0000000..1f8bd09 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseCommonSentencePresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f6ac20a..2070c95 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -67,12 +67,14 @@ - + - + + + { private Context context; + private List iconData = new ArrayList<>(); + private List itemData = new ArrayList<>(); public HomeRecycleAdapter(Context context) { this.context = context; } + public void setItemData(@Nullable List icons, @Nullable List items) { + this.iconData = icons; + this.itemData = items; + } + @NonNull @Override public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -30,7 +40,7 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - holder.bindView(context, position); + holder.bindView(position); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override @@ -43,7 +53,7 @@ @Override public int getItemCount() { - return Constant.ITEMS.size(); + return itemData.size(); } private OnGridItemClickListener clickListener; @@ -56,7 +66,7 @@ this.clickListener = onGridItemClickListener; } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { private ImageView imageView; private TextView textView; @@ -67,9 +77,9 @@ textView = itemView.findViewById(R.id.textView); } - void bindView(Context context, int position) { - imageView.setBackgroundResource(Constant.ICONS.get(position)); - textView.setText(Constant.ITEMS.get(position)); + void bindView(int position) { + imageView.setBackgroundResource(iconData.get(position)); + textView.setText(itemData.get(position)); } } } diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index b9c4615..d9b10e0 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; import java.util.ArrayList; @@ -62,7 +63,10 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - Glide.with(context).load(mediaList.get(position)).into(holder.imageView); + Glide.with(context) + .load(mediaList.get(position)) + .apply(new RequestOptions().error(R.drawable.ic_load_error)) + .into(holder.imageView); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/casic/dcms/base/BaseActivity.java b/app/src/main/java/com/casic/dcms/base/BaseActivity.java index caf0356..2ca87fe 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseActivity.java +++ b/app/src/main/java/com/casic/dcms/base/BaseActivity.java @@ -17,8 +17,8 @@ setContentView(initLayoutView()); ButterKnife.bind(this); QMUIStatusBarHelper.translucent(this);//沉浸式状态栏 - setupTopBarLayout(); initData(); + setupTopBarLayout(); initEvent(); } diff --git a/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java new file mode 100644 index 0000000..8de58a4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java @@ -0,0 +1,78 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CommonSentenceBean { + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 请及时处理 + * id : 156 + * value : 请及时处理 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java new file mode 100644 index 0000000..5258d89 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CommonSentenceBean; +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 CaseCommonSentenceModelImpl implements ICaseCommonSentenceModel { + + private OnGetCommonSentenceListener sentenceListener; + + public CaseCommonSentenceModelImpl(OnGetCommonSentenceListener commonSentenceListener) { + this.sentenceListener = commonSentenceListener; + } + + public interface OnGetCommonSentenceListener { + void onSuccess(CommonSentenceBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCommonSentenceResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (sentenceListener != null) { + sentenceListener.onFailure(e); + } + } + + @Override + public void onNext(CommonSentenceBean resultBean) { + if (resultBean != null) { + sentenceListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java new file mode 100644 index 0000000..a8cb3fc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java @@ -0,0 +1,53 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseUpdateSuperviseModelImpl implements ICaseUpdateSuperviseModel { + + private OnUpdateSuperviseListener listener; + + public CaseUpdateSuperviseModelImpl(OnUpdateSuperviseListener updateSuperviseListener) { + this.listener = updateSuperviseListener; + } + + /** + * 数据回调接口 + */ + public interface OnUpdateSuperviseListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String superviseRemarks) { + Observable observable = RetrofitServiceManager.getUpdateSuperviseResult(id, superviseRemarks); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java new file mode 100644 index 0000000..263ef6c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseCommonSentenceModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java new file mode 100644 index 0000000..518d602 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseUpdateSuperviseModel { + Subscription sendRetrofitRequest(String id, String superviseRemarks); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java new file mode 100644 index 0000000..6b65f13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseCommonSentenceModelImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; + +public class CaseCommonSentencePresenterImpl extends BasePresenter implements ICaseCommonSentencePresenter, + CaseCommonSentenceModelImpl.OnGetCommonSentenceListener { + + private ICaseCommonSentenceView view; + private CaseCommonSentenceModelImpl actionModel; + + public CaseCommonSentencePresenterImpl(ICaseCommonSentenceView commonSentenceView) { + this.view = commonSentenceView; + actionModel = new CaseCommonSentenceModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CommonSentenceBean resultBean) { + view.obtainCommonSentenceData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java new file mode 100644 index 0000000..66e1f44 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseUpdateSuperviseModelImpl; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; + +public class CaseUpdateSupervisePresenterImpl extends BasePresenter implements ICaseUpdateSupervisePresenter, + CaseUpdateSuperviseModelImpl.OnUpdateSuperviseListener { + + private ICaseUpdateSuperviseView view; + private CaseUpdateSuperviseModelImpl actionModel; + + public CaseUpdateSupervisePresenterImpl(ICaseUpdateSuperviseView updateSuperviseView) { + this.view = updateSuperviseView; + actionModel = new CaseUpdateSuperviseModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String superviseRemarks) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, superviseRemarks)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainUpdateSuperviseData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java new file mode 100644 index 0000000..1f8bd09 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseCommonSentencePresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java new file mode 100644 index 0000000..f61f9b2 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseUpdateSupervisePresenter { + void onReadyRetrofitRequest(String id, String superviseRemarks); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f6ac20a..2070c95 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -67,12 +67,14 @@ - + - + + + { private Context context; + private List iconData = new ArrayList<>(); + private List itemData = new ArrayList<>(); public HomeRecycleAdapter(Context context) { this.context = context; } + public void setItemData(@Nullable List icons, @Nullable List items) { + this.iconData = icons; + this.itemData = items; + } + @NonNull @Override public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -30,7 +40,7 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - holder.bindView(context, position); + holder.bindView(position); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override @@ -43,7 +53,7 @@ @Override public int getItemCount() { - return Constant.ITEMS.size(); + return itemData.size(); } private OnGridItemClickListener clickListener; @@ -56,7 +66,7 @@ this.clickListener = onGridItemClickListener; } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { private ImageView imageView; private TextView textView; @@ -67,9 +77,9 @@ textView = itemView.findViewById(R.id.textView); } - void bindView(Context context, int position) { - imageView.setBackgroundResource(Constant.ICONS.get(position)); - textView.setText(Constant.ITEMS.get(position)); + void bindView(int position) { + imageView.setBackgroundResource(iconData.get(position)); + textView.setText(itemData.get(position)); } } } diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index b9c4615..d9b10e0 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; import java.util.ArrayList; @@ -62,7 +63,10 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - Glide.with(context).load(mediaList.get(position)).into(holder.imageView); + Glide.with(context) + .load(mediaList.get(position)) + .apply(new RequestOptions().error(R.drawable.ic_load_error)) + .into(holder.imageView); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/casic/dcms/base/BaseActivity.java b/app/src/main/java/com/casic/dcms/base/BaseActivity.java index caf0356..2ca87fe 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseActivity.java +++ b/app/src/main/java/com/casic/dcms/base/BaseActivity.java @@ -17,8 +17,8 @@ setContentView(initLayoutView()); ButterKnife.bind(this); QMUIStatusBarHelper.translucent(this);//沉浸式状态栏 - setupTopBarLayout(); initData(); + setupTopBarLayout(); initEvent(); } diff --git a/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java new file mode 100644 index 0000000..8de58a4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java @@ -0,0 +1,78 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CommonSentenceBean { + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 请及时处理 + * id : 156 + * value : 请及时处理 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java new file mode 100644 index 0000000..5258d89 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CommonSentenceBean; +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 CaseCommonSentenceModelImpl implements ICaseCommonSentenceModel { + + private OnGetCommonSentenceListener sentenceListener; + + public CaseCommonSentenceModelImpl(OnGetCommonSentenceListener commonSentenceListener) { + this.sentenceListener = commonSentenceListener; + } + + public interface OnGetCommonSentenceListener { + void onSuccess(CommonSentenceBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCommonSentenceResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (sentenceListener != null) { + sentenceListener.onFailure(e); + } + } + + @Override + public void onNext(CommonSentenceBean resultBean) { + if (resultBean != null) { + sentenceListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java new file mode 100644 index 0000000..a8cb3fc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java @@ -0,0 +1,53 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseUpdateSuperviseModelImpl implements ICaseUpdateSuperviseModel { + + private OnUpdateSuperviseListener listener; + + public CaseUpdateSuperviseModelImpl(OnUpdateSuperviseListener updateSuperviseListener) { + this.listener = updateSuperviseListener; + } + + /** + * 数据回调接口 + */ + public interface OnUpdateSuperviseListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String superviseRemarks) { + Observable observable = RetrofitServiceManager.getUpdateSuperviseResult(id, superviseRemarks); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java new file mode 100644 index 0000000..263ef6c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseCommonSentenceModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java new file mode 100644 index 0000000..518d602 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseUpdateSuperviseModel { + Subscription sendRetrofitRequest(String id, String superviseRemarks); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java new file mode 100644 index 0000000..6b65f13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseCommonSentenceModelImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; + +public class CaseCommonSentencePresenterImpl extends BasePresenter implements ICaseCommonSentencePresenter, + CaseCommonSentenceModelImpl.OnGetCommonSentenceListener { + + private ICaseCommonSentenceView view; + private CaseCommonSentenceModelImpl actionModel; + + public CaseCommonSentencePresenterImpl(ICaseCommonSentenceView commonSentenceView) { + this.view = commonSentenceView; + actionModel = new CaseCommonSentenceModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CommonSentenceBean resultBean) { + view.obtainCommonSentenceData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java new file mode 100644 index 0000000..66e1f44 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseUpdateSuperviseModelImpl; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; + +public class CaseUpdateSupervisePresenterImpl extends BasePresenter implements ICaseUpdateSupervisePresenter, + CaseUpdateSuperviseModelImpl.OnUpdateSuperviseListener { + + private ICaseUpdateSuperviseView view; + private CaseUpdateSuperviseModelImpl actionModel; + + public CaseUpdateSupervisePresenterImpl(ICaseUpdateSuperviseView updateSuperviseView) { + this.view = updateSuperviseView; + actionModel = new CaseUpdateSuperviseModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String superviseRemarks) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, superviseRemarks)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainUpdateSuperviseData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java new file mode 100644 index 0000000..1f8bd09 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseCommonSentencePresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java new file mode 100644 index 0000000..f61f9b2 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseUpdateSupervisePresenter { + void onReadyRetrofitRequest(String id, String superviseRemarks); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java new file mode 100644 index 0000000..9c7b08b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CommonSentenceBean; + +public interface ICaseCommonSentenceView { + void obtainCommonSentenceData(CommonSentenceBean resultBean); +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f6ac20a..2070c95 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -67,12 +67,14 @@ - + - + + + { private Context context; + private List iconData = new ArrayList<>(); + private List itemData = new ArrayList<>(); public HomeRecycleAdapter(Context context) { this.context = context; } + public void setItemData(@Nullable List icons, @Nullable List items) { + this.iconData = icons; + this.itemData = items; + } + @NonNull @Override public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -30,7 +40,7 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - holder.bindView(context, position); + holder.bindView(position); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override @@ -43,7 +53,7 @@ @Override public int getItemCount() { - return Constant.ITEMS.size(); + return itemData.size(); } private OnGridItemClickListener clickListener; @@ -56,7 +66,7 @@ this.clickListener = onGridItemClickListener; } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { private ImageView imageView; private TextView textView; @@ -67,9 +77,9 @@ textView = itemView.findViewById(R.id.textView); } - void bindView(Context context, int position) { - imageView.setBackgroundResource(Constant.ICONS.get(position)); - textView.setText(Constant.ITEMS.get(position)); + void bindView(int position) { + imageView.setBackgroundResource(iconData.get(position)); + textView.setText(itemData.get(position)); } } } diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index b9c4615..d9b10e0 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; import java.util.ArrayList; @@ -62,7 +63,10 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - Glide.with(context).load(mediaList.get(position)).into(holder.imageView); + Glide.with(context) + .load(mediaList.get(position)) + .apply(new RequestOptions().error(R.drawable.ic_load_error)) + .into(holder.imageView); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/casic/dcms/base/BaseActivity.java b/app/src/main/java/com/casic/dcms/base/BaseActivity.java index caf0356..2ca87fe 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseActivity.java +++ b/app/src/main/java/com/casic/dcms/base/BaseActivity.java @@ -17,8 +17,8 @@ setContentView(initLayoutView()); ButterKnife.bind(this); QMUIStatusBarHelper.translucent(this);//沉浸式状态栏 - setupTopBarLayout(); initData(); + setupTopBarLayout(); initEvent(); } diff --git a/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java new file mode 100644 index 0000000..8de58a4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java @@ -0,0 +1,78 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CommonSentenceBean { + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 请及时处理 + * id : 156 + * value : 请及时处理 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java new file mode 100644 index 0000000..5258d89 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CommonSentenceBean; +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 CaseCommonSentenceModelImpl implements ICaseCommonSentenceModel { + + private OnGetCommonSentenceListener sentenceListener; + + public CaseCommonSentenceModelImpl(OnGetCommonSentenceListener commonSentenceListener) { + this.sentenceListener = commonSentenceListener; + } + + public interface OnGetCommonSentenceListener { + void onSuccess(CommonSentenceBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCommonSentenceResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (sentenceListener != null) { + sentenceListener.onFailure(e); + } + } + + @Override + public void onNext(CommonSentenceBean resultBean) { + if (resultBean != null) { + sentenceListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java new file mode 100644 index 0000000..a8cb3fc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java @@ -0,0 +1,53 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseUpdateSuperviseModelImpl implements ICaseUpdateSuperviseModel { + + private OnUpdateSuperviseListener listener; + + public CaseUpdateSuperviseModelImpl(OnUpdateSuperviseListener updateSuperviseListener) { + this.listener = updateSuperviseListener; + } + + /** + * 数据回调接口 + */ + public interface OnUpdateSuperviseListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String superviseRemarks) { + Observable observable = RetrofitServiceManager.getUpdateSuperviseResult(id, superviseRemarks); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java new file mode 100644 index 0000000..263ef6c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseCommonSentenceModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java new file mode 100644 index 0000000..518d602 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseUpdateSuperviseModel { + Subscription sendRetrofitRequest(String id, String superviseRemarks); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java new file mode 100644 index 0000000..6b65f13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseCommonSentenceModelImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; + +public class CaseCommonSentencePresenterImpl extends BasePresenter implements ICaseCommonSentencePresenter, + CaseCommonSentenceModelImpl.OnGetCommonSentenceListener { + + private ICaseCommonSentenceView view; + private CaseCommonSentenceModelImpl actionModel; + + public CaseCommonSentencePresenterImpl(ICaseCommonSentenceView commonSentenceView) { + this.view = commonSentenceView; + actionModel = new CaseCommonSentenceModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CommonSentenceBean resultBean) { + view.obtainCommonSentenceData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java new file mode 100644 index 0000000..66e1f44 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseUpdateSuperviseModelImpl; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; + +public class CaseUpdateSupervisePresenterImpl extends BasePresenter implements ICaseUpdateSupervisePresenter, + CaseUpdateSuperviseModelImpl.OnUpdateSuperviseListener { + + private ICaseUpdateSuperviseView view; + private CaseUpdateSuperviseModelImpl actionModel; + + public CaseUpdateSupervisePresenterImpl(ICaseUpdateSuperviseView updateSuperviseView) { + this.view = updateSuperviseView; + actionModel = new CaseUpdateSuperviseModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String superviseRemarks) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, superviseRemarks)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainUpdateSuperviseData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java new file mode 100644 index 0000000..1f8bd09 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseCommonSentencePresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java new file mode 100644 index 0000000..f61f9b2 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseUpdateSupervisePresenter { + void onReadyRetrofitRequest(String id, String superviseRemarks); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java new file mode 100644 index 0000000..9c7b08b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CommonSentenceBean; + +public interface ICaseCommonSentenceView { + void obtainCommonSentenceData(CommonSentenceBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java new file mode 100644 index 0000000..10bcf5a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICaseUpdateSuperviseView { + void showProgress(); + + void hideProgress(); + + void obtainUpdateSuperviseData(ActionResultBean resultBean); +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f6ac20a..2070c95 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -67,12 +67,14 @@ - + - + + + { private Context context; + private List iconData = new ArrayList<>(); + private List itemData = new ArrayList<>(); public HomeRecycleAdapter(Context context) { this.context = context; } + public void setItemData(@Nullable List icons, @Nullable List items) { + this.iconData = icons; + this.itemData = items; + } + @NonNull @Override public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -30,7 +40,7 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - holder.bindView(context, position); + holder.bindView(position); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override @@ -43,7 +53,7 @@ @Override public int getItemCount() { - return Constant.ITEMS.size(); + return itemData.size(); } private OnGridItemClickListener clickListener; @@ -56,7 +66,7 @@ this.clickListener = onGridItemClickListener; } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { private ImageView imageView; private TextView textView; @@ -67,9 +77,9 @@ textView = itemView.findViewById(R.id.textView); } - void bindView(Context context, int position) { - imageView.setBackgroundResource(Constant.ICONS.get(position)); - textView.setText(Constant.ITEMS.get(position)); + void bindView(int position) { + imageView.setBackgroundResource(iconData.get(position)); + textView.setText(itemData.get(position)); } } } diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index b9c4615..d9b10e0 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; import java.util.ArrayList; @@ -62,7 +63,10 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - Glide.with(context).load(mediaList.get(position)).into(holder.imageView); + Glide.with(context) + .load(mediaList.get(position)) + .apply(new RequestOptions().error(R.drawable.ic_load_error)) + .into(holder.imageView); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/casic/dcms/base/BaseActivity.java b/app/src/main/java/com/casic/dcms/base/BaseActivity.java index caf0356..2ca87fe 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseActivity.java +++ b/app/src/main/java/com/casic/dcms/base/BaseActivity.java @@ -17,8 +17,8 @@ setContentView(initLayoutView()); ButterKnife.bind(this); QMUIStatusBarHelper.translucent(this);//沉浸式状态栏 - setupTopBarLayout(); initData(); + setupTopBarLayout(); initEvent(); } diff --git a/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java new file mode 100644 index 0000000..8de58a4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java @@ -0,0 +1,78 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CommonSentenceBean { + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 请及时处理 + * id : 156 + * value : 请及时处理 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java new file mode 100644 index 0000000..5258d89 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CommonSentenceBean; +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 CaseCommonSentenceModelImpl implements ICaseCommonSentenceModel { + + private OnGetCommonSentenceListener sentenceListener; + + public CaseCommonSentenceModelImpl(OnGetCommonSentenceListener commonSentenceListener) { + this.sentenceListener = commonSentenceListener; + } + + public interface OnGetCommonSentenceListener { + void onSuccess(CommonSentenceBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCommonSentenceResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (sentenceListener != null) { + sentenceListener.onFailure(e); + } + } + + @Override + public void onNext(CommonSentenceBean resultBean) { + if (resultBean != null) { + sentenceListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java new file mode 100644 index 0000000..a8cb3fc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java @@ -0,0 +1,53 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseUpdateSuperviseModelImpl implements ICaseUpdateSuperviseModel { + + private OnUpdateSuperviseListener listener; + + public CaseUpdateSuperviseModelImpl(OnUpdateSuperviseListener updateSuperviseListener) { + this.listener = updateSuperviseListener; + } + + /** + * 数据回调接口 + */ + public interface OnUpdateSuperviseListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String superviseRemarks) { + Observable observable = RetrofitServiceManager.getUpdateSuperviseResult(id, superviseRemarks); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java new file mode 100644 index 0000000..263ef6c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseCommonSentenceModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java new file mode 100644 index 0000000..518d602 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseUpdateSuperviseModel { + Subscription sendRetrofitRequest(String id, String superviseRemarks); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java new file mode 100644 index 0000000..6b65f13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseCommonSentenceModelImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; + +public class CaseCommonSentencePresenterImpl extends BasePresenter implements ICaseCommonSentencePresenter, + CaseCommonSentenceModelImpl.OnGetCommonSentenceListener { + + private ICaseCommonSentenceView view; + private CaseCommonSentenceModelImpl actionModel; + + public CaseCommonSentencePresenterImpl(ICaseCommonSentenceView commonSentenceView) { + this.view = commonSentenceView; + actionModel = new CaseCommonSentenceModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CommonSentenceBean resultBean) { + view.obtainCommonSentenceData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java new file mode 100644 index 0000000..66e1f44 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseUpdateSuperviseModelImpl; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; + +public class CaseUpdateSupervisePresenterImpl extends BasePresenter implements ICaseUpdateSupervisePresenter, + CaseUpdateSuperviseModelImpl.OnUpdateSuperviseListener { + + private ICaseUpdateSuperviseView view; + private CaseUpdateSuperviseModelImpl actionModel; + + public CaseUpdateSupervisePresenterImpl(ICaseUpdateSuperviseView updateSuperviseView) { + this.view = updateSuperviseView; + actionModel = new CaseUpdateSuperviseModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String superviseRemarks) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, superviseRemarks)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainUpdateSuperviseData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java new file mode 100644 index 0000000..1f8bd09 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseCommonSentencePresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java new file mode 100644 index 0000000..f61f9b2 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseUpdateSupervisePresenter { + void onReadyRetrofitRequest(String id, String superviseRemarks); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java new file mode 100644 index 0000000..9c7b08b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CommonSentenceBean; + +public interface ICaseCommonSentenceView { + void obtainCommonSentenceData(CommonSentenceBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java new file mode 100644 index 0000000..10bcf5a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICaseUpdateSuperviseView { + void showProgress(); + + void hideProgress(); + + void obtainUpdateSuperviseData(ActionResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java index ad70b7a..9143db8 100644 --- a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.ui; +import android.view.View; + +import androidx.core.content.ContextCompat; + import com.bumptech.glide.Glide; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.luck.picture.lib.photoview.PhotoView; -import com.qmuiteam.qmui.util.QMUIStatusBarHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; import butterknife.BindView; @@ -15,6 +19,8 @@ **/ public class BigPictureActivity extends BaseActivity { + @BindView(R.id.imageTopLayout) + QMUITopBarLayout imageTopLayout; @BindView(R.id.photoView) PhotoView photoView; @@ -25,37 +31,24 @@ @Override protected void setupTopBarLayout() { - QMUIStatusBarHelper.setStatusBarLightMode(this); + imageTopLayout.setTitle("查看大图").setTextColor(ContextCompat.getColor(this, R.color.white)); + imageTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + imageTopLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); } @Override public void initData() { -// String mediaJson = getIntent().getStringExtra("mediaJson"); -// -// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() { -// }.getType()); -// -// list = new ArrayList<>(); -// assert mediaList != null; -// for (LocalMedia media : mediaList) { -// list.add(media.getRealPath()); -// } String path = getIntent().getStringExtra("path"); Glide.with(this).load(path).into(photoView); } @Override public void initEvent() { -// //轮播图 -// bigImageBanner.setImageLoader(new ImageLoader() { -// -// @Override -// public void displayImage(Context context, Object path, ImageView imageView) { -// Glide.with(context).load(path).into(imageView); -// } -// }); -// bigImageBanner.isAutoPlay(false); -// bigImageBanner.setImages(list); -// bigImageBanner.start(); + } } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f6ac20a..2070c95 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -67,12 +67,14 @@ - + - + + + { private Context context; + private List iconData = new ArrayList<>(); + private List itemData = new ArrayList<>(); public HomeRecycleAdapter(Context context) { this.context = context; } + public void setItemData(@Nullable List icons, @Nullable List items) { + this.iconData = icons; + this.itemData = items; + } + @NonNull @Override public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -30,7 +40,7 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - holder.bindView(context, position); + holder.bindView(position); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override @@ -43,7 +53,7 @@ @Override public int getItemCount() { - return Constant.ITEMS.size(); + return itemData.size(); } private OnGridItemClickListener clickListener; @@ -56,7 +66,7 @@ this.clickListener = onGridItemClickListener; } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { private ImageView imageView; private TextView textView; @@ -67,9 +77,9 @@ textView = itemView.findViewById(R.id.textView); } - void bindView(Context context, int position) { - imageView.setBackgroundResource(Constant.ICONS.get(position)); - textView.setText(Constant.ITEMS.get(position)); + void bindView(int position) { + imageView.setBackgroundResource(iconData.get(position)); + textView.setText(itemData.get(position)); } } } diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index b9c4615..d9b10e0 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; import java.util.ArrayList; @@ -62,7 +63,10 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - Glide.with(context).load(mediaList.get(position)).into(holder.imageView); + Glide.with(context) + .load(mediaList.get(position)) + .apply(new RequestOptions().error(R.drawable.ic_load_error)) + .into(holder.imageView); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/casic/dcms/base/BaseActivity.java b/app/src/main/java/com/casic/dcms/base/BaseActivity.java index caf0356..2ca87fe 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseActivity.java +++ b/app/src/main/java/com/casic/dcms/base/BaseActivity.java @@ -17,8 +17,8 @@ setContentView(initLayoutView()); ButterKnife.bind(this); QMUIStatusBarHelper.translucent(this);//沉浸式状态栏 - setupTopBarLayout(); initData(); + setupTopBarLayout(); initEvent(); } diff --git a/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java new file mode 100644 index 0000000..8de58a4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java @@ -0,0 +1,78 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CommonSentenceBean { + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 请及时处理 + * id : 156 + * value : 请及时处理 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java new file mode 100644 index 0000000..5258d89 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CommonSentenceBean; +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 CaseCommonSentenceModelImpl implements ICaseCommonSentenceModel { + + private OnGetCommonSentenceListener sentenceListener; + + public CaseCommonSentenceModelImpl(OnGetCommonSentenceListener commonSentenceListener) { + this.sentenceListener = commonSentenceListener; + } + + public interface OnGetCommonSentenceListener { + void onSuccess(CommonSentenceBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCommonSentenceResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (sentenceListener != null) { + sentenceListener.onFailure(e); + } + } + + @Override + public void onNext(CommonSentenceBean resultBean) { + if (resultBean != null) { + sentenceListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java new file mode 100644 index 0000000..a8cb3fc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java @@ -0,0 +1,53 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseUpdateSuperviseModelImpl implements ICaseUpdateSuperviseModel { + + private OnUpdateSuperviseListener listener; + + public CaseUpdateSuperviseModelImpl(OnUpdateSuperviseListener updateSuperviseListener) { + this.listener = updateSuperviseListener; + } + + /** + * 数据回调接口 + */ + public interface OnUpdateSuperviseListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String superviseRemarks) { + Observable observable = RetrofitServiceManager.getUpdateSuperviseResult(id, superviseRemarks); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java new file mode 100644 index 0000000..263ef6c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseCommonSentenceModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java new file mode 100644 index 0000000..518d602 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseUpdateSuperviseModel { + Subscription sendRetrofitRequest(String id, String superviseRemarks); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java new file mode 100644 index 0000000..6b65f13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseCommonSentenceModelImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; + +public class CaseCommonSentencePresenterImpl extends BasePresenter implements ICaseCommonSentencePresenter, + CaseCommonSentenceModelImpl.OnGetCommonSentenceListener { + + private ICaseCommonSentenceView view; + private CaseCommonSentenceModelImpl actionModel; + + public CaseCommonSentencePresenterImpl(ICaseCommonSentenceView commonSentenceView) { + this.view = commonSentenceView; + actionModel = new CaseCommonSentenceModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CommonSentenceBean resultBean) { + view.obtainCommonSentenceData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java new file mode 100644 index 0000000..66e1f44 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseUpdateSuperviseModelImpl; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; + +public class CaseUpdateSupervisePresenterImpl extends BasePresenter implements ICaseUpdateSupervisePresenter, + CaseUpdateSuperviseModelImpl.OnUpdateSuperviseListener { + + private ICaseUpdateSuperviseView view; + private CaseUpdateSuperviseModelImpl actionModel; + + public CaseUpdateSupervisePresenterImpl(ICaseUpdateSuperviseView updateSuperviseView) { + this.view = updateSuperviseView; + actionModel = new CaseUpdateSuperviseModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String superviseRemarks) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, superviseRemarks)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainUpdateSuperviseData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java new file mode 100644 index 0000000..1f8bd09 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseCommonSentencePresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java new file mode 100644 index 0000000..f61f9b2 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseUpdateSupervisePresenter { + void onReadyRetrofitRequest(String id, String superviseRemarks); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java new file mode 100644 index 0000000..9c7b08b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CommonSentenceBean; + +public interface ICaseCommonSentenceView { + void obtainCommonSentenceData(CommonSentenceBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java new file mode 100644 index 0000000..10bcf5a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICaseUpdateSuperviseView { + void showProgress(); + + void hideProgress(); + + void obtainUpdateSuperviseData(ActionResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java index ad70b7a..9143db8 100644 --- a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.ui; +import android.view.View; + +import androidx.core.content.ContextCompat; + import com.bumptech.glide.Glide; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.luck.picture.lib.photoview.PhotoView; -import com.qmuiteam.qmui.util.QMUIStatusBarHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; import butterknife.BindView; @@ -15,6 +19,8 @@ **/ public class BigPictureActivity extends BaseActivity { + @BindView(R.id.imageTopLayout) + QMUITopBarLayout imageTopLayout; @BindView(R.id.photoView) PhotoView photoView; @@ -25,37 +31,24 @@ @Override protected void setupTopBarLayout() { - QMUIStatusBarHelper.setStatusBarLightMode(this); + imageTopLayout.setTitle("查看大图").setTextColor(ContextCompat.getColor(this, R.color.white)); + imageTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + imageTopLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); } @Override public void initData() { -// String mediaJson = getIntent().getStringExtra("mediaJson"); -// -// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() { -// }.getType()); -// -// list = new ArrayList<>(); -// assert mediaList != null; -// for (LocalMedia media : mediaList) { -// list.add(media.getRealPath()); -// } String path = getIntent().getStringExtra("path"); Glide.with(this).load(path).into(photoView); } @Override public void initEvent() { -// //轮播图 -// bigImageBanner.setImageLoader(new ImageLoader() { -// -// @Override -// public void displayImage(Context context, Object path, ImageView imageView) { -// Glide.with(context).load(path).into(imageView); -// } -// }); -// bigImageBanner.isAutoPlay(false); -// bigImageBanner.setImages(list); -// bigImageBanner.start(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index 01a3807..7548cfc 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -329,7 +329,7 @@ caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f6ac20a..2070c95 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -67,12 +67,14 @@ - + - + + + { private Context context; + private List iconData = new ArrayList<>(); + private List itemData = new ArrayList<>(); public HomeRecycleAdapter(Context context) { this.context = context; } + public void setItemData(@Nullable List icons, @Nullable List items) { + this.iconData = icons; + this.itemData = items; + } + @NonNull @Override public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -30,7 +40,7 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - holder.bindView(context, position); + holder.bindView(position); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override @@ -43,7 +53,7 @@ @Override public int getItemCount() { - return Constant.ITEMS.size(); + return itemData.size(); } private OnGridItemClickListener clickListener; @@ -56,7 +66,7 @@ this.clickListener = onGridItemClickListener; } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { private ImageView imageView; private TextView textView; @@ -67,9 +77,9 @@ textView = itemView.findViewById(R.id.textView); } - void bindView(Context context, int position) { - imageView.setBackgroundResource(Constant.ICONS.get(position)); - textView.setText(Constant.ITEMS.get(position)); + void bindView(int position) { + imageView.setBackgroundResource(iconData.get(position)); + textView.setText(itemData.get(position)); } } } diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index b9c4615..d9b10e0 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; import java.util.ArrayList; @@ -62,7 +63,10 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - Glide.with(context).load(mediaList.get(position)).into(holder.imageView); + Glide.with(context) + .load(mediaList.get(position)) + .apply(new RequestOptions().error(R.drawable.ic_load_error)) + .into(holder.imageView); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/casic/dcms/base/BaseActivity.java b/app/src/main/java/com/casic/dcms/base/BaseActivity.java index caf0356..2ca87fe 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseActivity.java +++ b/app/src/main/java/com/casic/dcms/base/BaseActivity.java @@ -17,8 +17,8 @@ setContentView(initLayoutView()); ButterKnife.bind(this); QMUIStatusBarHelper.translucent(this);//沉浸式状态栏 - setupTopBarLayout(); initData(); + setupTopBarLayout(); initEvent(); } diff --git a/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java new file mode 100644 index 0000000..8de58a4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java @@ -0,0 +1,78 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CommonSentenceBean { + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 请及时处理 + * id : 156 + * value : 请及时处理 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java new file mode 100644 index 0000000..5258d89 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CommonSentenceBean; +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 CaseCommonSentenceModelImpl implements ICaseCommonSentenceModel { + + private OnGetCommonSentenceListener sentenceListener; + + public CaseCommonSentenceModelImpl(OnGetCommonSentenceListener commonSentenceListener) { + this.sentenceListener = commonSentenceListener; + } + + public interface OnGetCommonSentenceListener { + void onSuccess(CommonSentenceBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCommonSentenceResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (sentenceListener != null) { + sentenceListener.onFailure(e); + } + } + + @Override + public void onNext(CommonSentenceBean resultBean) { + if (resultBean != null) { + sentenceListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java new file mode 100644 index 0000000..a8cb3fc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java @@ -0,0 +1,53 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseUpdateSuperviseModelImpl implements ICaseUpdateSuperviseModel { + + private OnUpdateSuperviseListener listener; + + public CaseUpdateSuperviseModelImpl(OnUpdateSuperviseListener updateSuperviseListener) { + this.listener = updateSuperviseListener; + } + + /** + * 数据回调接口 + */ + public interface OnUpdateSuperviseListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String superviseRemarks) { + Observable observable = RetrofitServiceManager.getUpdateSuperviseResult(id, superviseRemarks); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java new file mode 100644 index 0000000..263ef6c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseCommonSentenceModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java new file mode 100644 index 0000000..518d602 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseUpdateSuperviseModel { + Subscription sendRetrofitRequest(String id, String superviseRemarks); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java new file mode 100644 index 0000000..6b65f13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseCommonSentenceModelImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; + +public class CaseCommonSentencePresenterImpl extends BasePresenter implements ICaseCommonSentencePresenter, + CaseCommonSentenceModelImpl.OnGetCommonSentenceListener { + + private ICaseCommonSentenceView view; + private CaseCommonSentenceModelImpl actionModel; + + public CaseCommonSentencePresenterImpl(ICaseCommonSentenceView commonSentenceView) { + this.view = commonSentenceView; + actionModel = new CaseCommonSentenceModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CommonSentenceBean resultBean) { + view.obtainCommonSentenceData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java new file mode 100644 index 0000000..66e1f44 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseUpdateSuperviseModelImpl; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; + +public class CaseUpdateSupervisePresenterImpl extends BasePresenter implements ICaseUpdateSupervisePresenter, + CaseUpdateSuperviseModelImpl.OnUpdateSuperviseListener { + + private ICaseUpdateSuperviseView view; + private CaseUpdateSuperviseModelImpl actionModel; + + public CaseUpdateSupervisePresenterImpl(ICaseUpdateSuperviseView updateSuperviseView) { + this.view = updateSuperviseView; + actionModel = new CaseUpdateSuperviseModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String superviseRemarks) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, superviseRemarks)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainUpdateSuperviseData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java new file mode 100644 index 0000000..1f8bd09 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseCommonSentencePresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java new file mode 100644 index 0000000..f61f9b2 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseUpdateSupervisePresenter { + void onReadyRetrofitRequest(String id, String superviseRemarks); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java new file mode 100644 index 0000000..9c7b08b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CommonSentenceBean; + +public interface ICaseCommonSentenceView { + void obtainCommonSentenceData(CommonSentenceBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java new file mode 100644 index 0000000..10bcf5a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICaseUpdateSuperviseView { + void showProgress(); + + void hideProgress(); + + void obtainUpdateSuperviseData(ActionResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java index ad70b7a..9143db8 100644 --- a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.ui; +import android.view.View; + +import androidx.core.content.ContextCompat; + import com.bumptech.glide.Glide; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.luck.picture.lib.photoview.PhotoView; -import com.qmuiteam.qmui.util.QMUIStatusBarHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; import butterknife.BindView; @@ -15,6 +19,8 @@ **/ public class BigPictureActivity extends BaseActivity { + @BindView(R.id.imageTopLayout) + QMUITopBarLayout imageTopLayout; @BindView(R.id.photoView) PhotoView photoView; @@ -25,37 +31,24 @@ @Override protected void setupTopBarLayout() { - QMUIStatusBarHelper.setStatusBarLightMode(this); + imageTopLayout.setTitle("查看大图").setTextColor(ContextCompat.getColor(this, R.color.white)); + imageTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + imageTopLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); } @Override public void initData() { -// String mediaJson = getIntent().getStringExtra("mediaJson"); -// -// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() { -// }.getType()); -// -// list = new ArrayList<>(); -// assert mediaList != null; -// for (LocalMedia media : mediaList) { -// list.add(media.getRealPath()); -// } String path = getIntent().getStringExtra("path"); Glide.with(this).load(path).into(photoView); } @Override public void initEvent() { -// //轮播图 -// bigImageBanner.setImageLoader(new ImageLoader() { -// -// @Override -// public void displayImage(Context context, Object path, ImageView imageView) { -// Glide.with(context).load(path).into(imageView); -// } -// }); -// bigImageBanner.isAutoPlay(false); -// bigImageBanner.setImages(list); -// bigImageBanner.start(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index 01a3807..7548cfc 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -329,7 +329,7 @@ caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java new file mode 100644 index 0000000..d4dba38 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -0,0 +1,505 @@ +package com.casic.dcms.ui; + +import android.content.DialogInterface; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseNextNodeBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseHandleView; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseNextNodeView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.IUploadFileView; +import com.casic.dcms.utils.FileUtils; +import com.casic.dcms.utils.GlideLoadEngine; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.luck.picture.lib.PictureSelector; +import com.luck.picture.lib.config.PictureConfig; +import com.luck.picture.lib.config.PictureMimeType; +import com.luck.picture.lib.entity.LocalMedia; +import com.luck.picture.lib.tools.PictureFileUtils; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, + ICaseHandleView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @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) + EditText casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.caseHandleView) + TextView caseHandleView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseStartTimeView) + TextView caseStartTimeView; + @BindView(R.id.caseEndTimeView) + TextView caseEndTimeView; + @BindView(R.id.caseHandleResultView) + TextView caseHandleResultView; + @BindView(R.id.caseHandleRecyclerView) + RecyclerView caseHandleRecyclerView; + @BindView(R.id.addImageView) + ImageView addImageView; + @BindView(R.id.caseReasonView) + EditText caseReasonView; + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private String changeState; + private String caseReason; + private String approvalResult; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private List largeClassBeans = new ArrayList<>(); + private List smallClassBeans = new ArrayList<>(); + private List realPaths = new ArrayList<>();//真实图片路径 + private List mediaList = new ArrayList<>();//上传到服务器的数据集 + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private CaseNextNodePresenterImpl caseNextNodePresenter; + private UploadImagePresenterImpl uploadImagePresenter; + private CaseHandlePresenterImpl caseHandlePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handle_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseNextNodePresenter = new CaseNextNodePresenterImpl(this); + uploadImagePresenter = new UploadImagePresenterImpl(this); + caseHandlePresenter = new CaseHandlePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @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()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + caseStartTimeView.setText(data.getCreateTime()); + caseEndTimeView.setText(data.getNodeLimittime()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeTypeView.setText("无小类"); + } else { + caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 + } + caseSmallTypeView.setText("请选择"); + } + } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallTypeView.setText("无小类"); + } else { + caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 + } + } + } + + @Override + public void obtainNextNodeData(CaseNextNodeBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处理结果"); + for (CaseNextNodeBean.DataBean dataBean : dataBeans) { + 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(); + + CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); + caseHandleResultView.setText(dataBean.getNextOperation()); + changeState = String.valueOf(dataBean.getNextState()); + approvalResult = dataBean.getApprovalResult(); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseClassLayout: + 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(); + + caseTypeView.setText(tag); + //获取案卷大类 + caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseLargeTypeView.setText(tag); + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseSmallTypeView.setText(tag); + } + }).build().show(); + } + } + break; + case R.id.caseHandleResultLayout: + caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); + break; + case R.id.addImageView: + new QMUIDialog.MenuDialogBuilder(this) + .addItem("相册中选取", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //选图 + selectPicture(); + } + }) + .addItem("相机拍照", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //拍照 + takePicture(); + } + }) + .create().show(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String handleResult = caseHandleResultView.getText().toString(); + if (handleResult.equals("请选择")) { + ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); + return; + } + if (handleResult.equals("处理完成")) { + //选择处理完成时,处理图片必传。至少一张,最多两张 + if (mediaList.size() < 1 || mediaList.size() > 2) { + ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); + return; + } + } + if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { + caseReason = caseReasonView.getText().toString(); + if (TextUtils.isEmpty(caseReason)) { + ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); + return; + } + } + caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), + changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); + } + + private void selectPicture() { + PictureSelector.create(this) + .openGallery(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(2) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.CHOOSE_REQUEST); + } + + private void takePicture() { + PictureSelector.create(this) + .openCamera(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(1) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.REQUEST_CAMERA); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == RESULT_OK) { + switch (requestCode) { + case PictureConfig.CHOOSE_REQUEST: + List selectList = PictureSelector.obtainMultipleResult(data); + for (LocalMedia media : selectList) { + String mediaCompressPath = media.getCompressPath(); + uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); + } + break; + case PictureConfig.REQUEST_CAMERA: + LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); + uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); + break; + default: + break; + } + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUploadAudioResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainUploadImageResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + PictureFileUtils.deleteAllCacheDirFile(this); + /** + * 系统路径static拼接图片返回路径 + * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg + */ + //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg + String url = resultBean.getData(); + mediaList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(realPaths); + caseHandleRecyclerView.setVisibility(View.VISIBLE); + caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); + caseHandleRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(realPaths.get(position)); + } + }); + //删除按钮点击事件 + imageAdapter.setDeleteView(true); + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } + } + + @Override + public void obtainUploadVideoResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainCaseHandleResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseNextNodePresenter != null) { + caseNextNodePresenter.disposeRetrofitRequest(); + } + if (uploadImagePresenter != null) { + uploadImagePresenter.disposeRetrofitRequest(); + } + if (caseHandlePresenter != null) { + caseHandlePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f6ac20a..2070c95 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -67,12 +67,14 @@ - + - + + + { private Context context; + private List iconData = new ArrayList<>(); + private List itemData = new ArrayList<>(); public HomeRecycleAdapter(Context context) { this.context = context; } + public void setItemData(@Nullable List icons, @Nullable List items) { + this.iconData = icons; + this.itemData = items; + } + @NonNull @Override public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -30,7 +40,7 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - holder.bindView(context, position); + holder.bindView(position); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override @@ -43,7 +53,7 @@ @Override public int getItemCount() { - return Constant.ITEMS.size(); + return itemData.size(); } private OnGridItemClickListener clickListener; @@ -56,7 +66,7 @@ this.clickListener = onGridItemClickListener; } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { private ImageView imageView; private TextView textView; @@ -67,9 +77,9 @@ textView = itemView.findViewById(R.id.textView); } - void bindView(Context context, int position) { - imageView.setBackgroundResource(Constant.ICONS.get(position)); - textView.setText(Constant.ITEMS.get(position)); + void bindView(int position) { + imageView.setBackgroundResource(iconData.get(position)); + textView.setText(itemData.get(position)); } } } diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index b9c4615..d9b10e0 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; import java.util.ArrayList; @@ -62,7 +63,10 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - Glide.with(context).load(mediaList.get(position)).into(holder.imageView); + Glide.with(context) + .load(mediaList.get(position)) + .apply(new RequestOptions().error(R.drawable.ic_load_error)) + .into(holder.imageView); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/casic/dcms/base/BaseActivity.java b/app/src/main/java/com/casic/dcms/base/BaseActivity.java index caf0356..2ca87fe 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseActivity.java +++ b/app/src/main/java/com/casic/dcms/base/BaseActivity.java @@ -17,8 +17,8 @@ setContentView(initLayoutView()); ButterKnife.bind(this); QMUIStatusBarHelper.translucent(this);//沉浸式状态栏 - setupTopBarLayout(); initData(); + setupTopBarLayout(); initEvent(); } diff --git a/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java new file mode 100644 index 0000000..8de58a4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java @@ -0,0 +1,78 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CommonSentenceBean { + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 请及时处理 + * id : 156 + * value : 请及时处理 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java new file mode 100644 index 0000000..5258d89 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CommonSentenceBean; +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 CaseCommonSentenceModelImpl implements ICaseCommonSentenceModel { + + private OnGetCommonSentenceListener sentenceListener; + + public CaseCommonSentenceModelImpl(OnGetCommonSentenceListener commonSentenceListener) { + this.sentenceListener = commonSentenceListener; + } + + public interface OnGetCommonSentenceListener { + void onSuccess(CommonSentenceBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCommonSentenceResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (sentenceListener != null) { + sentenceListener.onFailure(e); + } + } + + @Override + public void onNext(CommonSentenceBean resultBean) { + if (resultBean != null) { + sentenceListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java new file mode 100644 index 0000000..a8cb3fc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java @@ -0,0 +1,53 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseUpdateSuperviseModelImpl implements ICaseUpdateSuperviseModel { + + private OnUpdateSuperviseListener listener; + + public CaseUpdateSuperviseModelImpl(OnUpdateSuperviseListener updateSuperviseListener) { + this.listener = updateSuperviseListener; + } + + /** + * 数据回调接口 + */ + public interface OnUpdateSuperviseListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String superviseRemarks) { + Observable observable = RetrofitServiceManager.getUpdateSuperviseResult(id, superviseRemarks); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java new file mode 100644 index 0000000..263ef6c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseCommonSentenceModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java new file mode 100644 index 0000000..518d602 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseUpdateSuperviseModel { + Subscription sendRetrofitRequest(String id, String superviseRemarks); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java new file mode 100644 index 0000000..6b65f13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseCommonSentenceModelImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; + +public class CaseCommonSentencePresenterImpl extends BasePresenter implements ICaseCommonSentencePresenter, + CaseCommonSentenceModelImpl.OnGetCommonSentenceListener { + + private ICaseCommonSentenceView view; + private CaseCommonSentenceModelImpl actionModel; + + public CaseCommonSentencePresenterImpl(ICaseCommonSentenceView commonSentenceView) { + this.view = commonSentenceView; + actionModel = new CaseCommonSentenceModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CommonSentenceBean resultBean) { + view.obtainCommonSentenceData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java new file mode 100644 index 0000000..66e1f44 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseUpdateSuperviseModelImpl; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; + +public class CaseUpdateSupervisePresenterImpl extends BasePresenter implements ICaseUpdateSupervisePresenter, + CaseUpdateSuperviseModelImpl.OnUpdateSuperviseListener { + + private ICaseUpdateSuperviseView view; + private CaseUpdateSuperviseModelImpl actionModel; + + public CaseUpdateSupervisePresenterImpl(ICaseUpdateSuperviseView updateSuperviseView) { + this.view = updateSuperviseView; + actionModel = new CaseUpdateSuperviseModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String superviseRemarks) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, superviseRemarks)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainUpdateSuperviseData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java new file mode 100644 index 0000000..1f8bd09 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseCommonSentencePresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java new file mode 100644 index 0000000..f61f9b2 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseUpdateSupervisePresenter { + void onReadyRetrofitRequest(String id, String superviseRemarks); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java new file mode 100644 index 0000000..9c7b08b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CommonSentenceBean; + +public interface ICaseCommonSentenceView { + void obtainCommonSentenceData(CommonSentenceBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java new file mode 100644 index 0000000..10bcf5a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICaseUpdateSuperviseView { + void showProgress(); + + void hideProgress(); + + void obtainUpdateSuperviseData(ActionResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java index ad70b7a..9143db8 100644 --- a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.ui; +import android.view.View; + +import androidx.core.content.ContextCompat; + import com.bumptech.glide.Glide; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.luck.picture.lib.photoview.PhotoView; -import com.qmuiteam.qmui.util.QMUIStatusBarHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; import butterknife.BindView; @@ -15,6 +19,8 @@ **/ public class BigPictureActivity extends BaseActivity { + @BindView(R.id.imageTopLayout) + QMUITopBarLayout imageTopLayout; @BindView(R.id.photoView) PhotoView photoView; @@ -25,37 +31,24 @@ @Override protected void setupTopBarLayout() { - QMUIStatusBarHelper.setStatusBarLightMode(this); + imageTopLayout.setTitle("查看大图").setTextColor(ContextCompat.getColor(this, R.color.white)); + imageTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + imageTopLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); } @Override public void initData() { -// String mediaJson = getIntent().getStringExtra("mediaJson"); -// -// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() { -// }.getType()); -// -// list = new ArrayList<>(); -// assert mediaList != null; -// for (LocalMedia media : mediaList) { -// list.add(media.getRealPath()); -// } String path = getIntent().getStringExtra("path"); Glide.with(this).load(path).into(photoView); } @Override public void initEvent() { -// //轮播图 -// bigImageBanner.setImageLoader(new ImageLoader() { -// -// @Override -// public void displayImage(Context context, Object path, ImageView imageView) { -// Glide.with(context).load(path).into(imageView); -// } -// }); -// bigImageBanner.isAutoPlay(false); -// bigImageBanner.setImages(list); -// bigImageBanner.start(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index 01a3807..7548cfc 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -329,7 +329,7 @@ caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java new file mode 100644 index 0000000..d4dba38 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -0,0 +1,505 @@ +package com.casic.dcms.ui; + +import android.content.DialogInterface; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseNextNodeBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseHandleView; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseNextNodeView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.IUploadFileView; +import com.casic.dcms.utils.FileUtils; +import com.casic.dcms.utils.GlideLoadEngine; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.luck.picture.lib.PictureSelector; +import com.luck.picture.lib.config.PictureConfig; +import com.luck.picture.lib.config.PictureMimeType; +import com.luck.picture.lib.entity.LocalMedia; +import com.luck.picture.lib.tools.PictureFileUtils; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, + ICaseHandleView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @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) + EditText casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.caseHandleView) + TextView caseHandleView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseStartTimeView) + TextView caseStartTimeView; + @BindView(R.id.caseEndTimeView) + TextView caseEndTimeView; + @BindView(R.id.caseHandleResultView) + TextView caseHandleResultView; + @BindView(R.id.caseHandleRecyclerView) + RecyclerView caseHandleRecyclerView; + @BindView(R.id.addImageView) + ImageView addImageView; + @BindView(R.id.caseReasonView) + EditText caseReasonView; + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private String changeState; + private String caseReason; + private String approvalResult; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private List largeClassBeans = new ArrayList<>(); + private List smallClassBeans = new ArrayList<>(); + private List realPaths = new ArrayList<>();//真实图片路径 + private List mediaList = new ArrayList<>();//上传到服务器的数据集 + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private CaseNextNodePresenterImpl caseNextNodePresenter; + private UploadImagePresenterImpl uploadImagePresenter; + private CaseHandlePresenterImpl caseHandlePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handle_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseNextNodePresenter = new CaseNextNodePresenterImpl(this); + uploadImagePresenter = new UploadImagePresenterImpl(this); + caseHandlePresenter = new CaseHandlePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @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()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + caseStartTimeView.setText(data.getCreateTime()); + caseEndTimeView.setText(data.getNodeLimittime()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeTypeView.setText("无小类"); + } else { + caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 + } + caseSmallTypeView.setText("请选择"); + } + } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallTypeView.setText("无小类"); + } else { + caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 + } + } + } + + @Override + public void obtainNextNodeData(CaseNextNodeBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处理结果"); + for (CaseNextNodeBean.DataBean dataBean : dataBeans) { + 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(); + + CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); + caseHandleResultView.setText(dataBean.getNextOperation()); + changeState = String.valueOf(dataBean.getNextState()); + approvalResult = dataBean.getApprovalResult(); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseClassLayout: + 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(); + + caseTypeView.setText(tag); + //获取案卷大类 + caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseLargeTypeView.setText(tag); + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseSmallTypeView.setText(tag); + } + }).build().show(); + } + } + break; + case R.id.caseHandleResultLayout: + caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); + break; + case R.id.addImageView: + new QMUIDialog.MenuDialogBuilder(this) + .addItem("相册中选取", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //选图 + selectPicture(); + } + }) + .addItem("相机拍照", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //拍照 + takePicture(); + } + }) + .create().show(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String handleResult = caseHandleResultView.getText().toString(); + if (handleResult.equals("请选择")) { + ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); + return; + } + if (handleResult.equals("处理完成")) { + //选择处理完成时,处理图片必传。至少一张,最多两张 + if (mediaList.size() < 1 || mediaList.size() > 2) { + ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); + return; + } + } + if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { + caseReason = caseReasonView.getText().toString(); + if (TextUtils.isEmpty(caseReason)) { + ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); + return; + } + } + caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), + changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); + } + + private void selectPicture() { + PictureSelector.create(this) + .openGallery(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(2) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.CHOOSE_REQUEST); + } + + private void takePicture() { + PictureSelector.create(this) + .openCamera(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(1) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.REQUEST_CAMERA); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == RESULT_OK) { + switch (requestCode) { + case PictureConfig.CHOOSE_REQUEST: + List selectList = PictureSelector.obtainMultipleResult(data); + for (LocalMedia media : selectList) { + String mediaCompressPath = media.getCompressPath(); + uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); + } + break; + case PictureConfig.REQUEST_CAMERA: + LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); + uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); + break; + default: + break; + } + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUploadAudioResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainUploadImageResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + PictureFileUtils.deleteAllCacheDirFile(this); + /** + * 系统路径static拼接图片返回路径 + * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg + */ + //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg + String url = resultBean.getData(); + mediaList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(realPaths); + caseHandleRecyclerView.setVisibility(View.VISIBLE); + caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); + caseHandleRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(realPaths.get(position)); + } + }); + //删除按钮点击事件 + imageAdapter.setDeleteView(true); + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } + } + + @Override + public void obtainUploadVideoResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainCaseHandleResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseNextNodePresenter != null) { + caseNextNodePresenter.disposeRetrofitRequest(); + } + if (uploadImagePresenter != null) { + uploadImagePresenter.disposeRetrofitRequest(); + } + if (caseHandlePresenter != null) { + caseHandlePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java deleted file mode 100644 index bd187c5..0000000 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java +++ /dev/null @@ -1,500 +0,0 @@ -package com.casic.dcms.ui; - -import android.content.DialogInterface; -import android.content.Intent; -import android.text.TextUtils; -import android.view.View; -import android.widget.EditText; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.Nullable; -import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.adapter.ImageRecycleViewAdapter; -import com.casic.dcms.base.BaseCaseActivity; -import com.casic.dcms.bean.ActionResultBean; -import com.casic.dcms.bean.CaseDetailBean; -import com.casic.dcms.bean.CaseLargeClassBean; -import com.casic.dcms.bean.CaseNextNodeBean; -import com.casic.dcms.bean.CaseSmallClassBean; -import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; -import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; -import com.casic.dcms.mvp.view.ICaseDetailView; -import com.casic.dcms.mvp.view.ICaseHandleView; -import com.casic.dcms.mvp.view.ICaseLargeClassView; -import com.casic.dcms.mvp.view.ICaseNextNodeView; -import com.casic.dcms.mvp.view.ICaseSmallClassView; -import com.casic.dcms.mvp.view.IUploadFileView; -import com.casic.dcms.utils.FileUtils; -import com.casic.dcms.utils.GlideLoadEngine; -import com.casic.dcms.utils.ItemDecorationSpace; -import com.casic.dcms.utils.StringHelper; -import com.casic.dcms.utils.ToastHelper; -import com.luck.picture.lib.PictureSelector; -import com.luck.picture.lib.config.PictureConfig; -import com.luck.picture.lib.config.PictureMimeType; -import com.luck.picture.lib.entity.LocalMedia; -import com.luck.picture.lib.tools.PictureFileUtils; -import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; -import com.qmuiteam.qmui.widget.dialog.QMUIDialog; -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; - -import butterknife.BindView; -import butterknife.OnClick; - -public class CaseHandleOvertimeDetailActivity extends BaseCaseActivity implements View.OnClickListener, - ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, - ICaseHandleView { - - @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) - EditText casePlaceView; - @BindView(R.id.caseSituationView) - TextView caseSituationView; - @BindView(R.id.caseHandleView) - TextView caseHandleView; - @BindView(R.id.casePicRecyclerView) - RecyclerView casePicRecyclerView; - @BindView(R.id.caseStartTimeView) - TextView caseStartTimeView; - @BindView(R.id.caseEndTimeView) - TextView caseEndTimeView; - @BindView(R.id.caseHandleResultView) - TextView caseHandleResultView; - @BindView(R.id.caseHandleRecyclerView) - RecyclerView caseHandleRecyclerView; - @BindView(R.id.addImageView) - ImageView addImageView; - @BindView(R.id.caseReasonView) - EditText caseReasonView; - @BindView(R.id.submitButton) - QMUIRoundButton submitButton; - - private String id; - private String changeState; - private String caseReason; - private String approvalResult; - private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); - private List largeClassBeans = new ArrayList<>(); - private List smallClassBeans = new ArrayList<>(); - private List realPaths = new ArrayList<>();//真实图片路径 - private List mediaList = new ArrayList<>();//上传到服务器的数据集 - - private CaseDetailPresenterImpl caseDetailPresenter; - private CaseLargeClassPresenterImpl caseLargeClassPresenter; - private CaseSmallClassPresenterImpl caseSmallClassPresenter; - private CaseNextNodePresenterImpl caseNextNodePresenter; - private UploadImagePresenterImpl uploadImagePresenter; - private CaseHandlePresenterImpl caseHandlePresenter; - - private QMUITipDialog submitDialog; - - @Override - public int initLayoutView() { - return R.layout.activity_case_handle_overtime; - } - - @Override - protected String setTitleName() { - return "超时案卷"; - } - - @Override - public void initData() { - id = getIntent().getStringExtra("id"); - caseDetailPresenter = new CaseDetailPresenterImpl(this); - caseDetailPresenter.onReadyRetrofitRequest(id); - - caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); - caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); - caseNextNodePresenter = new CaseNextNodePresenterImpl(this); - uploadImagePresenter = new UploadImagePresenterImpl(this); - caseHandlePresenter = new CaseHandlePresenterImpl(this); - - submitDialog = new QMUITipDialog.Builder(this) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord("提交中,请稍后") - .create(); - } - - @Override - public void initEvent() { - submitButton.setChangeAlphaWhenPress(true); - } - - @Override - public void obtainCaseDetailData(CaseDetailBean resultBean) { - if (resultBean.isSuccess()) { - this.data = resultBean.getData().get(0); - caseTypeView.setText(data.getEorcName()); - caseLargeTypeView.setText(data.getCasetypeName()); - caseSmallTypeView.setText(data.getCasetypeDetailName()); - caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro()); - caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); - caseStartTimeView.setText(data.getCreateTime()); - caseEndTimeView.setText(data.getNodeLimittime()); - - String verifyImages = data.getFileIdVerify(); - if (!TextUtils.isEmpty(verifyImages)) { - List urls = new ArrayList<>(); - String[] split = verifyImages.split(","); - for (String s : split) { - urls.add(StringHelper.appendCompleteURL(s)); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(urls); - casePicRecyclerView.setVisibility(View.VISIBLE); - casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); - casePicRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(urls.get(position)); - } - }); - imageAdapter.setDeleteView(false); - } - } - } - - private void showBigImage(String path) { - Intent intent = new Intent(this, BigPictureActivity.class); - intent.putExtra("path", path); - startActivity(intent); - } - - @Override - public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { - if (largeClassBean.isSuccess()) { - //设置大类数据 - this.largeClassBeans = largeClassBean.getData(); - if (largeClassBeans.size() == 0) { - caseLargeTypeView.setText("无小类"); - } else { - caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 - } - caseSmallTypeView.setText("请选择"); - } - } - - @Override - public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { - if (smallClassBean.isSuccess()) { - //设置大类数据 - this.smallClassBeans = smallClassBean.getData(); - if (smallClassBeans.size() == 0) { - caseSmallTypeView.setText("无小类"); - } else { - caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 - } - } - } - - @Override - public void obtainNextNodeData(CaseNextNodeBean resultBean) { - if (resultBean.isSuccess()) { - List dataBeans = resultBean.getData(); - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("处理结果"); - for (CaseNextNodeBean.DataBean dataBean : dataBeans) { - 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(); - - CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); - caseHandleResultView.setText(dataBean.getNextOperation()); - changeState = String.valueOf(dataBean.getNextState()); - approvalResult = dataBean.getApprovalResult(); - } - }).build().show(); - } else { - ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); - } - } - - @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) - @Override - public void onClick(View v) { - switch (v.getId()) { - case R.id.caseClassLayout: - 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(); - - caseTypeView.setText(tag); - //获取案卷大类 - caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); - } - }).build().show(); - break; - case R.id.caseLargeClassLayout: - if (largeClassBeans != null) { - if (largeClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷大类"); - for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { - sheetBuilder.addItem(dataBean.getTypeName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseLargeTypeView.setText(tag); - //获取案卷小类 - CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); - String typeId = dataBean.getId(); - caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); - } - }).build().show(); - } - } - break; - case R.id.caseSmallClassLayout: - if (smallClassBeans != null) { - if (smallClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷小类"); - for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { - sheetBuilder.addItem(dataBean.getTypeDetailName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseSmallTypeView.setText(tag); - } - }).build().show(); - } - } - break; - case R.id.caseHandleResultLayout: - caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); - break; - case R.id.addImageView: - new QMUIDialog.MenuDialogBuilder(this) - .addItem("相册中选取", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //选图 - selectPicture(); - } - }) - .addItem("相机拍照", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //拍照 - takePicture(); - } - }) - .create().show(); - break; - case R.id.submitButton: - submitCase();//案卷提交 - break; - default: - break; - } - } - - private void submitCase() { - String handleResult = caseHandleResultView.getText().toString(); - if (handleResult.equals("请选择")) { - ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); - return; - } - if (handleResult.equals("处理完成")) { - //选择处理完成时,处理图片必传。至少一张,最多两张 - if (mediaList.size() < 1 || mediaList.size() > 2) { - ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); - return; - } - } - if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { - caseReason = caseReasonView.getText().toString(); - if (TextUtils.isEmpty(caseReason)) { - ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); - return; - } - } - caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), - changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); - } - - private void selectPicture() { - PictureSelector.create(this) - .openGallery(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(2) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.CHOOSE_REQUEST); - } - - private void takePicture() { - PictureSelector.create(this) - .openCamera(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(1) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.REQUEST_CAMERA); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if (resultCode == RESULT_OK) { - switch (requestCode) { - case PictureConfig.CHOOSE_REQUEST: - List selectList = PictureSelector.obtainMultipleResult(data); - for (LocalMedia media : selectList) { - String mediaCompressPath = media.getCompressPath(); - uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); - } - break; - case PictureConfig.REQUEST_CAMERA: - LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); - uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); - break; - default: - break; - } - } - } - - @Override - public void showProgress() { - submitDialog.show(); - } - - @Override - public void hideProgress() { - submitDialog.hide(); - } - - @Override - public void obtainUploadAudioResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainUploadImageResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - PictureFileUtils.deleteAllCacheDirFile(this); - /** - * 系统路径static拼接图片返回路径 - * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg - */ - //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String url = resultBean.getData(); - mediaList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(realPaths); - caseHandleRecyclerView.setVisibility(View.VISIBLE); - caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); - caseHandleRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(realPaths.get(position)); - } - }); - //删除按钮点击事件 - imageAdapter.setDeleteView(true); - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); - } - } - }); - } - } - - @Override - public void obtainUploadVideoResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainCaseHandleResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); - finish(); - } else { - ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); - } - } - - @Override - protected void onDestroy() { - super.onDestroy(); - if (caseDetailPresenter != null) { - caseDetailPresenter.disposeRetrofitRequest(); - } - if (caseLargeClassPresenter != null) { - caseLargeClassPresenter.disposeRetrofitRequest(); - } - if (caseSmallClassPresenter != null) { - caseSmallClassPresenter.disposeRetrofitRequest(); - } - if (caseNextNodePresenter != null) { - caseNextNodePresenter.disposeRetrofitRequest(); - } - if (uploadImagePresenter != null) { - uploadImagePresenter.disposeRetrofitRequest(); - } - if (caseHandlePresenter != null) { - caseHandlePresenter.disposeRetrofitRequest(); - } - } -} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f6ac20a..2070c95 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -67,12 +67,14 @@ - + - + + + { private Context context; + private List iconData = new ArrayList<>(); + private List itemData = new ArrayList<>(); public HomeRecycleAdapter(Context context) { this.context = context; } + public void setItemData(@Nullable List icons, @Nullable List items) { + this.iconData = icons; + this.itemData = items; + } + @NonNull @Override public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -30,7 +40,7 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - holder.bindView(context, position); + holder.bindView(position); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override @@ -43,7 +53,7 @@ @Override public int getItemCount() { - return Constant.ITEMS.size(); + return itemData.size(); } private OnGridItemClickListener clickListener; @@ -56,7 +66,7 @@ this.clickListener = onGridItemClickListener; } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { private ImageView imageView; private TextView textView; @@ -67,9 +77,9 @@ textView = itemView.findViewById(R.id.textView); } - void bindView(Context context, int position) { - imageView.setBackgroundResource(Constant.ICONS.get(position)); - textView.setText(Constant.ITEMS.get(position)); + void bindView(int position) { + imageView.setBackgroundResource(iconData.get(position)); + textView.setText(itemData.get(position)); } } } diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index b9c4615..d9b10e0 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; import java.util.ArrayList; @@ -62,7 +63,10 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - Glide.with(context).load(mediaList.get(position)).into(holder.imageView); + Glide.with(context) + .load(mediaList.get(position)) + .apply(new RequestOptions().error(R.drawable.ic_load_error)) + .into(holder.imageView); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/casic/dcms/base/BaseActivity.java b/app/src/main/java/com/casic/dcms/base/BaseActivity.java index caf0356..2ca87fe 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseActivity.java +++ b/app/src/main/java/com/casic/dcms/base/BaseActivity.java @@ -17,8 +17,8 @@ setContentView(initLayoutView()); ButterKnife.bind(this); QMUIStatusBarHelper.translucent(this);//沉浸式状态栏 - setupTopBarLayout(); initData(); + setupTopBarLayout(); initEvent(); } diff --git a/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java new file mode 100644 index 0000000..8de58a4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java @@ -0,0 +1,78 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CommonSentenceBean { + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 请及时处理 + * id : 156 + * value : 请及时处理 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java new file mode 100644 index 0000000..5258d89 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CommonSentenceBean; +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 CaseCommonSentenceModelImpl implements ICaseCommonSentenceModel { + + private OnGetCommonSentenceListener sentenceListener; + + public CaseCommonSentenceModelImpl(OnGetCommonSentenceListener commonSentenceListener) { + this.sentenceListener = commonSentenceListener; + } + + public interface OnGetCommonSentenceListener { + void onSuccess(CommonSentenceBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCommonSentenceResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (sentenceListener != null) { + sentenceListener.onFailure(e); + } + } + + @Override + public void onNext(CommonSentenceBean resultBean) { + if (resultBean != null) { + sentenceListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java new file mode 100644 index 0000000..a8cb3fc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java @@ -0,0 +1,53 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseUpdateSuperviseModelImpl implements ICaseUpdateSuperviseModel { + + private OnUpdateSuperviseListener listener; + + public CaseUpdateSuperviseModelImpl(OnUpdateSuperviseListener updateSuperviseListener) { + this.listener = updateSuperviseListener; + } + + /** + * 数据回调接口 + */ + public interface OnUpdateSuperviseListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String superviseRemarks) { + Observable observable = RetrofitServiceManager.getUpdateSuperviseResult(id, superviseRemarks); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java new file mode 100644 index 0000000..263ef6c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseCommonSentenceModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java new file mode 100644 index 0000000..518d602 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseUpdateSuperviseModel { + Subscription sendRetrofitRequest(String id, String superviseRemarks); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java new file mode 100644 index 0000000..6b65f13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseCommonSentenceModelImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; + +public class CaseCommonSentencePresenterImpl extends BasePresenter implements ICaseCommonSentencePresenter, + CaseCommonSentenceModelImpl.OnGetCommonSentenceListener { + + private ICaseCommonSentenceView view; + private CaseCommonSentenceModelImpl actionModel; + + public CaseCommonSentencePresenterImpl(ICaseCommonSentenceView commonSentenceView) { + this.view = commonSentenceView; + actionModel = new CaseCommonSentenceModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CommonSentenceBean resultBean) { + view.obtainCommonSentenceData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java new file mode 100644 index 0000000..66e1f44 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseUpdateSuperviseModelImpl; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; + +public class CaseUpdateSupervisePresenterImpl extends BasePresenter implements ICaseUpdateSupervisePresenter, + CaseUpdateSuperviseModelImpl.OnUpdateSuperviseListener { + + private ICaseUpdateSuperviseView view; + private CaseUpdateSuperviseModelImpl actionModel; + + public CaseUpdateSupervisePresenterImpl(ICaseUpdateSuperviseView updateSuperviseView) { + this.view = updateSuperviseView; + actionModel = new CaseUpdateSuperviseModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String superviseRemarks) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, superviseRemarks)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainUpdateSuperviseData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java new file mode 100644 index 0000000..1f8bd09 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseCommonSentencePresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java new file mode 100644 index 0000000..f61f9b2 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseUpdateSupervisePresenter { + void onReadyRetrofitRequest(String id, String superviseRemarks); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java new file mode 100644 index 0000000..9c7b08b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CommonSentenceBean; + +public interface ICaseCommonSentenceView { + void obtainCommonSentenceData(CommonSentenceBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java new file mode 100644 index 0000000..10bcf5a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICaseUpdateSuperviseView { + void showProgress(); + + void hideProgress(); + + void obtainUpdateSuperviseData(ActionResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java index ad70b7a..9143db8 100644 --- a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.ui; +import android.view.View; + +import androidx.core.content.ContextCompat; + import com.bumptech.glide.Glide; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.luck.picture.lib.photoview.PhotoView; -import com.qmuiteam.qmui.util.QMUIStatusBarHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; import butterknife.BindView; @@ -15,6 +19,8 @@ **/ public class BigPictureActivity extends BaseActivity { + @BindView(R.id.imageTopLayout) + QMUITopBarLayout imageTopLayout; @BindView(R.id.photoView) PhotoView photoView; @@ -25,37 +31,24 @@ @Override protected void setupTopBarLayout() { - QMUIStatusBarHelper.setStatusBarLightMode(this); + imageTopLayout.setTitle("查看大图").setTextColor(ContextCompat.getColor(this, R.color.white)); + imageTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + imageTopLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); } @Override public void initData() { -// String mediaJson = getIntent().getStringExtra("mediaJson"); -// -// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() { -// }.getType()); -// -// list = new ArrayList<>(); -// assert mediaList != null; -// for (LocalMedia media : mediaList) { -// list.add(media.getRealPath()); -// } String path = getIntent().getStringExtra("path"); Glide.with(this).load(path).into(photoView); } @Override public void initEvent() { -// //轮播图 -// bigImageBanner.setImageLoader(new ImageLoader() { -// -// @Override -// public void displayImage(Context context, Object path, ImageView imageView) { -// Glide.with(context).load(path).into(imageView); -// } -// }); -// bigImageBanner.isAutoPlay(false); -// bigImageBanner.setImages(list); -// bigImageBanner.start(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index 01a3807..7548cfc 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -329,7 +329,7 @@ caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java new file mode 100644 index 0000000..d4dba38 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -0,0 +1,505 @@ +package com.casic.dcms.ui; + +import android.content.DialogInterface; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseNextNodeBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseHandleView; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseNextNodeView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.IUploadFileView; +import com.casic.dcms.utils.FileUtils; +import com.casic.dcms.utils.GlideLoadEngine; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.luck.picture.lib.PictureSelector; +import com.luck.picture.lib.config.PictureConfig; +import com.luck.picture.lib.config.PictureMimeType; +import com.luck.picture.lib.entity.LocalMedia; +import com.luck.picture.lib.tools.PictureFileUtils; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, + ICaseHandleView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @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) + EditText casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.caseHandleView) + TextView caseHandleView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseStartTimeView) + TextView caseStartTimeView; + @BindView(R.id.caseEndTimeView) + TextView caseEndTimeView; + @BindView(R.id.caseHandleResultView) + TextView caseHandleResultView; + @BindView(R.id.caseHandleRecyclerView) + RecyclerView caseHandleRecyclerView; + @BindView(R.id.addImageView) + ImageView addImageView; + @BindView(R.id.caseReasonView) + EditText caseReasonView; + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private String changeState; + private String caseReason; + private String approvalResult; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private List largeClassBeans = new ArrayList<>(); + private List smallClassBeans = new ArrayList<>(); + private List realPaths = new ArrayList<>();//真实图片路径 + private List mediaList = new ArrayList<>();//上传到服务器的数据集 + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private CaseNextNodePresenterImpl caseNextNodePresenter; + private UploadImagePresenterImpl uploadImagePresenter; + private CaseHandlePresenterImpl caseHandlePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handle_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseNextNodePresenter = new CaseNextNodePresenterImpl(this); + uploadImagePresenter = new UploadImagePresenterImpl(this); + caseHandlePresenter = new CaseHandlePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @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()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + caseStartTimeView.setText(data.getCreateTime()); + caseEndTimeView.setText(data.getNodeLimittime()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeTypeView.setText("无小类"); + } else { + caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 + } + caseSmallTypeView.setText("请选择"); + } + } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallTypeView.setText("无小类"); + } else { + caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 + } + } + } + + @Override + public void obtainNextNodeData(CaseNextNodeBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处理结果"); + for (CaseNextNodeBean.DataBean dataBean : dataBeans) { + 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(); + + CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); + caseHandleResultView.setText(dataBean.getNextOperation()); + changeState = String.valueOf(dataBean.getNextState()); + approvalResult = dataBean.getApprovalResult(); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseClassLayout: + 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(); + + caseTypeView.setText(tag); + //获取案卷大类 + caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseLargeTypeView.setText(tag); + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseSmallTypeView.setText(tag); + } + }).build().show(); + } + } + break; + case R.id.caseHandleResultLayout: + caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); + break; + case R.id.addImageView: + new QMUIDialog.MenuDialogBuilder(this) + .addItem("相册中选取", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //选图 + selectPicture(); + } + }) + .addItem("相机拍照", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //拍照 + takePicture(); + } + }) + .create().show(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String handleResult = caseHandleResultView.getText().toString(); + if (handleResult.equals("请选择")) { + ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); + return; + } + if (handleResult.equals("处理完成")) { + //选择处理完成时,处理图片必传。至少一张,最多两张 + if (mediaList.size() < 1 || mediaList.size() > 2) { + ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); + return; + } + } + if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { + caseReason = caseReasonView.getText().toString(); + if (TextUtils.isEmpty(caseReason)) { + ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); + return; + } + } + caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), + changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); + } + + private void selectPicture() { + PictureSelector.create(this) + .openGallery(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(2) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.CHOOSE_REQUEST); + } + + private void takePicture() { + PictureSelector.create(this) + .openCamera(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(1) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.REQUEST_CAMERA); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == RESULT_OK) { + switch (requestCode) { + case PictureConfig.CHOOSE_REQUEST: + List selectList = PictureSelector.obtainMultipleResult(data); + for (LocalMedia media : selectList) { + String mediaCompressPath = media.getCompressPath(); + uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); + } + break; + case PictureConfig.REQUEST_CAMERA: + LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); + uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); + break; + default: + break; + } + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUploadAudioResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainUploadImageResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + PictureFileUtils.deleteAllCacheDirFile(this); + /** + * 系统路径static拼接图片返回路径 + * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg + */ + //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg + String url = resultBean.getData(); + mediaList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(realPaths); + caseHandleRecyclerView.setVisibility(View.VISIBLE); + caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); + caseHandleRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(realPaths.get(position)); + } + }); + //删除按钮点击事件 + imageAdapter.setDeleteView(true); + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } + } + + @Override + public void obtainUploadVideoResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainCaseHandleResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseNextNodePresenter != null) { + caseNextNodePresenter.disposeRetrofitRequest(); + } + if (uploadImagePresenter != null) { + uploadImagePresenter.disposeRetrofitRequest(); + } + if (caseHandlePresenter != null) { + caseHandlePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java deleted file mode 100644 index bd187c5..0000000 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java +++ /dev/null @@ -1,500 +0,0 @@ -package com.casic.dcms.ui; - -import android.content.DialogInterface; -import android.content.Intent; -import android.text.TextUtils; -import android.view.View; -import android.widget.EditText; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.Nullable; -import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.adapter.ImageRecycleViewAdapter; -import com.casic.dcms.base.BaseCaseActivity; -import com.casic.dcms.bean.ActionResultBean; -import com.casic.dcms.bean.CaseDetailBean; -import com.casic.dcms.bean.CaseLargeClassBean; -import com.casic.dcms.bean.CaseNextNodeBean; -import com.casic.dcms.bean.CaseSmallClassBean; -import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; -import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; -import com.casic.dcms.mvp.view.ICaseDetailView; -import com.casic.dcms.mvp.view.ICaseHandleView; -import com.casic.dcms.mvp.view.ICaseLargeClassView; -import com.casic.dcms.mvp.view.ICaseNextNodeView; -import com.casic.dcms.mvp.view.ICaseSmallClassView; -import com.casic.dcms.mvp.view.IUploadFileView; -import com.casic.dcms.utils.FileUtils; -import com.casic.dcms.utils.GlideLoadEngine; -import com.casic.dcms.utils.ItemDecorationSpace; -import com.casic.dcms.utils.StringHelper; -import com.casic.dcms.utils.ToastHelper; -import com.luck.picture.lib.PictureSelector; -import com.luck.picture.lib.config.PictureConfig; -import com.luck.picture.lib.config.PictureMimeType; -import com.luck.picture.lib.entity.LocalMedia; -import com.luck.picture.lib.tools.PictureFileUtils; -import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; -import com.qmuiteam.qmui.widget.dialog.QMUIDialog; -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; - -import butterknife.BindView; -import butterknife.OnClick; - -public class CaseHandleOvertimeDetailActivity extends BaseCaseActivity implements View.OnClickListener, - ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, - ICaseHandleView { - - @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) - EditText casePlaceView; - @BindView(R.id.caseSituationView) - TextView caseSituationView; - @BindView(R.id.caseHandleView) - TextView caseHandleView; - @BindView(R.id.casePicRecyclerView) - RecyclerView casePicRecyclerView; - @BindView(R.id.caseStartTimeView) - TextView caseStartTimeView; - @BindView(R.id.caseEndTimeView) - TextView caseEndTimeView; - @BindView(R.id.caseHandleResultView) - TextView caseHandleResultView; - @BindView(R.id.caseHandleRecyclerView) - RecyclerView caseHandleRecyclerView; - @BindView(R.id.addImageView) - ImageView addImageView; - @BindView(R.id.caseReasonView) - EditText caseReasonView; - @BindView(R.id.submitButton) - QMUIRoundButton submitButton; - - private String id; - private String changeState; - private String caseReason; - private String approvalResult; - private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); - private List largeClassBeans = new ArrayList<>(); - private List smallClassBeans = new ArrayList<>(); - private List realPaths = new ArrayList<>();//真实图片路径 - private List mediaList = new ArrayList<>();//上传到服务器的数据集 - - private CaseDetailPresenterImpl caseDetailPresenter; - private CaseLargeClassPresenterImpl caseLargeClassPresenter; - private CaseSmallClassPresenterImpl caseSmallClassPresenter; - private CaseNextNodePresenterImpl caseNextNodePresenter; - private UploadImagePresenterImpl uploadImagePresenter; - private CaseHandlePresenterImpl caseHandlePresenter; - - private QMUITipDialog submitDialog; - - @Override - public int initLayoutView() { - return R.layout.activity_case_handle_overtime; - } - - @Override - protected String setTitleName() { - return "超时案卷"; - } - - @Override - public void initData() { - id = getIntent().getStringExtra("id"); - caseDetailPresenter = new CaseDetailPresenterImpl(this); - caseDetailPresenter.onReadyRetrofitRequest(id); - - caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); - caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); - caseNextNodePresenter = new CaseNextNodePresenterImpl(this); - uploadImagePresenter = new UploadImagePresenterImpl(this); - caseHandlePresenter = new CaseHandlePresenterImpl(this); - - submitDialog = new QMUITipDialog.Builder(this) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord("提交中,请稍后") - .create(); - } - - @Override - public void initEvent() { - submitButton.setChangeAlphaWhenPress(true); - } - - @Override - public void obtainCaseDetailData(CaseDetailBean resultBean) { - if (resultBean.isSuccess()) { - this.data = resultBean.getData().get(0); - caseTypeView.setText(data.getEorcName()); - caseLargeTypeView.setText(data.getCasetypeName()); - caseSmallTypeView.setText(data.getCasetypeDetailName()); - caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro()); - caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); - caseStartTimeView.setText(data.getCreateTime()); - caseEndTimeView.setText(data.getNodeLimittime()); - - String verifyImages = data.getFileIdVerify(); - if (!TextUtils.isEmpty(verifyImages)) { - List urls = new ArrayList<>(); - String[] split = verifyImages.split(","); - for (String s : split) { - urls.add(StringHelper.appendCompleteURL(s)); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(urls); - casePicRecyclerView.setVisibility(View.VISIBLE); - casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); - casePicRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(urls.get(position)); - } - }); - imageAdapter.setDeleteView(false); - } - } - } - - private void showBigImage(String path) { - Intent intent = new Intent(this, BigPictureActivity.class); - intent.putExtra("path", path); - startActivity(intent); - } - - @Override - public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { - if (largeClassBean.isSuccess()) { - //设置大类数据 - this.largeClassBeans = largeClassBean.getData(); - if (largeClassBeans.size() == 0) { - caseLargeTypeView.setText("无小类"); - } else { - caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 - } - caseSmallTypeView.setText("请选择"); - } - } - - @Override - public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { - if (smallClassBean.isSuccess()) { - //设置大类数据 - this.smallClassBeans = smallClassBean.getData(); - if (smallClassBeans.size() == 0) { - caseSmallTypeView.setText("无小类"); - } else { - caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 - } - } - } - - @Override - public void obtainNextNodeData(CaseNextNodeBean resultBean) { - if (resultBean.isSuccess()) { - List dataBeans = resultBean.getData(); - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("处理结果"); - for (CaseNextNodeBean.DataBean dataBean : dataBeans) { - 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(); - - CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); - caseHandleResultView.setText(dataBean.getNextOperation()); - changeState = String.valueOf(dataBean.getNextState()); - approvalResult = dataBean.getApprovalResult(); - } - }).build().show(); - } else { - ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); - } - } - - @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) - @Override - public void onClick(View v) { - switch (v.getId()) { - case R.id.caseClassLayout: - 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(); - - caseTypeView.setText(tag); - //获取案卷大类 - caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); - } - }).build().show(); - break; - case R.id.caseLargeClassLayout: - if (largeClassBeans != null) { - if (largeClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷大类"); - for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { - sheetBuilder.addItem(dataBean.getTypeName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseLargeTypeView.setText(tag); - //获取案卷小类 - CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); - String typeId = dataBean.getId(); - caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); - } - }).build().show(); - } - } - break; - case R.id.caseSmallClassLayout: - if (smallClassBeans != null) { - if (smallClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷小类"); - for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { - sheetBuilder.addItem(dataBean.getTypeDetailName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseSmallTypeView.setText(tag); - } - }).build().show(); - } - } - break; - case R.id.caseHandleResultLayout: - caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); - break; - case R.id.addImageView: - new QMUIDialog.MenuDialogBuilder(this) - .addItem("相册中选取", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //选图 - selectPicture(); - } - }) - .addItem("相机拍照", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //拍照 - takePicture(); - } - }) - .create().show(); - break; - case R.id.submitButton: - submitCase();//案卷提交 - break; - default: - break; - } - } - - private void submitCase() { - String handleResult = caseHandleResultView.getText().toString(); - if (handleResult.equals("请选择")) { - ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); - return; - } - if (handleResult.equals("处理完成")) { - //选择处理完成时,处理图片必传。至少一张,最多两张 - if (mediaList.size() < 1 || mediaList.size() > 2) { - ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); - return; - } - } - if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { - caseReason = caseReasonView.getText().toString(); - if (TextUtils.isEmpty(caseReason)) { - ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); - return; - } - } - caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), - changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); - } - - private void selectPicture() { - PictureSelector.create(this) - .openGallery(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(2) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.CHOOSE_REQUEST); - } - - private void takePicture() { - PictureSelector.create(this) - .openCamera(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(1) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.REQUEST_CAMERA); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if (resultCode == RESULT_OK) { - switch (requestCode) { - case PictureConfig.CHOOSE_REQUEST: - List selectList = PictureSelector.obtainMultipleResult(data); - for (LocalMedia media : selectList) { - String mediaCompressPath = media.getCompressPath(); - uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); - } - break; - case PictureConfig.REQUEST_CAMERA: - LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); - uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); - break; - default: - break; - } - } - } - - @Override - public void showProgress() { - submitDialog.show(); - } - - @Override - public void hideProgress() { - submitDialog.hide(); - } - - @Override - public void obtainUploadAudioResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainUploadImageResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - PictureFileUtils.deleteAllCacheDirFile(this); - /** - * 系统路径static拼接图片返回路径 - * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg - */ - //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String url = resultBean.getData(); - mediaList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(realPaths); - caseHandleRecyclerView.setVisibility(View.VISIBLE); - caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); - caseHandleRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(realPaths.get(position)); - } - }); - //删除按钮点击事件 - imageAdapter.setDeleteView(true); - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); - } - } - }); - } - } - - @Override - public void obtainUploadVideoResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainCaseHandleResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); - finish(); - } else { - ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); - } - } - - @Override - protected void onDestroy() { - super.onDestroy(); - if (caseDetailPresenter != null) { - caseDetailPresenter.disposeRetrofitRequest(); - } - if (caseLargeClassPresenter != null) { - caseLargeClassPresenter.disposeRetrofitRequest(); - } - if (caseSmallClassPresenter != null) { - caseSmallClassPresenter.disposeRetrofitRequest(); - } - if (caseNextNodePresenter != null) { - caseNextNodePresenter.disposeRetrofitRequest(); - } - if (uploadImagePresenter != null) { - uploadImagePresenter.disposeRetrofitRequest(); - } - if (caseHandlePresenter != null) { - caseHandlePresenter.disposeRetrofitRequest(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java new file mode 100644 index 0000000..5ea5403 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -0,0 +1,145 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { + + @BindView(R.id.detailTopLayout) + QMUITopBarLayout detailTopLayout; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @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; + + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private CaseDetailPresenterImpl caseDetailPresenter; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handled_detail; + } + + @Override + protected void setupTopBarLayout() { + detailTopLayout.setTitle("已办案卷").setTextColor(ContextCompat.getColor(this, R.color.white)); + detailTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + detailTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + String id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + } + + @Override + public void initEvent() { + + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseHandleStatusView.setText(data.getCaseStateName()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @OnClick(R.id.handleLayout) + @Override + public void onClick(View v) { + if (v.getId() == R.id.handleLayout) { + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f6ac20a..2070c95 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -67,12 +67,14 @@ - + - + + + { private Context context; + private List iconData = new ArrayList<>(); + private List itemData = new ArrayList<>(); public HomeRecycleAdapter(Context context) { this.context = context; } + public void setItemData(@Nullable List icons, @Nullable List items) { + this.iconData = icons; + this.itemData = items; + } + @NonNull @Override public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -30,7 +40,7 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - holder.bindView(context, position); + holder.bindView(position); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override @@ -43,7 +53,7 @@ @Override public int getItemCount() { - return Constant.ITEMS.size(); + return itemData.size(); } private OnGridItemClickListener clickListener; @@ -56,7 +66,7 @@ this.clickListener = onGridItemClickListener; } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { private ImageView imageView; private TextView textView; @@ -67,9 +77,9 @@ textView = itemView.findViewById(R.id.textView); } - void bindView(Context context, int position) { - imageView.setBackgroundResource(Constant.ICONS.get(position)); - textView.setText(Constant.ITEMS.get(position)); + void bindView(int position) { + imageView.setBackgroundResource(iconData.get(position)); + textView.setText(itemData.get(position)); } } } diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index b9c4615..d9b10e0 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; import java.util.ArrayList; @@ -62,7 +63,10 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - Glide.with(context).load(mediaList.get(position)).into(holder.imageView); + Glide.with(context) + .load(mediaList.get(position)) + .apply(new RequestOptions().error(R.drawable.ic_load_error)) + .into(holder.imageView); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/casic/dcms/base/BaseActivity.java b/app/src/main/java/com/casic/dcms/base/BaseActivity.java index caf0356..2ca87fe 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseActivity.java +++ b/app/src/main/java/com/casic/dcms/base/BaseActivity.java @@ -17,8 +17,8 @@ setContentView(initLayoutView()); ButterKnife.bind(this); QMUIStatusBarHelper.translucent(this);//沉浸式状态栏 - setupTopBarLayout(); initData(); + setupTopBarLayout(); initEvent(); } diff --git a/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java new file mode 100644 index 0000000..8de58a4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java @@ -0,0 +1,78 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CommonSentenceBean { + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 请及时处理 + * id : 156 + * value : 请及时处理 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java new file mode 100644 index 0000000..5258d89 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CommonSentenceBean; +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 CaseCommonSentenceModelImpl implements ICaseCommonSentenceModel { + + private OnGetCommonSentenceListener sentenceListener; + + public CaseCommonSentenceModelImpl(OnGetCommonSentenceListener commonSentenceListener) { + this.sentenceListener = commonSentenceListener; + } + + public interface OnGetCommonSentenceListener { + void onSuccess(CommonSentenceBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCommonSentenceResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (sentenceListener != null) { + sentenceListener.onFailure(e); + } + } + + @Override + public void onNext(CommonSentenceBean resultBean) { + if (resultBean != null) { + sentenceListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java new file mode 100644 index 0000000..a8cb3fc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java @@ -0,0 +1,53 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseUpdateSuperviseModelImpl implements ICaseUpdateSuperviseModel { + + private OnUpdateSuperviseListener listener; + + public CaseUpdateSuperviseModelImpl(OnUpdateSuperviseListener updateSuperviseListener) { + this.listener = updateSuperviseListener; + } + + /** + * 数据回调接口 + */ + public interface OnUpdateSuperviseListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String superviseRemarks) { + Observable observable = RetrofitServiceManager.getUpdateSuperviseResult(id, superviseRemarks); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java new file mode 100644 index 0000000..263ef6c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseCommonSentenceModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java new file mode 100644 index 0000000..518d602 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseUpdateSuperviseModel { + Subscription sendRetrofitRequest(String id, String superviseRemarks); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java new file mode 100644 index 0000000..6b65f13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseCommonSentenceModelImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; + +public class CaseCommonSentencePresenterImpl extends BasePresenter implements ICaseCommonSentencePresenter, + CaseCommonSentenceModelImpl.OnGetCommonSentenceListener { + + private ICaseCommonSentenceView view; + private CaseCommonSentenceModelImpl actionModel; + + public CaseCommonSentencePresenterImpl(ICaseCommonSentenceView commonSentenceView) { + this.view = commonSentenceView; + actionModel = new CaseCommonSentenceModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CommonSentenceBean resultBean) { + view.obtainCommonSentenceData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java new file mode 100644 index 0000000..66e1f44 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseUpdateSuperviseModelImpl; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; + +public class CaseUpdateSupervisePresenterImpl extends BasePresenter implements ICaseUpdateSupervisePresenter, + CaseUpdateSuperviseModelImpl.OnUpdateSuperviseListener { + + private ICaseUpdateSuperviseView view; + private CaseUpdateSuperviseModelImpl actionModel; + + public CaseUpdateSupervisePresenterImpl(ICaseUpdateSuperviseView updateSuperviseView) { + this.view = updateSuperviseView; + actionModel = new CaseUpdateSuperviseModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String superviseRemarks) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, superviseRemarks)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainUpdateSuperviseData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java new file mode 100644 index 0000000..1f8bd09 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseCommonSentencePresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java new file mode 100644 index 0000000..f61f9b2 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseUpdateSupervisePresenter { + void onReadyRetrofitRequest(String id, String superviseRemarks); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java new file mode 100644 index 0000000..9c7b08b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CommonSentenceBean; + +public interface ICaseCommonSentenceView { + void obtainCommonSentenceData(CommonSentenceBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java new file mode 100644 index 0000000..10bcf5a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICaseUpdateSuperviseView { + void showProgress(); + + void hideProgress(); + + void obtainUpdateSuperviseData(ActionResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java index ad70b7a..9143db8 100644 --- a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.ui; +import android.view.View; + +import androidx.core.content.ContextCompat; + import com.bumptech.glide.Glide; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.luck.picture.lib.photoview.PhotoView; -import com.qmuiteam.qmui.util.QMUIStatusBarHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; import butterknife.BindView; @@ -15,6 +19,8 @@ **/ public class BigPictureActivity extends BaseActivity { + @BindView(R.id.imageTopLayout) + QMUITopBarLayout imageTopLayout; @BindView(R.id.photoView) PhotoView photoView; @@ -25,37 +31,24 @@ @Override protected void setupTopBarLayout() { - QMUIStatusBarHelper.setStatusBarLightMode(this); + imageTopLayout.setTitle("查看大图").setTextColor(ContextCompat.getColor(this, R.color.white)); + imageTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + imageTopLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); } @Override public void initData() { -// String mediaJson = getIntent().getStringExtra("mediaJson"); -// -// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() { -// }.getType()); -// -// list = new ArrayList<>(); -// assert mediaList != null; -// for (LocalMedia media : mediaList) { -// list.add(media.getRealPath()); -// } String path = getIntent().getStringExtra("path"); Glide.with(this).load(path).into(photoView); } @Override public void initEvent() { -// //轮播图 -// bigImageBanner.setImageLoader(new ImageLoader() { -// -// @Override -// public void displayImage(Context context, Object path, ImageView imageView) { -// Glide.with(context).load(path).into(imageView); -// } -// }); -// bigImageBanner.isAutoPlay(false); -// bigImageBanner.setImages(list); -// bigImageBanner.start(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index 01a3807..7548cfc 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -329,7 +329,7 @@ caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java new file mode 100644 index 0000000..d4dba38 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -0,0 +1,505 @@ +package com.casic.dcms.ui; + +import android.content.DialogInterface; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseNextNodeBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseHandleView; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseNextNodeView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.IUploadFileView; +import com.casic.dcms.utils.FileUtils; +import com.casic.dcms.utils.GlideLoadEngine; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.luck.picture.lib.PictureSelector; +import com.luck.picture.lib.config.PictureConfig; +import com.luck.picture.lib.config.PictureMimeType; +import com.luck.picture.lib.entity.LocalMedia; +import com.luck.picture.lib.tools.PictureFileUtils; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, + ICaseHandleView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @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) + EditText casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.caseHandleView) + TextView caseHandleView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseStartTimeView) + TextView caseStartTimeView; + @BindView(R.id.caseEndTimeView) + TextView caseEndTimeView; + @BindView(R.id.caseHandleResultView) + TextView caseHandleResultView; + @BindView(R.id.caseHandleRecyclerView) + RecyclerView caseHandleRecyclerView; + @BindView(R.id.addImageView) + ImageView addImageView; + @BindView(R.id.caseReasonView) + EditText caseReasonView; + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private String changeState; + private String caseReason; + private String approvalResult; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private List largeClassBeans = new ArrayList<>(); + private List smallClassBeans = new ArrayList<>(); + private List realPaths = new ArrayList<>();//真实图片路径 + private List mediaList = new ArrayList<>();//上传到服务器的数据集 + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private CaseNextNodePresenterImpl caseNextNodePresenter; + private UploadImagePresenterImpl uploadImagePresenter; + private CaseHandlePresenterImpl caseHandlePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handle_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseNextNodePresenter = new CaseNextNodePresenterImpl(this); + uploadImagePresenter = new UploadImagePresenterImpl(this); + caseHandlePresenter = new CaseHandlePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @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()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + caseStartTimeView.setText(data.getCreateTime()); + caseEndTimeView.setText(data.getNodeLimittime()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeTypeView.setText("无小类"); + } else { + caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 + } + caseSmallTypeView.setText("请选择"); + } + } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallTypeView.setText("无小类"); + } else { + caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 + } + } + } + + @Override + public void obtainNextNodeData(CaseNextNodeBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处理结果"); + for (CaseNextNodeBean.DataBean dataBean : dataBeans) { + 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(); + + CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); + caseHandleResultView.setText(dataBean.getNextOperation()); + changeState = String.valueOf(dataBean.getNextState()); + approvalResult = dataBean.getApprovalResult(); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseClassLayout: + 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(); + + caseTypeView.setText(tag); + //获取案卷大类 + caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseLargeTypeView.setText(tag); + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseSmallTypeView.setText(tag); + } + }).build().show(); + } + } + break; + case R.id.caseHandleResultLayout: + caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); + break; + case R.id.addImageView: + new QMUIDialog.MenuDialogBuilder(this) + .addItem("相册中选取", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //选图 + selectPicture(); + } + }) + .addItem("相机拍照", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //拍照 + takePicture(); + } + }) + .create().show(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String handleResult = caseHandleResultView.getText().toString(); + if (handleResult.equals("请选择")) { + ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); + return; + } + if (handleResult.equals("处理完成")) { + //选择处理完成时,处理图片必传。至少一张,最多两张 + if (mediaList.size() < 1 || mediaList.size() > 2) { + ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); + return; + } + } + if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { + caseReason = caseReasonView.getText().toString(); + if (TextUtils.isEmpty(caseReason)) { + ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); + return; + } + } + caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), + changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); + } + + private void selectPicture() { + PictureSelector.create(this) + .openGallery(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(2) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.CHOOSE_REQUEST); + } + + private void takePicture() { + PictureSelector.create(this) + .openCamera(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(1) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.REQUEST_CAMERA); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == RESULT_OK) { + switch (requestCode) { + case PictureConfig.CHOOSE_REQUEST: + List selectList = PictureSelector.obtainMultipleResult(data); + for (LocalMedia media : selectList) { + String mediaCompressPath = media.getCompressPath(); + uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); + } + break; + case PictureConfig.REQUEST_CAMERA: + LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); + uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); + break; + default: + break; + } + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUploadAudioResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainUploadImageResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + PictureFileUtils.deleteAllCacheDirFile(this); + /** + * 系统路径static拼接图片返回路径 + * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg + */ + //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg + String url = resultBean.getData(); + mediaList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(realPaths); + caseHandleRecyclerView.setVisibility(View.VISIBLE); + caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); + caseHandleRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(realPaths.get(position)); + } + }); + //删除按钮点击事件 + imageAdapter.setDeleteView(true); + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } + } + + @Override + public void obtainUploadVideoResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainCaseHandleResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseNextNodePresenter != null) { + caseNextNodePresenter.disposeRetrofitRequest(); + } + if (uploadImagePresenter != null) { + uploadImagePresenter.disposeRetrofitRequest(); + } + if (caseHandlePresenter != null) { + caseHandlePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java deleted file mode 100644 index bd187c5..0000000 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java +++ /dev/null @@ -1,500 +0,0 @@ -package com.casic.dcms.ui; - -import android.content.DialogInterface; -import android.content.Intent; -import android.text.TextUtils; -import android.view.View; -import android.widget.EditText; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.Nullable; -import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.adapter.ImageRecycleViewAdapter; -import com.casic.dcms.base.BaseCaseActivity; -import com.casic.dcms.bean.ActionResultBean; -import com.casic.dcms.bean.CaseDetailBean; -import com.casic.dcms.bean.CaseLargeClassBean; -import com.casic.dcms.bean.CaseNextNodeBean; -import com.casic.dcms.bean.CaseSmallClassBean; -import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; -import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; -import com.casic.dcms.mvp.view.ICaseDetailView; -import com.casic.dcms.mvp.view.ICaseHandleView; -import com.casic.dcms.mvp.view.ICaseLargeClassView; -import com.casic.dcms.mvp.view.ICaseNextNodeView; -import com.casic.dcms.mvp.view.ICaseSmallClassView; -import com.casic.dcms.mvp.view.IUploadFileView; -import com.casic.dcms.utils.FileUtils; -import com.casic.dcms.utils.GlideLoadEngine; -import com.casic.dcms.utils.ItemDecorationSpace; -import com.casic.dcms.utils.StringHelper; -import com.casic.dcms.utils.ToastHelper; -import com.luck.picture.lib.PictureSelector; -import com.luck.picture.lib.config.PictureConfig; -import com.luck.picture.lib.config.PictureMimeType; -import com.luck.picture.lib.entity.LocalMedia; -import com.luck.picture.lib.tools.PictureFileUtils; -import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; -import com.qmuiteam.qmui.widget.dialog.QMUIDialog; -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; - -import butterknife.BindView; -import butterknife.OnClick; - -public class CaseHandleOvertimeDetailActivity extends BaseCaseActivity implements View.OnClickListener, - ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, - ICaseHandleView { - - @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) - EditText casePlaceView; - @BindView(R.id.caseSituationView) - TextView caseSituationView; - @BindView(R.id.caseHandleView) - TextView caseHandleView; - @BindView(R.id.casePicRecyclerView) - RecyclerView casePicRecyclerView; - @BindView(R.id.caseStartTimeView) - TextView caseStartTimeView; - @BindView(R.id.caseEndTimeView) - TextView caseEndTimeView; - @BindView(R.id.caseHandleResultView) - TextView caseHandleResultView; - @BindView(R.id.caseHandleRecyclerView) - RecyclerView caseHandleRecyclerView; - @BindView(R.id.addImageView) - ImageView addImageView; - @BindView(R.id.caseReasonView) - EditText caseReasonView; - @BindView(R.id.submitButton) - QMUIRoundButton submitButton; - - private String id; - private String changeState; - private String caseReason; - private String approvalResult; - private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); - private List largeClassBeans = new ArrayList<>(); - private List smallClassBeans = new ArrayList<>(); - private List realPaths = new ArrayList<>();//真实图片路径 - private List mediaList = new ArrayList<>();//上传到服务器的数据集 - - private CaseDetailPresenterImpl caseDetailPresenter; - private CaseLargeClassPresenterImpl caseLargeClassPresenter; - private CaseSmallClassPresenterImpl caseSmallClassPresenter; - private CaseNextNodePresenterImpl caseNextNodePresenter; - private UploadImagePresenterImpl uploadImagePresenter; - private CaseHandlePresenterImpl caseHandlePresenter; - - private QMUITipDialog submitDialog; - - @Override - public int initLayoutView() { - return R.layout.activity_case_handle_overtime; - } - - @Override - protected String setTitleName() { - return "超时案卷"; - } - - @Override - public void initData() { - id = getIntent().getStringExtra("id"); - caseDetailPresenter = new CaseDetailPresenterImpl(this); - caseDetailPresenter.onReadyRetrofitRequest(id); - - caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); - caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); - caseNextNodePresenter = new CaseNextNodePresenterImpl(this); - uploadImagePresenter = new UploadImagePresenterImpl(this); - caseHandlePresenter = new CaseHandlePresenterImpl(this); - - submitDialog = new QMUITipDialog.Builder(this) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord("提交中,请稍后") - .create(); - } - - @Override - public void initEvent() { - submitButton.setChangeAlphaWhenPress(true); - } - - @Override - public void obtainCaseDetailData(CaseDetailBean resultBean) { - if (resultBean.isSuccess()) { - this.data = resultBean.getData().get(0); - caseTypeView.setText(data.getEorcName()); - caseLargeTypeView.setText(data.getCasetypeName()); - caseSmallTypeView.setText(data.getCasetypeDetailName()); - caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro()); - caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); - caseStartTimeView.setText(data.getCreateTime()); - caseEndTimeView.setText(data.getNodeLimittime()); - - String verifyImages = data.getFileIdVerify(); - if (!TextUtils.isEmpty(verifyImages)) { - List urls = new ArrayList<>(); - String[] split = verifyImages.split(","); - for (String s : split) { - urls.add(StringHelper.appendCompleteURL(s)); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(urls); - casePicRecyclerView.setVisibility(View.VISIBLE); - casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); - casePicRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(urls.get(position)); - } - }); - imageAdapter.setDeleteView(false); - } - } - } - - private void showBigImage(String path) { - Intent intent = new Intent(this, BigPictureActivity.class); - intent.putExtra("path", path); - startActivity(intent); - } - - @Override - public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { - if (largeClassBean.isSuccess()) { - //设置大类数据 - this.largeClassBeans = largeClassBean.getData(); - if (largeClassBeans.size() == 0) { - caseLargeTypeView.setText("无小类"); - } else { - caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 - } - caseSmallTypeView.setText("请选择"); - } - } - - @Override - public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { - if (smallClassBean.isSuccess()) { - //设置大类数据 - this.smallClassBeans = smallClassBean.getData(); - if (smallClassBeans.size() == 0) { - caseSmallTypeView.setText("无小类"); - } else { - caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 - } - } - } - - @Override - public void obtainNextNodeData(CaseNextNodeBean resultBean) { - if (resultBean.isSuccess()) { - List dataBeans = resultBean.getData(); - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("处理结果"); - for (CaseNextNodeBean.DataBean dataBean : dataBeans) { - 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(); - - CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); - caseHandleResultView.setText(dataBean.getNextOperation()); - changeState = String.valueOf(dataBean.getNextState()); - approvalResult = dataBean.getApprovalResult(); - } - }).build().show(); - } else { - ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); - } - } - - @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) - @Override - public void onClick(View v) { - switch (v.getId()) { - case R.id.caseClassLayout: - 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(); - - caseTypeView.setText(tag); - //获取案卷大类 - caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); - } - }).build().show(); - break; - case R.id.caseLargeClassLayout: - if (largeClassBeans != null) { - if (largeClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷大类"); - for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { - sheetBuilder.addItem(dataBean.getTypeName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseLargeTypeView.setText(tag); - //获取案卷小类 - CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); - String typeId = dataBean.getId(); - caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); - } - }).build().show(); - } - } - break; - case R.id.caseSmallClassLayout: - if (smallClassBeans != null) { - if (smallClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷小类"); - for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { - sheetBuilder.addItem(dataBean.getTypeDetailName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseSmallTypeView.setText(tag); - } - }).build().show(); - } - } - break; - case R.id.caseHandleResultLayout: - caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); - break; - case R.id.addImageView: - new QMUIDialog.MenuDialogBuilder(this) - .addItem("相册中选取", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //选图 - selectPicture(); - } - }) - .addItem("相机拍照", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //拍照 - takePicture(); - } - }) - .create().show(); - break; - case R.id.submitButton: - submitCase();//案卷提交 - break; - default: - break; - } - } - - private void submitCase() { - String handleResult = caseHandleResultView.getText().toString(); - if (handleResult.equals("请选择")) { - ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); - return; - } - if (handleResult.equals("处理完成")) { - //选择处理完成时,处理图片必传。至少一张,最多两张 - if (mediaList.size() < 1 || mediaList.size() > 2) { - ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); - return; - } - } - if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { - caseReason = caseReasonView.getText().toString(); - if (TextUtils.isEmpty(caseReason)) { - ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); - return; - } - } - caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), - changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); - } - - private void selectPicture() { - PictureSelector.create(this) - .openGallery(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(2) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.CHOOSE_REQUEST); - } - - private void takePicture() { - PictureSelector.create(this) - .openCamera(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(1) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.REQUEST_CAMERA); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if (resultCode == RESULT_OK) { - switch (requestCode) { - case PictureConfig.CHOOSE_REQUEST: - List selectList = PictureSelector.obtainMultipleResult(data); - for (LocalMedia media : selectList) { - String mediaCompressPath = media.getCompressPath(); - uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); - } - break; - case PictureConfig.REQUEST_CAMERA: - LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); - uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); - break; - default: - break; - } - } - } - - @Override - public void showProgress() { - submitDialog.show(); - } - - @Override - public void hideProgress() { - submitDialog.hide(); - } - - @Override - public void obtainUploadAudioResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainUploadImageResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - PictureFileUtils.deleteAllCacheDirFile(this); - /** - * 系统路径static拼接图片返回路径 - * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg - */ - //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String url = resultBean.getData(); - mediaList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(realPaths); - caseHandleRecyclerView.setVisibility(View.VISIBLE); - caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); - caseHandleRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(realPaths.get(position)); - } - }); - //删除按钮点击事件 - imageAdapter.setDeleteView(true); - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); - } - } - }); - } - } - - @Override - public void obtainUploadVideoResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainCaseHandleResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); - finish(); - } else { - ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); - } - } - - @Override - protected void onDestroy() { - super.onDestroy(); - if (caseDetailPresenter != null) { - caseDetailPresenter.disposeRetrofitRequest(); - } - if (caseLargeClassPresenter != null) { - caseLargeClassPresenter.disposeRetrofitRequest(); - } - if (caseSmallClassPresenter != null) { - caseSmallClassPresenter.disposeRetrofitRequest(); - } - if (caseNextNodePresenter != null) { - caseNextNodePresenter.disposeRetrofitRequest(); - } - if (uploadImagePresenter != null) { - uploadImagePresenter.disposeRetrofitRequest(); - } - if (caseHandlePresenter != null) { - caseHandlePresenter.disposeRetrofitRequest(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java new file mode 100644 index 0000000..5ea5403 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -0,0 +1,145 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { + + @BindView(R.id.detailTopLayout) + QMUITopBarLayout detailTopLayout; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @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; + + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private CaseDetailPresenterImpl caseDetailPresenter; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handled_detail; + } + + @Override + protected void setupTopBarLayout() { + detailTopLayout.setTitle("已办案卷").setTextColor(ContextCompat.getColor(this, R.color.white)); + detailTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + detailTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + String id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + } + + @Override + public void initEvent() { + + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseHandleStatusView.setText(data.getCaseStateName()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @OnClick(R.id.handleLayout) + @Override + public void onClick(View v) { + if (v.getId() == R.id.handleLayout) { + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java new file mode 100644 index 0000000..3b2d3d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -0,0 +1,228 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.TextView; + +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.presenter.CaseCommonSentencePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseUpdateSupervisePresenterImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseOverTimeView) + TextView caseOverTimeView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @BindView(R.id.casePlaceView) + EditText casePlaceView; + @BindView(R.id.caseDescriptionView) + TextView caseDescriptionView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseHandleResultView) + EditText caseHandleResultView; + @BindView(R.id.caseCommonSentenceView) + TextView caseCommonSentenceView; + + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseCommonSentencePresenterImpl commonSentencePresenter; + private CaseUpdateSupervisePresenterImpl updateSupervisePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_todo_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + commonSentencePresenter = new CaseCommonSentencePresenterImpl(this); + updateSupervisePresenter = new CaseUpdateSupervisePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @Override + public void initEvent() { + + } + + @OnClick({R.id.caseHandleLayout, R.id.caseCommonSentenceLayout, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseHandleLayout: + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + break; + case R.id.caseCommonSentenceLayout: + commonSentencePresenter.onReadyRetrofitRequest(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String remarks = caseHandleResultView.getText().toString(); + if (TextUtils.isEmpty(remarks)) { + ToastHelper.showToast("督办意见不能为空", ToastHelper.WARING); + return; + } + updateSupervisePresenter.onReadyRetrofitRequest(id, remarks); + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseOverTimeView.setText(data.getNodeLimittime()); + caseHandleStatusView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + casePlaceView.setText(data.getFieldintro()); + caseDescriptionView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainCommonSentenceData(CommonSentenceBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("常用语句"); + for (CommonSentenceBean.DataBean dataBean : dataBeans) { + 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(); + + CommonSentenceBean.DataBean dataBean = dataBeans.get(position); + caseCommonSentenceView.setText(dataBean.getName()); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUpdateSuperviseData(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷督办提交成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷督办提交失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (commonSentencePresenter != null) { + commonSentencePresenter.disposeRetrofitRequest(); + } + if (updateSupervisePresenter != null) { + updateSupervisePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f6ac20a..2070c95 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -67,12 +67,14 @@ - + - + + + { private Context context; + private List iconData = new ArrayList<>(); + private List itemData = new ArrayList<>(); public HomeRecycleAdapter(Context context) { this.context = context; } + public void setItemData(@Nullable List icons, @Nullable List items) { + this.iconData = icons; + this.itemData = items; + } + @NonNull @Override public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -30,7 +40,7 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - holder.bindView(context, position); + holder.bindView(position); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override @@ -43,7 +53,7 @@ @Override public int getItemCount() { - return Constant.ITEMS.size(); + return itemData.size(); } private OnGridItemClickListener clickListener; @@ -56,7 +66,7 @@ this.clickListener = onGridItemClickListener; } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { private ImageView imageView; private TextView textView; @@ -67,9 +77,9 @@ textView = itemView.findViewById(R.id.textView); } - void bindView(Context context, int position) { - imageView.setBackgroundResource(Constant.ICONS.get(position)); - textView.setText(Constant.ITEMS.get(position)); + void bindView(int position) { + imageView.setBackgroundResource(iconData.get(position)); + textView.setText(itemData.get(position)); } } } diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index b9c4615..d9b10e0 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; import java.util.ArrayList; @@ -62,7 +63,10 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - Glide.with(context).load(mediaList.get(position)).into(holder.imageView); + Glide.with(context) + .load(mediaList.get(position)) + .apply(new RequestOptions().error(R.drawable.ic_load_error)) + .into(holder.imageView); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/casic/dcms/base/BaseActivity.java b/app/src/main/java/com/casic/dcms/base/BaseActivity.java index caf0356..2ca87fe 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseActivity.java +++ b/app/src/main/java/com/casic/dcms/base/BaseActivity.java @@ -17,8 +17,8 @@ setContentView(initLayoutView()); ButterKnife.bind(this); QMUIStatusBarHelper.translucent(this);//沉浸式状态栏 - setupTopBarLayout(); initData(); + setupTopBarLayout(); initEvent(); } diff --git a/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java new file mode 100644 index 0000000..8de58a4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java @@ -0,0 +1,78 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CommonSentenceBean { + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 请及时处理 + * id : 156 + * value : 请及时处理 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java new file mode 100644 index 0000000..5258d89 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CommonSentenceBean; +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 CaseCommonSentenceModelImpl implements ICaseCommonSentenceModel { + + private OnGetCommonSentenceListener sentenceListener; + + public CaseCommonSentenceModelImpl(OnGetCommonSentenceListener commonSentenceListener) { + this.sentenceListener = commonSentenceListener; + } + + public interface OnGetCommonSentenceListener { + void onSuccess(CommonSentenceBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCommonSentenceResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (sentenceListener != null) { + sentenceListener.onFailure(e); + } + } + + @Override + public void onNext(CommonSentenceBean resultBean) { + if (resultBean != null) { + sentenceListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java new file mode 100644 index 0000000..a8cb3fc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java @@ -0,0 +1,53 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseUpdateSuperviseModelImpl implements ICaseUpdateSuperviseModel { + + private OnUpdateSuperviseListener listener; + + public CaseUpdateSuperviseModelImpl(OnUpdateSuperviseListener updateSuperviseListener) { + this.listener = updateSuperviseListener; + } + + /** + * 数据回调接口 + */ + public interface OnUpdateSuperviseListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String superviseRemarks) { + Observable observable = RetrofitServiceManager.getUpdateSuperviseResult(id, superviseRemarks); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java new file mode 100644 index 0000000..263ef6c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseCommonSentenceModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java new file mode 100644 index 0000000..518d602 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseUpdateSuperviseModel { + Subscription sendRetrofitRequest(String id, String superviseRemarks); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java new file mode 100644 index 0000000..6b65f13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseCommonSentenceModelImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; + +public class CaseCommonSentencePresenterImpl extends BasePresenter implements ICaseCommonSentencePresenter, + CaseCommonSentenceModelImpl.OnGetCommonSentenceListener { + + private ICaseCommonSentenceView view; + private CaseCommonSentenceModelImpl actionModel; + + public CaseCommonSentencePresenterImpl(ICaseCommonSentenceView commonSentenceView) { + this.view = commonSentenceView; + actionModel = new CaseCommonSentenceModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CommonSentenceBean resultBean) { + view.obtainCommonSentenceData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java new file mode 100644 index 0000000..66e1f44 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseUpdateSuperviseModelImpl; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; + +public class CaseUpdateSupervisePresenterImpl extends BasePresenter implements ICaseUpdateSupervisePresenter, + CaseUpdateSuperviseModelImpl.OnUpdateSuperviseListener { + + private ICaseUpdateSuperviseView view; + private CaseUpdateSuperviseModelImpl actionModel; + + public CaseUpdateSupervisePresenterImpl(ICaseUpdateSuperviseView updateSuperviseView) { + this.view = updateSuperviseView; + actionModel = new CaseUpdateSuperviseModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String superviseRemarks) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, superviseRemarks)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainUpdateSuperviseData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java new file mode 100644 index 0000000..1f8bd09 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseCommonSentencePresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java new file mode 100644 index 0000000..f61f9b2 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseUpdateSupervisePresenter { + void onReadyRetrofitRequest(String id, String superviseRemarks); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java new file mode 100644 index 0000000..9c7b08b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CommonSentenceBean; + +public interface ICaseCommonSentenceView { + void obtainCommonSentenceData(CommonSentenceBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java new file mode 100644 index 0000000..10bcf5a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICaseUpdateSuperviseView { + void showProgress(); + + void hideProgress(); + + void obtainUpdateSuperviseData(ActionResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java index ad70b7a..9143db8 100644 --- a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.ui; +import android.view.View; + +import androidx.core.content.ContextCompat; + import com.bumptech.glide.Glide; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.luck.picture.lib.photoview.PhotoView; -import com.qmuiteam.qmui.util.QMUIStatusBarHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; import butterknife.BindView; @@ -15,6 +19,8 @@ **/ public class BigPictureActivity extends BaseActivity { + @BindView(R.id.imageTopLayout) + QMUITopBarLayout imageTopLayout; @BindView(R.id.photoView) PhotoView photoView; @@ -25,37 +31,24 @@ @Override protected void setupTopBarLayout() { - QMUIStatusBarHelper.setStatusBarLightMode(this); + imageTopLayout.setTitle("查看大图").setTextColor(ContextCompat.getColor(this, R.color.white)); + imageTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + imageTopLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); } @Override public void initData() { -// String mediaJson = getIntent().getStringExtra("mediaJson"); -// -// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() { -// }.getType()); -// -// list = new ArrayList<>(); -// assert mediaList != null; -// for (LocalMedia media : mediaList) { -// list.add(media.getRealPath()); -// } String path = getIntent().getStringExtra("path"); Glide.with(this).load(path).into(photoView); } @Override public void initEvent() { -// //轮播图 -// bigImageBanner.setImageLoader(new ImageLoader() { -// -// @Override -// public void displayImage(Context context, Object path, ImageView imageView) { -// Glide.with(context).load(path).into(imageView); -// } -// }); -// bigImageBanner.isAutoPlay(false); -// bigImageBanner.setImages(list); -// bigImageBanner.start(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index 01a3807..7548cfc 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -329,7 +329,7 @@ caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java new file mode 100644 index 0000000..d4dba38 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -0,0 +1,505 @@ +package com.casic.dcms.ui; + +import android.content.DialogInterface; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseNextNodeBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseHandleView; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseNextNodeView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.IUploadFileView; +import com.casic.dcms.utils.FileUtils; +import com.casic.dcms.utils.GlideLoadEngine; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.luck.picture.lib.PictureSelector; +import com.luck.picture.lib.config.PictureConfig; +import com.luck.picture.lib.config.PictureMimeType; +import com.luck.picture.lib.entity.LocalMedia; +import com.luck.picture.lib.tools.PictureFileUtils; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, + ICaseHandleView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @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) + EditText casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.caseHandleView) + TextView caseHandleView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseStartTimeView) + TextView caseStartTimeView; + @BindView(R.id.caseEndTimeView) + TextView caseEndTimeView; + @BindView(R.id.caseHandleResultView) + TextView caseHandleResultView; + @BindView(R.id.caseHandleRecyclerView) + RecyclerView caseHandleRecyclerView; + @BindView(R.id.addImageView) + ImageView addImageView; + @BindView(R.id.caseReasonView) + EditText caseReasonView; + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private String changeState; + private String caseReason; + private String approvalResult; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private List largeClassBeans = new ArrayList<>(); + private List smallClassBeans = new ArrayList<>(); + private List realPaths = new ArrayList<>();//真实图片路径 + private List mediaList = new ArrayList<>();//上传到服务器的数据集 + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private CaseNextNodePresenterImpl caseNextNodePresenter; + private UploadImagePresenterImpl uploadImagePresenter; + private CaseHandlePresenterImpl caseHandlePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handle_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseNextNodePresenter = new CaseNextNodePresenterImpl(this); + uploadImagePresenter = new UploadImagePresenterImpl(this); + caseHandlePresenter = new CaseHandlePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @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()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + caseStartTimeView.setText(data.getCreateTime()); + caseEndTimeView.setText(data.getNodeLimittime()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeTypeView.setText("无小类"); + } else { + caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 + } + caseSmallTypeView.setText("请选择"); + } + } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallTypeView.setText("无小类"); + } else { + caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 + } + } + } + + @Override + public void obtainNextNodeData(CaseNextNodeBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处理结果"); + for (CaseNextNodeBean.DataBean dataBean : dataBeans) { + 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(); + + CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); + caseHandleResultView.setText(dataBean.getNextOperation()); + changeState = String.valueOf(dataBean.getNextState()); + approvalResult = dataBean.getApprovalResult(); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseClassLayout: + 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(); + + caseTypeView.setText(tag); + //获取案卷大类 + caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseLargeTypeView.setText(tag); + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseSmallTypeView.setText(tag); + } + }).build().show(); + } + } + break; + case R.id.caseHandleResultLayout: + caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); + break; + case R.id.addImageView: + new QMUIDialog.MenuDialogBuilder(this) + .addItem("相册中选取", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //选图 + selectPicture(); + } + }) + .addItem("相机拍照", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //拍照 + takePicture(); + } + }) + .create().show(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String handleResult = caseHandleResultView.getText().toString(); + if (handleResult.equals("请选择")) { + ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); + return; + } + if (handleResult.equals("处理完成")) { + //选择处理完成时,处理图片必传。至少一张,最多两张 + if (mediaList.size() < 1 || mediaList.size() > 2) { + ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); + return; + } + } + if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { + caseReason = caseReasonView.getText().toString(); + if (TextUtils.isEmpty(caseReason)) { + ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); + return; + } + } + caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), + changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); + } + + private void selectPicture() { + PictureSelector.create(this) + .openGallery(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(2) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.CHOOSE_REQUEST); + } + + private void takePicture() { + PictureSelector.create(this) + .openCamera(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(1) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.REQUEST_CAMERA); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == RESULT_OK) { + switch (requestCode) { + case PictureConfig.CHOOSE_REQUEST: + List selectList = PictureSelector.obtainMultipleResult(data); + for (LocalMedia media : selectList) { + String mediaCompressPath = media.getCompressPath(); + uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); + } + break; + case PictureConfig.REQUEST_CAMERA: + LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); + uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); + break; + default: + break; + } + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUploadAudioResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainUploadImageResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + PictureFileUtils.deleteAllCacheDirFile(this); + /** + * 系统路径static拼接图片返回路径 + * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg + */ + //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg + String url = resultBean.getData(); + mediaList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(realPaths); + caseHandleRecyclerView.setVisibility(View.VISIBLE); + caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); + caseHandleRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(realPaths.get(position)); + } + }); + //删除按钮点击事件 + imageAdapter.setDeleteView(true); + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } + } + + @Override + public void obtainUploadVideoResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainCaseHandleResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseNextNodePresenter != null) { + caseNextNodePresenter.disposeRetrofitRequest(); + } + if (uploadImagePresenter != null) { + uploadImagePresenter.disposeRetrofitRequest(); + } + if (caseHandlePresenter != null) { + caseHandlePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java deleted file mode 100644 index bd187c5..0000000 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java +++ /dev/null @@ -1,500 +0,0 @@ -package com.casic.dcms.ui; - -import android.content.DialogInterface; -import android.content.Intent; -import android.text.TextUtils; -import android.view.View; -import android.widget.EditText; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.Nullable; -import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.adapter.ImageRecycleViewAdapter; -import com.casic.dcms.base.BaseCaseActivity; -import com.casic.dcms.bean.ActionResultBean; -import com.casic.dcms.bean.CaseDetailBean; -import com.casic.dcms.bean.CaseLargeClassBean; -import com.casic.dcms.bean.CaseNextNodeBean; -import com.casic.dcms.bean.CaseSmallClassBean; -import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; -import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; -import com.casic.dcms.mvp.view.ICaseDetailView; -import com.casic.dcms.mvp.view.ICaseHandleView; -import com.casic.dcms.mvp.view.ICaseLargeClassView; -import com.casic.dcms.mvp.view.ICaseNextNodeView; -import com.casic.dcms.mvp.view.ICaseSmallClassView; -import com.casic.dcms.mvp.view.IUploadFileView; -import com.casic.dcms.utils.FileUtils; -import com.casic.dcms.utils.GlideLoadEngine; -import com.casic.dcms.utils.ItemDecorationSpace; -import com.casic.dcms.utils.StringHelper; -import com.casic.dcms.utils.ToastHelper; -import com.luck.picture.lib.PictureSelector; -import com.luck.picture.lib.config.PictureConfig; -import com.luck.picture.lib.config.PictureMimeType; -import com.luck.picture.lib.entity.LocalMedia; -import com.luck.picture.lib.tools.PictureFileUtils; -import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; -import com.qmuiteam.qmui.widget.dialog.QMUIDialog; -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; - -import butterknife.BindView; -import butterknife.OnClick; - -public class CaseHandleOvertimeDetailActivity extends BaseCaseActivity implements View.OnClickListener, - ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, - ICaseHandleView { - - @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) - EditText casePlaceView; - @BindView(R.id.caseSituationView) - TextView caseSituationView; - @BindView(R.id.caseHandleView) - TextView caseHandleView; - @BindView(R.id.casePicRecyclerView) - RecyclerView casePicRecyclerView; - @BindView(R.id.caseStartTimeView) - TextView caseStartTimeView; - @BindView(R.id.caseEndTimeView) - TextView caseEndTimeView; - @BindView(R.id.caseHandleResultView) - TextView caseHandleResultView; - @BindView(R.id.caseHandleRecyclerView) - RecyclerView caseHandleRecyclerView; - @BindView(R.id.addImageView) - ImageView addImageView; - @BindView(R.id.caseReasonView) - EditText caseReasonView; - @BindView(R.id.submitButton) - QMUIRoundButton submitButton; - - private String id; - private String changeState; - private String caseReason; - private String approvalResult; - private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); - private List largeClassBeans = new ArrayList<>(); - private List smallClassBeans = new ArrayList<>(); - private List realPaths = new ArrayList<>();//真实图片路径 - private List mediaList = new ArrayList<>();//上传到服务器的数据集 - - private CaseDetailPresenterImpl caseDetailPresenter; - private CaseLargeClassPresenterImpl caseLargeClassPresenter; - private CaseSmallClassPresenterImpl caseSmallClassPresenter; - private CaseNextNodePresenterImpl caseNextNodePresenter; - private UploadImagePresenterImpl uploadImagePresenter; - private CaseHandlePresenterImpl caseHandlePresenter; - - private QMUITipDialog submitDialog; - - @Override - public int initLayoutView() { - return R.layout.activity_case_handle_overtime; - } - - @Override - protected String setTitleName() { - return "超时案卷"; - } - - @Override - public void initData() { - id = getIntent().getStringExtra("id"); - caseDetailPresenter = new CaseDetailPresenterImpl(this); - caseDetailPresenter.onReadyRetrofitRequest(id); - - caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); - caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); - caseNextNodePresenter = new CaseNextNodePresenterImpl(this); - uploadImagePresenter = new UploadImagePresenterImpl(this); - caseHandlePresenter = new CaseHandlePresenterImpl(this); - - submitDialog = new QMUITipDialog.Builder(this) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord("提交中,请稍后") - .create(); - } - - @Override - public void initEvent() { - submitButton.setChangeAlphaWhenPress(true); - } - - @Override - public void obtainCaseDetailData(CaseDetailBean resultBean) { - if (resultBean.isSuccess()) { - this.data = resultBean.getData().get(0); - caseTypeView.setText(data.getEorcName()); - caseLargeTypeView.setText(data.getCasetypeName()); - caseSmallTypeView.setText(data.getCasetypeDetailName()); - caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro()); - caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); - caseStartTimeView.setText(data.getCreateTime()); - caseEndTimeView.setText(data.getNodeLimittime()); - - String verifyImages = data.getFileIdVerify(); - if (!TextUtils.isEmpty(verifyImages)) { - List urls = new ArrayList<>(); - String[] split = verifyImages.split(","); - for (String s : split) { - urls.add(StringHelper.appendCompleteURL(s)); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(urls); - casePicRecyclerView.setVisibility(View.VISIBLE); - casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); - casePicRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(urls.get(position)); - } - }); - imageAdapter.setDeleteView(false); - } - } - } - - private void showBigImage(String path) { - Intent intent = new Intent(this, BigPictureActivity.class); - intent.putExtra("path", path); - startActivity(intent); - } - - @Override - public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { - if (largeClassBean.isSuccess()) { - //设置大类数据 - this.largeClassBeans = largeClassBean.getData(); - if (largeClassBeans.size() == 0) { - caseLargeTypeView.setText("无小类"); - } else { - caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 - } - caseSmallTypeView.setText("请选择"); - } - } - - @Override - public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { - if (smallClassBean.isSuccess()) { - //设置大类数据 - this.smallClassBeans = smallClassBean.getData(); - if (smallClassBeans.size() == 0) { - caseSmallTypeView.setText("无小类"); - } else { - caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 - } - } - } - - @Override - public void obtainNextNodeData(CaseNextNodeBean resultBean) { - if (resultBean.isSuccess()) { - List dataBeans = resultBean.getData(); - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("处理结果"); - for (CaseNextNodeBean.DataBean dataBean : dataBeans) { - 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(); - - CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); - caseHandleResultView.setText(dataBean.getNextOperation()); - changeState = String.valueOf(dataBean.getNextState()); - approvalResult = dataBean.getApprovalResult(); - } - }).build().show(); - } else { - ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); - } - } - - @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) - @Override - public void onClick(View v) { - switch (v.getId()) { - case R.id.caseClassLayout: - 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(); - - caseTypeView.setText(tag); - //获取案卷大类 - caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); - } - }).build().show(); - break; - case R.id.caseLargeClassLayout: - if (largeClassBeans != null) { - if (largeClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷大类"); - for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { - sheetBuilder.addItem(dataBean.getTypeName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseLargeTypeView.setText(tag); - //获取案卷小类 - CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); - String typeId = dataBean.getId(); - caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); - } - }).build().show(); - } - } - break; - case R.id.caseSmallClassLayout: - if (smallClassBeans != null) { - if (smallClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷小类"); - for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { - sheetBuilder.addItem(dataBean.getTypeDetailName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseSmallTypeView.setText(tag); - } - }).build().show(); - } - } - break; - case R.id.caseHandleResultLayout: - caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); - break; - case R.id.addImageView: - new QMUIDialog.MenuDialogBuilder(this) - .addItem("相册中选取", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //选图 - selectPicture(); - } - }) - .addItem("相机拍照", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //拍照 - takePicture(); - } - }) - .create().show(); - break; - case R.id.submitButton: - submitCase();//案卷提交 - break; - default: - break; - } - } - - private void submitCase() { - String handleResult = caseHandleResultView.getText().toString(); - if (handleResult.equals("请选择")) { - ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); - return; - } - if (handleResult.equals("处理完成")) { - //选择处理完成时,处理图片必传。至少一张,最多两张 - if (mediaList.size() < 1 || mediaList.size() > 2) { - ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); - return; - } - } - if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { - caseReason = caseReasonView.getText().toString(); - if (TextUtils.isEmpty(caseReason)) { - ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); - return; - } - } - caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), - changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); - } - - private void selectPicture() { - PictureSelector.create(this) - .openGallery(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(2) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.CHOOSE_REQUEST); - } - - private void takePicture() { - PictureSelector.create(this) - .openCamera(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(1) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.REQUEST_CAMERA); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if (resultCode == RESULT_OK) { - switch (requestCode) { - case PictureConfig.CHOOSE_REQUEST: - List selectList = PictureSelector.obtainMultipleResult(data); - for (LocalMedia media : selectList) { - String mediaCompressPath = media.getCompressPath(); - uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); - } - break; - case PictureConfig.REQUEST_CAMERA: - LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); - uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); - break; - default: - break; - } - } - } - - @Override - public void showProgress() { - submitDialog.show(); - } - - @Override - public void hideProgress() { - submitDialog.hide(); - } - - @Override - public void obtainUploadAudioResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainUploadImageResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - PictureFileUtils.deleteAllCacheDirFile(this); - /** - * 系统路径static拼接图片返回路径 - * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg - */ - //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String url = resultBean.getData(); - mediaList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(realPaths); - caseHandleRecyclerView.setVisibility(View.VISIBLE); - caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); - caseHandleRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(realPaths.get(position)); - } - }); - //删除按钮点击事件 - imageAdapter.setDeleteView(true); - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); - } - } - }); - } - } - - @Override - public void obtainUploadVideoResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainCaseHandleResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); - finish(); - } else { - ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); - } - } - - @Override - protected void onDestroy() { - super.onDestroy(); - if (caseDetailPresenter != null) { - caseDetailPresenter.disposeRetrofitRequest(); - } - if (caseLargeClassPresenter != null) { - caseLargeClassPresenter.disposeRetrofitRequest(); - } - if (caseSmallClassPresenter != null) { - caseSmallClassPresenter.disposeRetrofitRequest(); - } - if (caseNextNodePresenter != null) { - caseNextNodePresenter.disposeRetrofitRequest(); - } - if (uploadImagePresenter != null) { - uploadImagePresenter.disposeRetrofitRequest(); - } - if (caseHandlePresenter != null) { - caseHandlePresenter.disposeRetrofitRequest(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java new file mode 100644 index 0000000..5ea5403 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -0,0 +1,145 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { + + @BindView(R.id.detailTopLayout) + QMUITopBarLayout detailTopLayout; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @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; + + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private CaseDetailPresenterImpl caseDetailPresenter; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handled_detail; + } + + @Override + protected void setupTopBarLayout() { + detailTopLayout.setTitle("已办案卷").setTextColor(ContextCompat.getColor(this, R.color.white)); + detailTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + detailTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + String id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + } + + @Override + public void initEvent() { + + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseHandleStatusView.setText(data.getCaseStateName()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @OnClick(R.id.handleLayout) + @Override + public void onClick(View v) { + if (v.getId() == R.id.handleLayout) { + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java new file mode 100644 index 0000000..3b2d3d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -0,0 +1,228 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.TextView; + +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.presenter.CaseCommonSentencePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseUpdateSupervisePresenterImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseOverTimeView) + TextView caseOverTimeView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @BindView(R.id.casePlaceView) + EditText casePlaceView; + @BindView(R.id.caseDescriptionView) + TextView caseDescriptionView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseHandleResultView) + EditText caseHandleResultView; + @BindView(R.id.caseCommonSentenceView) + TextView caseCommonSentenceView; + + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseCommonSentencePresenterImpl commonSentencePresenter; + private CaseUpdateSupervisePresenterImpl updateSupervisePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_todo_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + commonSentencePresenter = new CaseCommonSentencePresenterImpl(this); + updateSupervisePresenter = new CaseUpdateSupervisePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @Override + public void initEvent() { + + } + + @OnClick({R.id.caseHandleLayout, R.id.caseCommonSentenceLayout, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseHandleLayout: + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + break; + case R.id.caseCommonSentenceLayout: + commonSentencePresenter.onReadyRetrofitRequest(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String remarks = caseHandleResultView.getText().toString(); + if (TextUtils.isEmpty(remarks)) { + ToastHelper.showToast("督办意见不能为空", ToastHelper.WARING); + return; + } + updateSupervisePresenter.onReadyRetrofitRequest(id, remarks); + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseOverTimeView.setText(data.getNodeLimittime()); + caseHandleStatusView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + casePlaceView.setText(data.getFieldintro()); + caseDescriptionView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainCommonSentenceData(CommonSentenceBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("常用语句"); + for (CommonSentenceBean.DataBean dataBean : dataBeans) { + 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(); + + CommonSentenceBean.DataBean dataBean = dataBeans.get(position); + caseCommonSentenceView.setText(dataBean.getName()); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUpdateSuperviseData(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷督办提交成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷督办提交失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (commonSentencePresenter != null) { + commonSentencePresenter.disposeRetrofitRequest(); + } + if (updateSupervisePresenter != null) { + updateSupervisePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 3060e1b..af6a9fe 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -191,7 +191,7 @@ caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); - caseHandleView.setText(data.getUrgeRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); caseSituationView.setText(data.getDescription()); diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f6ac20a..2070c95 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -67,12 +67,14 @@ - + - + + + { private Context context; + private List iconData = new ArrayList<>(); + private List itemData = new ArrayList<>(); public HomeRecycleAdapter(Context context) { this.context = context; } + public void setItemData(@Nullable List icons, @Nullable List items) { + this.iconData = icons; + this.itemData = items; + } + @NonNull @Override public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -30,7 +40,7 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - holder.bindView(context, position); + holder.bindView(position); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override @@ -43,7 +53,7 @@ @Override public int getItemCount() { - return Constant.ITEMS.size(); + return itemData.size(); } private OnGridItemClickListener clickListener; @@ -56,7 +66,7 @@ this.clickListener = onGridItemClickListener; } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { private ImageView imageView; private TextView textView; @@ -67,9 +77,9 @@ textView = itemView.findViewById(R.id.textView); } - void bindView(Context context, int position) { - imageView.setBackgroundResource(Constant.ICONS.get(position)); - textView.setText(Constant.ITEMS.get(position)); + void bindView(int position) { + imageView.setBackgroundResource(iconData.get(position)); + textView.setText(itemData.get(position)); } } } diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index b9c4615..d9b10e0 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; import java.util.ArrayList; @@ -62,7 +63,10 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - Glide.with(context).load(mediaList.get(position)).into(holder.imageView); + Glide.with(context) + .load(mediaList.get(position)) + .apply(new RequestOptions().error(R.drawable.ic_load_error)) + .into(holder.imageView); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/casic/dcms/base/BaseActivity.java b/app/src/main/java/com/casic/dcms/base/BaseActivity.java index caf0356..2ca87fe 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseActivity.java +++ b/app/src/main/java/com/casic/dcms/base/BaseActivity.java @@ -17,8 +17,8 @@ setContentView(initLayoutView()); ButterKnife.bind(this); QMUIStatusBarHelper.translucent(this);//沉浸式状态栏 - setupTopBarLayout(); initData(); + setupTopBarLayout(); initEvent(); } diff --git a/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java new file mode 100644 index 0000000..8de58a4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java @@ -0,0 +1,78 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CommonSentenceBean { + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 请及时处理 + * id : 156 + * value : 请及时处理 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java new file mode 100644 index 0000000..5258d89 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CommonSentenceBean; +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 CaseCommonSentenceModelImpl implements ICaseCommonSentenceModel { + + private OnGetCommonSentenceListener sentenceListener; + + public CaseCommonSentenceModelImpl(OnGetCommonSentenceListener commonSentenceListener) { + this.sentenceListener = commonSentenceListener; + } + + public interface OnGetCommonSentenceListener { + void onSuccess(CommonSentenceBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCommonSentenceResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (sentenceListener != null) { + sentenceListener.onFailure(e); + } + } + + @Override + public void onNext(CommonSentenceBean resultBean) { + if (resultBean != null) { + sentenceListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java new file mode 100644 index 0000000..a8cb3fc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java @@ -0,0 +1,53 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseUpdateSuperviseModelImpl implements ICaseUpdateSuperviseModel { + + private OnUpdateSuperviseListener listener; + + public CaseUpdateSuperviseModelImpl(OnUpdateSuperviseListener updateSuperviseListener) { + this.listener = updateSuperviseListener; + } + + /** + * 数据回调接口 + */ + public interface OnUpdateSuperviseListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String superviseRemarks) { + Observable observable = RetrofitServiceManager.getUpdateSuperviseResult(id, superviseRemarks); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java new file mode 100644 index 0000000..263ef6c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseCommonSentenceModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java new file mode 100644 index 0000000..518d602 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseUpdateSuperviseModel { + Subscription sendRetrofitRequest(String id, String superviseRemarks); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java new file mode 100644 index 0000000..6b65f13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseCommonSentenceModelImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; + +public class CaseCommonSentencePresenterImpl extends BasePresenter implements ICaseCommonSentencePresenter, + CaseCommonSentenceModelImpl.OnGetCommonSentenceListener { + + private ICaseCommonSentenceView view; + private CaseCommonSentenceModelImpl actionModel; + + public CaseCommonSentencePresenterImpl(ICaseCommonSentenceView commonSentenceView) { + this.view = commonSentenceView; + actionModel = new CaseCommonSentenceModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CommonSentenceBean resultBean) { + view.obtainCommonSentenceData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java new file mode 100644 index 0000000..66e1f44 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseUpdateSuperviseModelImpl; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; + +public class CaseUpdateSupervisePresenterImpl extends BasePresenter implements ICaseUpdateSupervisePresenter, + CaseUpdateSuperviseModelImpl.OnUpdateSuperviseListener { + + private ICaseUpdateSuperviseView view; + private CaseUpdateSuperviseModelImpl actionModel; + + public CaseUpdateSupervisePresenterImpl(ICaseUpdateSuperviseView updateSuperviseView) { + this.view = updateSuperviseView; + actionModel = new CaseUpdateSuperviseModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String superviseRemarks) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, superviseRemarks)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainUpdateSuperviseData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java new file mode 100644 index 0000000..1f8bd09 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseCommonSentencePresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java new file mode 100644 index 0000000..f61f9b2 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseUpdateSupervisePresenter { + void onReadyRetrofitRequest(String id, String superviseRemarks); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java new file mode 100644 index 0000000..9c7b08b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CommonSentenceBean; + +public interface ICaseCommonSentenceView { + void obtainCommonSentenceData(CommonSentenceBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java new file mode 100644 index 0000000..10bcf5a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICaseUpdateSuperviseView { + void showProgress(); + + void hideProgress(); + + void obtainUpdateSuperviseData(ActionResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java index ad70b7a..9143db8 100644 --- a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.ui; +import android.view.View; + +import androidx.core.content.ContextCompat; + import com.bumptech.glide.Glide; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.luck.picture.lib.photoview.PhotoView; -import com.qmuiteam.qmui.util.QMUIStatusBarHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; import butterknife.BindView; @@ -15,6 +19,8 @@ **/ public class BigPictureActivity extends BaseActivity { + @BindView(R.id.imageTopLayout) + QMUITopBarLayout imageTopLayout; @BindView(R.id.photoView) PhotoView photoView; @@ -25,37 +31,24 @@ @Override protected void setupTopBarLayout() { - QMUIStatusBarHelper.setStatusBarLightMode(this); + imageTopLayout.setTitle("查看大图").setTextColor(ContextCompat.getColor(this, R.color.white)); + imageTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + imageTopLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); } @Override public void initData() { -// String mediaJson = getIntent().getStringExtra("mediaJson"); -// -// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() { -// }.getType()); -// -// list = new ArrayList<>(); -// assert mediaList != null; -// for (LocalMedia media : mediaList) { -// list.add(media.getRealPath()); -// } String path = getIntent().getStringExtra("path"); Glide.with(this).load(path).into(photoView); } @Override public void initEvent() { -// //轮播图 -// bigImageBanner.setImageLoader(new ImageLoader() { -// -// @Override -// public void displayImage(Context context, Object path, ImageView imageView) { -// Glide.with(context).load(path).into(imageView); -// } -// }); -// bigImageBanner.isAutoPlay(false); -// bigImageBanner.setImages(list); -// bigImageBanner.start(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index 01a3807..7548cfc 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -329,7 +329,7 @@ caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java new file mode 100644 index 0000000..d4dba38 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -0,0 +1,505 @@ +package com.casic.dcms.ui; + +import android.content.DialogInterface; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseNextNodeBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseHandleView; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseNextNodeView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.IUploadFileView; +import com.casic.dcms.utils.FileUtils; +import com.casic.dcms.utils.GlideLoadEngine; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.luck.picture.lib.PictureSelector; +import com.luck.picture.lib.config.PictureConfig; +import com.luck.picture.lib.config.PictureMimeType; +import com.luck.picture.lib.entity.LocalMedia; +import com.luck.picture.lib.tools.PictureFileUtils; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, + ICaseHandleView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @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) + EditText casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.caseHandleView) + TextView caseHandleView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseStartTimeView) + TextView caseStartTimeView; + @BindView(R.id.caseEndTimeView) + TextView caseEndTimeView; + @BindView(R.id.caseHandleResultView) + TextView caseHandleResultView; + @BindView(R.id.caseHandleRecyclerView) + RecyclerView caseHandleRecyclerView; + @BindView(R.id.addImageView) + ImageView addImageView; + @BindView(R.id.caseReasonView) + EditText caseReasonView; + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private String changeState; + private String caseReason; + private String approvalResult; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private List largeClassBeans = new ArrayList<>(); + private List smallClassBeans = new ArrayList<>(); + private List realPaths = new ArrayList<>();//真实图片路径 + private List mediaList = new ArrayList<>();//上传到服务器的数据集 + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private CaseNextNodePresenterImpl caseNextNodePresenter; + private UploadImagePresenterImpl uploadImagePresenter; + private CaseHandlePresenterImpl caseHandlePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handle_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseNextNodePresenter = new CaseNextNodePresenterImpl(this); + uploadImagePresenter = new UploadImagePresenterImpl(this); + caseHandlePresenter = new CaseHandlePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @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()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + caseStartTimeView.setText(data.getCreateTime()); + caseEndTimeView.setText(data.getNodeLimittime()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeTypeView.setText("无小类"); + } else { + caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 + } + caseSmallTypeView.setText("请选择"); + } + } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallTypeView.setText("无小类"); + } else { + caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 + } + } + } + + @Override + public void obtainNextNodeData(CaseNextNodeBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处理结果"); + for (CaseNextNodeBean.DataBean dataBean : dataBeans) { + 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(); + + CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); + caseHandleResultView.setText(dataBean.getNextOperation()); + changeState = String.valueOf(dataBean.getNextState()); + approvalResult = dataBean.getApprovalResult(); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseClassLayout: + 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(); + + caseTypeView.setText(tag); + //获取案卷大类 + caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseLargeTypeView.setText(tag); + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseSmallTypeView.setText(tag); + } + }).build().show(); + } + } + break; + case R.id.caseHandleResultLayout: + caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); + break; + case R.id.addImageView: + new QMUIDialog.MenuDialogBuilder(this) + .addItem("相册中选取", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //选图 + selectPicture(); + } + }) + .addItem("相机拍照", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //拍照 + takePicture(); + } + }) + .create().show(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String handleResult = caseHandleResultView.getText().toString(); + if (handleResult.equals("请选择")) { + ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); + return; + } + if (handleResult.equals("处理完成")) { + //选择处理完成时,处理图片必传。至少一张,最多两张 + if (mediaList.size() < 1 || mediaList.size() > 2) { + ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); + return; + } + } + if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { + caseReason = caseReasonView.getText().toString(); + if (TextUtils.isEmpty(caseReason)) { + ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); + return; + } + } + caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), + changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); + } + + private void selectPicture() { + PictureSelector.create(this) + .openGallery(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(2) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.CHOOSE_REQUEST); + } + + private void takePicture() { + PictureSelector.create(this) + .openCamera(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(1) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.REQUEST_CAMERA); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == RESULT_OK) { + switch (requestCode) { + case PictureConfig.CHOOSE_REQUEST: + List selectList = PictureSelector.obtainMultipleResult(data); + for (LocalMedia media : selectList) { + String mediaCompressPath = media.getCompressPath(); + uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); + } + break; + case PictureConfig.REQUEST_CAMERA: + LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); + uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); + break; + default: + break; + } + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUploadAudioResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainUploadImageResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + PictureFileUtils.deleteAllCacheDirFile(this); + /** + * 系统路径static拼接图片返回路径 + * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg + */ + //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg + String url = resultBean.getData(); + mediaList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(realPaths); + caseHandleRecyclerView.setVisibility(View.VISIBLE); + caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); + caseHandleRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(realPaths.get(position)); + } + }); + //删除按钮点击事件 + imageAdapter.setDeleteView(true); + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } + } + + @Override + public void obtainUploadVideoResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainCaseHandleResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseNextNodePresenter != null) { + caseNextNodePresenter.disposeRetrofitRequest(); + } + if (uploadImagePresenter != null) { + uploadImagePresenter.disposeRetrofitRequest(); + } + if (caseHandlePresenter != null) { + caseHandlePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java deleted file mode 100644 index bd187c5..0000000 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java +++ /dev/null @@ -1,500 +0,0 @@ -package com.casic.dcms.ui; - -import android.content.DialogInterface; -import android.content.Intent; -import android.text.TextUtils; -import android.view.View; -import android.widget.EditText; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.Nullable; -import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.adapter.ImageRecycleViewAdapter; -import com.casic.dcms.base.BaseCaseActivity; -import com.casic.dcms.bean.ActionResultBean; -import com.casic.dcms.bean.CaseDetailBean; -import com.casic.dcms.bean.CaseLargeClassBean; -import com.casic.dcms.bean.CaseNextNodeBean; -import com.casic.dcms.bean.CaseSmallClassBean; -import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; -import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; -import com.casic.dcms.mvp.view.ICaseDetailView; -import com.casic.dcms.mvp.view.ICaseHandleView; -import com.casic.dcms.mvp.view.ICaseLargeClassView; -import com.casic.dcms.mvp.view.ICaseNextNodeView; -import com.casic.dcms.mvp.view.ICaseSmallClassView; -import com.casic.dcms.mvp.view.IUploadFileView; -import com.casic.dcms.utils.FileUtils; -import com.casic.dcms.utils.GlideLoadEngine; -import com.casic.dcms.utils.ItemDecorationSpace; -import com.casic.dcms.utils.StringHelper; -import com.casic.dcms.utils.ToastHelper; -import com.luck.picture.lib.PictureSelector; -import com.luck.picture.lib.config.PictureConfig; -import com.luck.picture.lib.config.PictureMimeType; -import com.luck.picture.lib.entity.LocalMedia; -import com.luck.picture.lib.tools.PictureFileUtils; -import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; -import com.qmuiteam.qmui.widget.dialog.QMUIDialog; -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; - -import butterknife.BindView; -import butterknife.OnClick; - -public class CaseHandleOvertimeDetailActivity extends BaseCaseActivity implements View.OnClickListener, - ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, - ICaseHandleView { - - @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) - EditText casePlaceView; - @BindView(R.id.caseSituationView) - TextView caseSituationView; - @BindView(R.id.caseHandleView) - TextView caseHandleView; - @BindView(R.id.casePicRecyclerView) - RecyclerView casePicRecyclerView; - @BindView(R.id.caseStartTimeView) - TextView caseStartTimeView; - @BindView(R.id.caseEndTimeView) - TextView caseEndTimeView; - @BindView(R.id.caseHandleResultView) - TextView caseHandleResultView; - @BindView(R.id.caseHandleRecyclerView) - RecyclerView caseHandleRecyclerView; - @BindView(R.id.addImageView) - ImageView addImageView; - @BindView(R.id.caseReasonView) - EditText caseReasonView; - @BindView(R.id.submitButton) - QMUIRoundButton submitButton; - - private String id; - private String changeState; - private String caseReason; - private String approvalResult; - private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); - private List largeClassBeans = new ArrayList<>(); - private List smallClassBeans = new ArrayList<>(); - private List realPaths = new ArrayList<>();//真实图片路径 - private List mediaList = new ArrayList<>();//上传到服务器的数据集 - - private CaseDetailPresenterImpl caseDetailPresenter; - private CaseLargeClassPresenterImpl caseLargeClassPresenter; - private CaseSmallClassPresenterImpl caseSmallClassPresenter; - private CaseNextNodePresenterImpl caseNextNodePresenter; - private UploadImagePresenterImpl uploadImagePresenter; - private CaseHandlePresenterImpl caseHandlePresenter; - - private QMUITipDialog submitDialog; - - @Override - public int initLayoutView() { - return R.layout.activity_case_handle_overtime; - } - - @Override - protected String setTitleName() { - return "超时案卷"; - } - - @Override - public void initData() { - id = getIntent().getStringExtra("id"); - caseDetailPresenter = new CaseDetailPresenterImpl(this); - caseDetailPresenter.onReadyRetrofitRequest(id); - - caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); - caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); - caseNextNodePresenter = new CaseNextNodePresenterImpl(this); - uploadImagePresenter = new UploadImagePresenterImpl(this); - caseHandlePresenter = new CaseHandlePresenterImpl(this); - - submitDialog = new QMUITipDialog.Builder(this) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord("提交中,请稍后") - .create(); - } - - @Override - public void initEvent() { - submitButton.setChangeAlphaWhenPress(true); - } - - @Override - public void obtainCaseDetailData(CaseDetailBean resultBean) { - if (resultBean.isSuccess()) { - this.data = resultBean.getData().get(0); - caseTypeView.setText(data.getEorcName()); - caseLargeTypeView.setText(data.getCasetypeName()); - caseSmallTypeView.setText(data.getCasetypeDetailName()); - caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro()); - caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); - caseStartTimeView.setText(data.getCreateTime()); - caseEndTimeView.setText(data.getNodeLimittime()); - - String verifyImages = data.getFileIdVerify(); - if (!TextUtils.isEmpty(verifyImages)) { - List urls = new ArrayList<>(); - String[] split = verifyImages.split(","); - for (String s : split) { - urls.add(StringHelper.appendCompleteURL(s)); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(urls); - casePicRecyclerView.setVisibility(View.VISIBLE); - casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); - casePicRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(urls.get(position)); - } - }); - imageAdapter.setDeleteView(false); - } - } - } - - private void showBigImage(String path) { - Intent intent = new Intent(this, BigPictureActivity.class); - intent.putExtra("path", path); - startActivity(intent); - } - - @Override - public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { - if (largeClassBean.isSuccess()) { - //设置大类数据 - this.largeClassBeans = largeClassBean.getData(); - if (largeClassBeans.size() == 0) { - caseLargeTypeView.setText("无小类"); - } else { - caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 - } - caseSmallTypeView.setText("请选择"); - } - } - - @Override - public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { - if (smallClassBean.isSuccess()) { - //设置大类数据 - this.smallClassBeans = smallClassBean.getData(); - if (smallClassBeans.size() == 0) { - caseSmallTypeView.setText("无小类"); - } else { - caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 - } - } - } - - @Override - public void obtainNextNodeData(CaseNextNodeBean resultBean) { - if (resultBean.isSuccess()) { - List dataBeans = resultBean.getData(); - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("处理结果"); - for (CaseNextNodeBean.DataBean dataBean : dataBeans) { - 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(); - - CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); - caseHandleResultView.setText(dataBean.getNextOperation()); - changeState = String.valueOf(dataBean.getNextState()); - approvalResult = dataBean.getApprovalResult(); - } - }).build().show(); - } else { - ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); - } - } - - @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) - @Override - public void onClick(View v) { - switch (v.getId()) { - case R.id.caseClassLayout: - 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(); - - caseTypeView.setText(tag); - //获取案卷大类 - caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); - } - }).build().show(); - break; - case R.id.caseLargeClassLayout: - if (largeClassBeans != null) { - if (largeClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷大类"); - for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { - sheetBuilder.addItem(dataBean.getTypeName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseLargeTypeView.setText(tag); - //获取案卷小类 - CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); - String typeId = dataBean.getId(); - caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); - } - }).build().show(); - } - } - break; - case R.id.caseSmallClassLayout: - if (smallClassBeans != null) { - if (smallClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷小类"); - for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { - sheetBuilder.addItem(dataBean.getTypeDetailName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseSmallTypeView.setText(tag); - } - }).build().show(); - } - } - break; - case R.id.caseHandleResultLayout: - caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); - break; - case R.id.addImageView: - new QMUIDialog.MenuDialogBuilder(this) - .addItem("相册中选取", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //选图 - selectPicture(); - } - }) - .addItem("相机拍照", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //拍照 - takePicture(); - } - }) - .create().show(); - break; - case R.id.submitButton: - submitCase();//案卷提交 - break; - default: - break; - } - } - - private void submitCase() { - String handleResult = caseHandleResultView.getText().toString(); - if (handleResult.equals("请选择")) { - ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); - return; - } - if (handleResult.equals("处理完成")) { - //选择处理完成时,处理图片必传。至少一张,最多两张 - if (mediaList.size() < 1 || mediaList.size() > 2) { - ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); - return; - } - } - if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { - caseReason = caseReasonView.getText().toString(); - if (TextUtils.isEmpty(caseReason)) { - ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); - return; - } - } - caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), - changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); - } - - private void selectPicture() { - PictureSelector.create(this) - .openGallery(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(2) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.CHOOSE_REQUEST); - } - - private void takePicture() { - PictureSelector.create(this) - .openCamera(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(1) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.REQUEST_CAMERA); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if (resultCode == RESULT_OK) { - switch (requestCode) { - case PictureConfig.CHOOSE_REQUEST: - List selectList = PictureSelector.obtainMultipleResult(data); - for (LocalMedia media : selectList) { - String mediaCompressPath = media.getCompressPath(); - uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); - } - break; - case PictureConfig.REQUEST_CAMERA: - LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); - uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); - break; - default: - break; - } - } - } - - @Override - public void showProgress() { - submitDialog.show(); - } - - @Override - public void hideProgress() { - submitDialog.hide(); - } - - @Override - public void obtainUploadAudioResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainUploadImageResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - PictureFileUtils.deleteAllCacheDirFile(this); - /** - * 系统路径static拼接图片返回路径 - * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg - */ - //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String url = resultBean.getData(); - mediaList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(realPaths); - caseHandleRecyclerView.setVisibility(View.VISIBLE); - caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); - caseHandleRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(realPaths.get(position)); - } - }); - //删除按钮点击事件 - imageAdapter.setDeleteView(true); - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); - } - } - }); - } - } - - @Override - public void obtainUploadVideoResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainCaseHandleResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); - finish(); - } else { - ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); - } - } - - @Override - protected void onDestroy() { - super.onDestroy(); - if (caseDetailPresenter != null) { - caseDetailPresenter.disposeRetrofitRequest(); - } - if (caseLargeClassPresenter != null) { - caseLargeClassPresenter.disposeRetrofitRequest(); - } - if (caseSmallClassPresenter != null) { - caseSmallClassPresenter.disposeRetrofitRequest(); - } - if (caseNextNodePresenter != null) { - caseNextNodePresenter.disposeRetrofitRequest(); - } - if (uploadImagePresenter != null) { - uploadImagePresenter.disposeRetrofitRequest(); - } - if (caseHandlePresenter != null) { - caseHandlePresenter.disposeRetrofitRequest(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java new file mode 100644 index 0000000..5ea5403 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -0,0 +1,145 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { + + @BindView(R.id.detailTopLayout) + QMUITopBarLayout detailTopLayout; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @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; + + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private CaseDetailPresenterImpl caseDetailPresenter; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handled_detail; + } + + @Override + protected void setupTopBarLayout() { + detailTopLayout.setTitle("已办案卷").setTextColor(ContextCompat.getColor(this, R.color.white)); + detailTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + detailTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + String id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + } + + @Override + public void initEvent() { + + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseHandleStatusView.setText(data.getCaseStateName()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @OnClick(R.id.handleLayout) + @Override + public void onClick(View v) { + if (v.getId() == R.id.handleLayout) { + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java new file mode 100644 index 0000000..3b2d3d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -0,0 +1,228 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.TextView; + +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.presenter.CaseCommonSentencePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseUpdateSupervisePresenterImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseOverTimeView) + TextView caseOverTimeView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @BindView(R.id.casePlaceView) + EditText casePlaceView; + @BindView(R.id.caseDescriptionView) + TextView caseDescriptionView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseHandleResultView) + EditText caseHandleResultView; + @BindView(R.id.caseCommonSentenceView) + TextView caseCommonSentenceView; + + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseCommonSentencePresenterImpl commonSentencePresenter; + private CaseUpdateSupervisePresenterImpl updateSupervisePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_todo_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + commonSentencePresenter = new CaseCommonSentencePresenterImpl(this); + updateSupervisePresenter = new CaseUpdateSupervisePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @Override + public void initEvent() { + + } + + @OnClick({R.id.caseHandleLayout, R.id.caseCommonSentenceLayout, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseHandleLayout: + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + break; + case R.id.caseCommonSentenceLayout: + commonSentencePresenter.onReadyRetrofitRequest(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String remarks = caseHandleResultView.getText().toString(); + if (TextUtils.isEmpty(remarks)) { + ToastHelper.showToast("督办意见不能为空", ToastHelper.WARING); + return; + } + updateSupervisePresenter.onReadyRetrofitRequest(id, remarks); + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseOverTimeView.setText(data.getNodeLimittime()); + caseHandleStatusView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + casePlaceView.setText(data.getFieldintro()); + caseDescriptionView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainCommonSentenceData(CommonSentenceBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("常用语句"); + for (CommonSentenceBean.DataBean dataBean : dataBeans) { + 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(); + + CommonSentenceBean.DataBean dataBean = dataBeans.get(position); + caseCommonSentenceView.setText(dataBean.getName()); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUpdateSuperviseData(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷督办提交成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷督办提交失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (commonSentencePresenter != null) { + commonSentencePresenter.disposeRetrofitRequest(); + } + if (updateSupervisePresenter != null) { + updateSupervisePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 3060e1b..af6a9fe 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -191,7 +191,7 @@ caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); - caseHandleView.setText(data.getUrgeRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); caseSituationView.setText(data.getDescription()); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index 7816221..3989633 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -28,6 +28,7 @@ import com.casic.dcms.ui.OvertimeCaseActivity; import com.casic.dcms.ui.PersonOnlineActivity; import com.casic.dcms.ui.UrgentCaseActivity; +import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.StringHelper; import com.qmuiteam.qmui.widget.QMUIRadiusImageView; @@ -69,62 +70,12 @@ @Override protected void initEvent() { - HomeRecycleAdapter adapter = new HomeRecycleAdapter(context); - homeRecyclerView.setLayoutManager(new GridLayoutManager(context, 3)); - homeRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - Intent intent = new Intent(); - switch (position) { - case 0: - intent.setClass(context, CaseUploadActivity.class); - break; - case 1: - intent.setClass(context, CaseUploadQuicklyActivity.class); - break; - case 2: - intent.setClass(context, FivePackageUploadActivity.class); - break; - case 3: - intent.setClass(context, CaseVerifyActivity.class); - break; - case 4: - intent.setClass(context, CaseCheckActivity.class); - break; - case 5: - intent.setClass(context, CaseHandleActivity.class); - break; - case 6: - intent.setClass(context, UrgentCaseActivity.class); - break; - case 7: - intent.setClass(context, OvertimeCaseActivity.class); - break; - case 8: - intent.setClass(context, DataAnalysisActivity.class); - break; - case 9: - intent.setClass(context, PersonOnlineActivity.class); - break; - case 10: - intent.setClass(context, CaseSearchActivity.class); - break; - case 11: - intent.setClass(context, MapWatchViewActivity.class); - break; - default: - break; - } - startActivity(intent); - } - }); + } @SuppressLint("SetTextI18n") @Override public void obtainUserData(UserBean userBean) { -// Log.d(TAG, "obtainUserData: " + new Gson().toJson(userBean)); if (userBean.isSuccess()) { //QMUIRadiusImageView无法动态设置圆形头像,借助Glide实现圆形头像 Glide.with(this).load(R.mipmap.app_logo).apply(RequestOptions.circleCropTransform()).into(userIconView); @@ -137,6 +88,121 @@ StringHelper.saveUserPhone(data.getPhone()); StringHelper.saveUserDept(data.getDeptName()); StringHelper.saveUserDeptId(data.getDeptId()); + + //权限控制 + String roleTip = data.getRoleTips().get(0); + HomeRecycleAdapter adapter = new HomeRecycleAdapter(context); + homeRecyclerView.setLayoutManager(new GridLayoutManager(context, 3)); + switch (roleTip) { + case "supervisor": + //All + adapter.setItemData(Constant.ALL_ICONS, Constant.ALL_ITEMS); + adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { + @Override + public void onClick(int position) { + Intent intent = new Intent(); + switch (position) { + case 0: + intent.setClass(context, CaseUploadActivity.class); + break; + case 1: + intent.setClass(context, CaseUploadQuicklyActivity.class); + break; + case 2: + intent.setClass(context, FivePackageUploadActivity.class); + break; + case 3: + intent.setClass(context, CaseVerifyActivity.class); + break; + case 4: + intent.setClass(context, CaseCheckActivity.class); + break; + case 5: + intent.setClass(context, CaseHandleActivity.class); + break; + case 6: + intent.setClass(context, UrgentCaseActivity.class); + break; + case 7: + intent.setClass(context, OvertimeCaseActivity.class); + break; + case 8: + intent.setClass(context, DataAnalysisActivity.class); + break; + case 9: + intent.setClass(context, PersonOnlineActivity.class); + break; + case 10: + intent.setClass(context, CaseSearchActivity.class); + break; + case 11: + intent.setClass(context, MapWatchViewActivity.class); + break; + default: + break; + } + startActivity(intent); + } + }); + break; +// case "process": +// //案卷处理、案卷查询 +// adapter.setItemData(Constant.PROCESS_ICONS, Constant.PROCESS_ITEMS); +// adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { +// @Override +// public void onClick(int position) { +// Intent intent = new Intent(); +// switch (position) { +// case 0: +// intent.setClass(context, CaseHandleActivity.class); +// break; +// case 1: +// intent.setClass(context, CaseSearchActivity.class); +// break; +// default: +// break; +// } +// startActivity(intent); +// } +// }); +// break; +// case "leader": +// //案卷上报、紧急要件、超时督办、统计分析、在岗人员、案卷查询 +// adapter.setItemData(Constant.LEADER_ICONS, Constant.LEADER_ITEMS); +// adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { +// @Override +// public void onClick(int position) { +// Intent intent = new Intent(); +// switch (position) { +// case 0: +// intent.setClass(context, CaseUploadActivity.class); +// break; +// case 1: +// intent.setClass(context, UrgentCaseActivity.class); +// break; +// case 2: +// intent.setClass(context, OvertimeCaseActivity.class); +// break; +// case 3: +// intent.setClass(context, DataAnalysisActivity.class); +// break; +// case 4: +// intent.setClass(context, PersonOnlineActivity.class); +// break; +// case 5: +// intent.setClass(context, CaseSearchActivity.class); +// break; +// default: +// break; +// } +// startActivity(intent); +// } +// }); +// break; + default: + break; + } + homeRecyclerView.setAdapter(adapter); } } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f6ac20a..2070c95 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -67,12 +67,14 @@ - + - + + + { private Context context; + private List iconData = new ArrayList<>(); + private List itemData = new ArrayList<>(); public HomeRecycleAdapter(Context context) { this.context = context; } + public void setItemData(@Nullable List icons, @Nullable List items) { + this.iconData = icons; + this.itemData = items; + } + @NonNull @Override public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -30,7 +40,7 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - holder.bindView(context, position); + holder.bindView(position); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override @@ -43,7 +53,7 @@ @Override public int getItemCount() { - return Constant.ITEMS.size(); + return itemData.size(); } private OnGridItemClickListener clickListener; @@ -56,7 +66,7 @@ this.clickListener = onGridItemClickListener; } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { private ImageView imageView; private TextView textView; @@ -67,9 +77,9 @@ textView = itemView.findViewById(R.id.textView); } - void bindView(Context context, int position) { - imageView.setBackgroundResource(Constant.ICONS.get(position)); - textView.setText(Constant.ITEMS.get(position)); + void bindView(int position) { + imageView.setBackgroundResource(iconData.get(position)); + textView.setText(itemData.get(position)); } } } diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index b9c4615..d9b10e0 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; import java.util.ArrayList; @@ -62,7 +63,10 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - Glide.with(context).load(mediaList.get(position)).into(holder.imageView); + Glide.with(context) + .load(mediaList.get(position)) + .apply(new RequestOptions().error(R.drawable.ic_load_error)) + .into(holder.imageView); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/casic/dcms/base/BaseActivity.java b/app/src/main/java/com/casic/dcms/base/BaseActivity.java index caf0356..2ca87fe 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseActivity.java +++ b/app/src/main/java/com/casic/dcms/base/BaseActivity.java @@ -17,8 +17,8 @@ setContentView(initLayoutView()); ButterKnife.bind(this); QMUIStatusBarHelper.translucent(this);//沉浸式状态栏 - setupTopBarLayout(); initData(); + setupTopBarLayout(); initEvent(); } diff --git a/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java new file mode 100644 index 0000000..8de58a4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java @@ -0,0 +1,78 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CommonSentenceBean { + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 请及时处理 + * id : 156 + * value : 请及时处理 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java new file mode 100644 index 0000000..5258d89 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CommonSentenceBean; +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 CaseCommonSentenceModelImpl implements ICaseCommonSentenceModel { + + private OnGetCommonSentenceListener sentenceListener; + + public CaseCommonSentenceModelImpl(OnGetCommonSentenceListener commonSentenceListener) { + this.sentenceListener = commonSentenceListener; + } + + public interface OnGetCommonSentenceListener { + void onSuccess(CommonSentenceBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCommonSentenceResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (sentenceListener != null) { + sentenceListener.onFailure(e); + } + } + + @Override + public void onNext(CommonSentenceBean resultBean) { + if (resultBean != null) { + sentenceListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java new file mode 100644 index 0000000..a8cb3fc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java @@ -0,0 +1,53 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseUpdateSuperviseModelImpl implements ICaseUpdateSuperviseModel { + + private OnUpdateSuperviseListener listener; + + public CaseUpdateSuperviseModelImpl(OnUpdateSuperviseListener updateSuperviseListener) { + this.listener = updateSuperviseListener; + } + + /** + * 数据回调接口 + */ + public interface OnUpdateSuperviseListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String superviseRemarks) { + Observable observable = RetrofitServiceManager.getUpdateSuperviseResult(id, superviseRemarks); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java new file mode 100644 index 0000000..263ef6c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseCommonSentenceModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java new file mode 100644 index 0000000..518d602 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseUpdateSuperviseModel { + Subscription sendRetrofitRequest(String id, String superviseRemarks); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java new file mode 100644 index 0000000..6b65f13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseCommonSentenceModelImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; + +public class CaseCommonSentencePresenterImpl extends BasePresenter implements ICaseCommonSentencePresenter, + CaseCommonSentenceModelImpl.OnGetCommonSentenceListener { + + private ICaseCommonSentenceView view; + private CaseCommonSentenceModelImpl actionModel; + + public CaseCommonSentencePresenterImpl(ICaseCommonSentenceView commonSentenceView) { + this.view = commonSentenceView; + actionModel = new CaseCommonSentenceModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CommonSentenceBean resultBean) { + view.obtainCommonSentenceData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java new file mode 100644 index 0000000..66e1f44 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseUpdateSuperviseModelImpl; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; + +public class CaseUpdateSupervisePresenterImpl extends BasePresenter implements ICaseUpdateSupervisePresenter, + CaseUpdateSuperviseModelImpl.OnUpdateSuperviseListener { + + private ICaseUpdateSuperviseView view; + private CaseUpdateSuperviseModelImpl actionModel; + + public CaseUpdateSupervisePresenterImpl(ICaseUpdateSuperviseView updateSuperviseView) { + this.view = updateSuperviseView; + actionModel = new CaseUpdateSuperviseModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String superviseRemarks) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, superviseRemarks)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainUpdateSuperviseData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java new file mode 100644 index 0000000..1f8bd09 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseCommonSentencePresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java new file mode 100644 index 0000000..f61f9b2 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseUpdateSupervisePresenter { + void onReadyRetrofitRequest(String id, String superviseRemarks); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java new file mode 100644 index 0000000..9c7b08b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CommonSentenceBean; + +public interface ICaseCommonSentenceView { + void obtainCommonSentenceData(CommonSentenceBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java new file mode 100644 index 0000000..10bcf5a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICaseUpdateSuperviseView { + void showProgress(); + + void hideProgress(); + + void obtainUpdateSuperviseData(ActionResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java index ad70b7a..9143db8 100644 --- a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.ui; +import android.view.View; + +import androidx.core.content.ContextCompat; + import com.bumptech.glide.Glide; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.luck.picture.lib.photoview.PhotoView; -import com.qmuiteam.qmui.util.QMUIStatusBarHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; import butterknife.BindView; @@ -15,6 +19,8 @@ **/ public class BigPictureActivity extends BaseActivity { + @BindView(R.id.imageTopLayout) + QMUITopBarLayout imageTopLayout; @BindView(R.id.photoView) PhotoView photoView; @@ -25,37 +31,24 @@ @Override protected void setupTopBarLayout() { - QMUIStatusBarHelper.setStatusBarLightMode(this); + imageTopLayout.setTitle("查看大图").setTextColor(ContextCompat.getColor(this, R.color.white)); + imageTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + imageTopLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); } @Override public void initData() { -// String mediaJson = getIntent().getStringExtra("mediaJson"); -// -// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() { -// }.getType()); -// -// list = new ArrayList<>(); -// assert mediaList != null; -// for (LocalMedia media : mediaList) { -// list.add(media.getRealPath()); -// } String path = getIntent().getStringExtra("path"); Glide.with(this).load(path).into(photoView); } @Override public void initEvent() { -// //轮播图 -// bigImageBanner.setImageLoader(new ImageLoader() { -// -// @Override -// public void displayImage(Context context, Object path, ImageView imageView) { -// Glide.with(context).load(path).into(imageView); -// } -// }); -// bigImageBanner.isAutoPlay(false); -// bigImageBanner.setImages(list); -// bigImageBanner.start(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index 01a3807..7548cfc 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -329,7 +329,7 @@ caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java new file mode 100644 index 0000000..d4dba38 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -0,0 +1,505 @@ +package com.casic.dcms.ui; + +import android.content.DialogInterface; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseNextNodeBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseHandleView; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseNextNodeView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.IUploadFileView; +import com.casic.dcms.utils.FileUtils; +import com.casic.dcms.utils.GlideLoadEngine; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.luck.picture.lib.PictureSelector; +import com.luck.picture.lib.config.PictureConfig; +import com.luck.picture.lib.config.PictureMimeType; +import com.luck.picture.lib.entity.LocalMedia; +import com.luck.picture.lib.tools.PictureFileUtils; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, + ICaseHandleView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @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) + EditText casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.caseHandleView) + TextView caseHandleView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseStartTimeView) + TextView caseStartTimeView; + @BindView(R.id.caseEndTimeView) + TextView caseEndTimeView; + @BindView(R.id.caseHandleResultView) + TextView caseHandleResultView; + @BindView(R.id.caseHandleRecyclerView) + RecyclerView caseHandleRecyclerView; + @BindView(R.id.addImageView) + ImageView addImageView; + @BindView(R.id.caseReasonView) + EditText caseReasonView; + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private String changeState; + private String caseReason; + private String approvalResult; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private List largeClassBeans = new ArrayList<>(); + private List smallClassBeans = new ArrayList<>(); + private List realPaths = new ArrayList<>();//真实图片路径 + private List mediaList = new ArrayList<>();//上传到服务器的数据集 + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private CaseNextNodePresenterImpl caseNextNodePresenter; + private UploadImagePresenterImpl uploadImagePresenter; + private CaseHandlePresenterImpl caseHandlePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handle_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseNextNodePresenter = new CaseNextNodePresenterImpl(this); + uploadImagePresenter = new UploadImagePresenterImpl(this); + caseHandlePresenter = new CaseHandlePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @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()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + caseStartTimeView.setText(data.getCreateTime()); + caseEndTimeView.setText(data.getNodeLimittime()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeTypeView.setText("无小类"); + } else { + caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 + } + caseSmallTypeView.setText("请选择"); + } + } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallTypeView.setText("无小类"); + } else { + caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 + } + } + } + + @Override + public void obtainNextNodeData(CaseNextNodeBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处理结果"); + for (CaseNextNodeBean.DataBean dataBean : dataBeans) { + 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(); + + CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); + caseHandleResultView.setText(dataBean.getNextOperation()); + changeState = String.valueOf(dataBean.getNextState()); + approvalResult = dataBean.getApprovalResult(); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseClassLayout: + 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(); + + caseTypeView.setText(tag); + //获取案卷大类 + caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseLargeTypeView.setText(tag); + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseSmallTypeView.setText(tag); + } + }).build().show(); + } + } + break; + case R.id.caseHandleResultLayout: + caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); + break; + case R.id.addImageView: + new QMUIDialog.MenuDialogBuilder(this) + .addItem("相册中选取", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //选图 + selectPicture(); + } + }) + .addItem("相机拍照", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //拍照 + takePicture(); + } + }) + .create().show(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String handleResult = caseHandleResultView.getText().toString(); + if (handleResult.equals("请选择")) { + ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); + return; + } + if (handleResult.equals("处理完成")) { + //选择处理完成时,处理图片必传。至少一张,最多两张 + if (mediaList.size() < 1 || mediaList.size() > 2) { + ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); + return; + } + } + if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { + caseReason = caseReasonView.getText().toString(); + if (TextUtils.isEmpty(caseReason)) { + ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); + return; + } + } + caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), + changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); + } + + private void selectPicture() { + PictureSelector.create(this) + .openGallery(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(2) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.CHOOSE_REQUEST); + } + + private void takePicture() { + PictureSelector.create(this) + .openCamera(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(1) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.REQUEST_CAMERA); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == RESULT_OK) { + switch (requestCode) { + case PictureConfig.CHOOSE_REQUEST: + List selectList = PictureSelector.obtainMultipleResult(data); + for (LocalMedia media : selectList) { + String mediaCompressPath = media.getCompressPath(); + uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); + } + break; + case PictureConfig.REQUEST_CAMERA: + LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); + uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); + break; + default: + break; + } + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUploadAudioResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainUploadImageResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + PictureFileUtils.deleteAllCacheDirFile(this); + /** + * 系统路径static拼接图片返回路径 + * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg + */ + //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg + String url = resultBean.getData(); + mediaList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(realPaths); + caseHandleRecyclerView.setVisibility(View.VISIBLE); + caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); + caseHandleRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(realPaths.get(position)); + } + }); + //删除按钮点击事件 + imageAdapter.setDeleteView(true); + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } + } + + @Override + public void obtainUploadVideoResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainCaseHandleResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseNextNodePresenter != null) { + caseNextNodePresenter.disposeRetrofitRequest(); + } + if (uploadImagePresenter != null) { + uploadImagePresenter.disposeRetrofitRequest(); + } + if (caseHandlePresenter != null) { + caseHandlePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java deleted file mode 100644 index bd187c5..0000000 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java +++ /dev/null @@ -1,500 +0,0 @@ -package com.casic.dcms.ui; - -import android.content.DialogInterface; -import android.content.Intent; -import android.text.TextUtils; -import android.view.View; -import android.widget.EditText; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.Nullable; -import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.adapter.ImageRecycleViewAdapter; -import com.casic.dcms.base.BaseCaseActivity; -import com.casic.dcms.bean.ActionResultBean; -import com.casic.dcms.bean.CaseDetailBean; -import com.casic.dcms.bean.CaseLargeClassBean; -import com.casic.dcms.bean.CaseNextNodeBean; -import com.casic.dcms.bean.CaseSmallClassBean; -import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; -import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; -import com.casic.dcms.mvp.view.ICaseDetailView; -import com.casic.dcms.mvp.view.ICaseHandleView; -import com.casic.dcms.mvp.view.ICaseLargeClassView; -import com.casic.dcms.mvp.view.ICaseNextNodeView; -import com.casic.dcms.mvp.view.ICaseSmallClassView; -import com.casic.dcms.mvp.view.IUploadFileView; -import com.casic.dcms.utils.FileUtils; -import com.casic.dcms.utils.GlideLoadEngine; -import com.casic.dcms.utils.ItemDecorationSpace; -import com.casic.dcms.utils.StringHelper; -import com.casic.dcms.utils.ToastHelper; -import com.luck.picture.lib.PictureSelector; -import com.luck.picture.lib.config.PictureConfig; -import com.luck.picture.lib.config.PictureMimeType; -import com.luck.picture.lib.entity.LocalMedia; -import com.luck.picture.lib.tools.PictureFileUtils; -import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; -import com.qmuiteam.qmui.widget.dialog.QMUIDialog; -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; - -import butterknife.BindView; -import butterknife.OnClick; - -public class CaseHandleOvertimeDetailActivity extends BaseCaseActivity implements View.OnClickListener, - ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, - ICaseHandleView { - - @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) - EditText casePlaceView; - @BindView(R.id.caseSituationView) - TextView caseSituationView; - @BindView(R.id.caseHandleView) - TextView caseHandleView; - @BindView(R.id.casePicRecyclerView) - RecyclerView casePicRecyclerView; - @BindView(R.id.caseStartTimeView) - TextView caseStartTimeView; - @BindView(R.id.caseEndTimeView) - TextView caseEndTimeView; - @BindView(R.id.caseHandleResultView) - TextView caseHandleResultView; - @BindView(R.id.caseHandleRecyclerView) - RecyclerView caseHandleRecyclerView; - @BindView(R.id.addImageView) - ImageView addImageView; - @BindView(R.id.caseReasonView) - EditText caseReasonView; - @BindView(R.id.submitButton) - QMUIRoundButton submitButton; - - private String id; - private String changeState; - private String caseReason; - private String approvalResult; - private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); - private List largeClassBeans = new ArrayList<>(); - private List smallClassBeans = new ArrayList<>(); - private List realPaths = new ArrayList<>();//真实图片路径 - private List mediaList = new ArrayList<>();//上传到服务器的数据集 - - private CaseDetailPresenterImpl caseDetailPresenter; - private CaseLargeClassPresenterImpl caseLargeClassPresenter; - private CaseSmallClassPresenterImpl caseSmallClassPresenter; - private CaseNextNodePresenterImpl caseNextNodePresenter; - private UploadImagePresenterImpl uploadImagePresenter; - private CaseHandlePresenterImpl caseHandlePresenter; - - private QMUITipDialog submitDialog; - - @Override - public int initLayoutView() { - return R.layout.activity_case_handle_overtime; - } - - @Override - protected String setTitleName() { - return "超时案卷"; - } - - @Override - public void initData() { - id = getIntent().getStringExtra("id"); - caseDetailPresenter = new CaseDetailPresenterImpl(this); - caseDetailPresenter.onReadyRetrofitRequest(id); - - caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); - caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); - caseNextNodePresenter = new CaseNextNodePresenterImpl(this); - uploadImagePresenter = new UploadImagePresenterImpl(this); - caseHandlePresenter = new CaseHandlePresenterImpl(this); - - submitDialog = new QMUITipDialog.Builder(this) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord("提交中,请稍后") - .create(); - } - - @Override - public void initEvent() { - submitButton.setChangeAlphaWhenPress(true); - } - - @Override - public void obtainCaseDetailData(CaseDetailBean resultBean) { - if (resultBean.isSuccess()) { - this.data = resultBean.getData().get(0); - caseTypeView.setText(data.getEorcName()); - caseLargeTypeView.setText(data.getCasetypeName()); - caseSmallTypeView.setText(data.getCasetypeDetailName()); - caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro()); - caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); - caseStartTimeView.setText(data.getCreateTime()); - caseEndTimeView.setText(data.getNodeLimittime()); - - String verifyImages = data.getFileIdVerify(); - if (!TextUtils.isEmpty(verifyImages)) { - List urls = new ArrayList<>(); - String[] split = verifyImages.split(","); - for (String s : split) { - urls.add(StringHelper.appendCompleteURL(s)); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(urls); - casePicRecyclerView.setVisibility(View.VISIBLE); - casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); - casePicRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(urls.get(position)); - } - }); - imageAdapter.setDeleteView(false); - } - } - } - - private void showBigImage(String path) { - Intent intent = new Intent(this, BigPictureActivity.class); - intent.putExtra("path", path); - startActivity(intent); - } - - @Override - public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { - if (largeClassBean.isSuccess()) { - //设置大类数据 - this.largeClassBeans = largeClassBean.getData(); - if (largeClassBeans.size() == 0) { - caseLargeTypeView.setText("无小类"); - } else { - caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 - } - caseSmallTypeView.setText("请选择"); - } - } - - @Override - public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { - if (smallClassBean.isSuccess()) { - //设置大类数据 - this.smallClassBeans = smallClassBean.getData(); - if (smallClassBeans.size() == 0) { - caseSmallTypeView.setText("无小类"); - } else { - caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 - } - } - } - - @Override - public void obtainNextNodeData(CaseNextNodeBean resultBean) { - if (resultBean.isSuccess()) { - List dataBeans = resultBean.getData(); - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("处理结果"); - for (CaseNextNodeBean.DataBean dataBean : dataBeans) { - 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(); - - CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); - caseHandleResultView.setText(dataBean.getNextOperation()); - changeState = String.valueOf(dataBean.getNextState()); - approvalResult = dataBean.getApprovalResult(); - } - }).build().show(); - } else { - ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); - } - } - - @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) - @Override - public void onClick(View v) { - switch (v.getId()) { - case R.id.caseClassLayout: - 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(); - - caseTypeView.setText(tag); - //获取案卷大类 - caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); - } - }).build().show(); - break; - case R.id.caseLargeClassLayout: - if (largeClassBeans != null) { - if (largeClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷大类"); - for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { - sheetBuilder.addItem(dataBean.getTypeName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseLargeTypeView.setText(tag); - //获取案卷小类 - CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); - String typeId = dataBean.getId(); - caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); - } - }).build().show(); - } - } - break; - case R.id.caseSmallClassLayout: - if (smallClassBeans != null) { - if (smallClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷小类"); - for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { - sheetBuilder.addItem(dataBean.getTypeDetailName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseSmallTypeView.setText(tag); - } - }).build().show(); - } - } - break; - case R.id.caseHandleResultLayout: - caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); - break; - case R.id.addImageView: - new QMUIDialog.MenuDialogBuilder(this) - .addItem("相册中选取", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //选图 - selectPicture(); - } - }) - .addItem("相机拍照", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //拍照 - takePicture(); - } - }) - .create().show(); - break; - case R.id.submitButton: - submitCase();//案卷提交 - break; - default: - break; - } - } - - private void submitCase() { - String handleResult = caseHandleResultView.getText().toString(); - if (handleResult.equals("请选择")) { - ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); - return; - } - if (handleResult.equals("处理完成")) { - //选择处理完成时,处理图片必传。至少一张,最多两张 - if (mediaList.size() < 1 || mediaList.size() > 2) { - ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); - return; - } - } - if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { - caseReason = caseReasonView.getText().toString(); - if (TextUtils.isEmpty(caseReason)) { - ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); - return; - } - } - caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), - changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); - } - - private void selectPicture() { - PictureSelector.create(this) - .openGallery(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(2) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.CHOOSE_REQUEST); - } - - private void takePicture() { - PictureSelector.create(this) - .openCamera(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(1) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.REQUEST_CAMERA); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if (resultCode == RESULT_OK) { - switch (requestCode) { - case PictureConfig.CHOOSE_REQUEST: - List selectList = PictureSelector.obtainMultipleResult(data); - for (LocalMedia media : selectList) { - String mediaCompressPath = media.getCompressPath(); - uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); - } - break; - case PictureConfig.REQUEST_CAMERA: - LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); - uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); - break; - default: - break; - } - } - } - - @Override - public void showProgress() { - submitDialog.show(); - } - - @Override - public void hideProgress() { - submitDialog.hide(); - } - - @Override - public void obtainUploadAudioResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainUploadImageResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - PictureFileUtils.deleteAllCacheDirFile(this); - /** - * 系统路径static拼接图片返回路径 - * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg - */ - //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String url = resultBean.getData(); - mediaList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(realPaths); - caseHandleRecyclerView.setVisibility(View.VISIBLE); - caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); - caseHandleRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(realPaths.get(position)); - } - }); - //删除按钮点击事件 - imageAdapter.setDeleteView(true); - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); - } - } - }); - } - } - - @Override - public void obtainUploadVideoResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainCaseHandleResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); - finish(); - } else { - ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); - } - } - - @Override - protected void onDestroy() { - super.onDestroy(); - if (caseDetailPresenter != null) { - caseDetailPresenter.disposeRetrofitRequest(); - } - if (caseLargeClassPresenter != null) { - caseLargeClassPresenter.disposeRetrofitRequest(); - } - if (caseSmallClassPresenter != null) { - caseSmallClassPresenter.disposeRetrofitRequest(); - } - if (caseNextNodePresenter != null) { - caseNextNodePresenter.disposeRetrofitRequest(); - } - if (uploadImagePresenter != null) { - uploadImagePresenter.disposeRetrofitRequest(); - } - if (caseHandlePresenter != null) { - caseHandlePresenter.disposeRetrofitRequest(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java new file mode 100644 index 0000000..5ea5403 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -0,0 +1,145 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { + + @BindView(R.id.detailTopLayout) + QMUITopBarLayout detailTopLayout; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @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; + + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private CaseDetailPresenterImpl caseDetailPresenter; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handled_detail; + } + + @Override + protected void setupTopBarLayout() { + detailTopLayout.setTitle("已办案卷").setTextColor(ContextCompat.getColor(this, R.color.white)); + detailTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + detailTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + String id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + } + + @Override + public void initEvent() { + + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseHandleStatusView.setText(data.getCaseStateName()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @OnClick(R.id.handleLayout) + @Override + public void onClick(View v) { + if (v.getId() == R.id.handleLayout) { + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java new file mode 100644 index 0000000..3b2d3d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -0,0 +1,228 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.TextView; + +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.presenter.CaseCommonSentencePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseUpdateSupervisePresenterImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseOverTimeView) + TextView caseOverTimeView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @BindView(R.id.casePlaceView) + EditText casePlaceView; + @BindView(R.id.caseDescriptionView) + TextView caseDescriptionView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseHandleResultView) + EditText caseHandleResultView; + @BindView(R.id.caseCommonSentenceView) + TextView caseCommonSentenceView; + + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseCommonSentencePresenterImpl commonSentencePresenter; + private CaseUpdateSupervisePresenterImpl updateSupervisePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_todo_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + commonSentencePresenter = new CaseCommonSentencePresenterImpl(this); + updateSupervisePresenter = new CaseUpdateSupervisePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @Override + public void initEvent() { + + } + + @OnClick({R.id.caseHandleLayout, R.id.caseCommonSentenceLayout, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseHandleLayout: + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + break; + case R.id.caseCommonSentenceLayout: + commonSentencePresenter.onReadyRetrofitRequest(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String remarks = caseHandleResultView.getText().toString(); + if (TextUtils.isEmpty(remarks)) { + ToastHelper.showToast("督办意见不能为空", ToastHelper.WARING); + return; + } + updateSupervisePresenter.onReadyRetrofitRequest(id, remarks); + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseOverTimeView.setText(data.getNodeLimittime()); + caseHandleStatusView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + casePlaceView.setText(data.getFieldintro()); + caseDescriptionView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainCommonSentenceData(CommonSentenceBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("常用语句"); + for (CommonSentenceBean.DataBean dataBean : dataBeans) { + 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(); + + CommonSentenceBean.DataBean dataBean = dataBeans.get(position); + caseCommonSentenceView.setText(dataBean.getName()); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUpdateSuperviseData(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷督办提交成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷督办提交失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (commonSentencePresenter != null) { + commonSentencePresenter.disposeRetrofitRequest(); + } + if (updateSupervisePresenter != null) { + updateSupervisePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 3060e1b..af6a9fe 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -191,7 +191,7 @@ caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); - caseHandleView.setText(data.getUrgeRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); caseSituationView.setText(data.getDescription()); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index 7816221..3989633 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -28,6 +28,7 @@ import com.casic.dcms.ui.OvertimeCaseActivity; import com.casic.dcms.ui.PersonOnlineActivity; import com.casic.dcms.ui.UrgentCaseActivity; +import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.StringHelper; import com.qmuiteam.qmui.widget.QMUIRadiusImageView; @@ -69,62 +70,12 @@ @Override protected void initEvent() { - HomeRecycleAdapter adapter = new HomeRecycleAdapter(context); - homeRecyclerView.setLayoutManager(new GridLayoutManager(context, 3)); - homeRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - Intent intent = new Intent(); - switch (position) { - case 0: - intent.setClass(context, CaseUploadActivity.class); - break; - case 1: - intent.setClass(context, CaseUploadQuicklyActivity.class); - break; - case 2: - intent.setClass(context, FivePackageUploadActivity.class); - break; - case 3: - intent.setClass(context, CaseVerifyActivity.class); - break; - case 4: - intent.setClass(context, CaseCheckActivity.class); - break; - case 5: - intent.setClass(context, CaseHandleActivity.class); - break; - case 6: - intent.setClass(context, UrgentCaseActivity.class); - break; - case 7: - intent.setClass(context, OvertimeCaseActivity.class); - break; - case 8: - intent.setClass(context, DataAnalysisActivity.class); - break; - case 9: - intent.setClass(context, PersonOnlineActivity.class); - break; - case 10: - intent.setClass(context, CaseSearchActivity.class); - break; - case 11: - intent.setClass(context, MapWatchViewActivity.class); - break; - default: - break; - } - startActivity(intent); - } - }); + } @SuppressLint("SetTextI18n") @Override public void obtainUserData(UserBean userBean) { -// Log.d(TAG, "obtainUserData: " + new Gson().toJson(userBean)); if (userBean.isSuccess()) { //QMUIRadiusImageView无法动态设置圆形头像,借助Glide实现圆形头像 Glide.with(this).load(R.mipmap.app_logo).apply(RequestOptions.circleCropTransform()).into(userIconView); @@ -137,6 +88,121 @@ StringHelper.saveUserPhone(data.getPhone()); StringHelper.saveUserDept(data.getDeptName()); StringHelper.saveUserDeptId(data.getDeptId()); + + //权限控制 + String roleTip = data.getRoleTips().get(0); + HomeRecycleAdapter adapter = new HomeRecycleAdapter(context); + homeRecyclerView.setLayoutManager(new GridLayoutManager(context, 3)); + switch (roleTip) { + case "supervisor": + //All + adapter.setItemData(Constant.ALL_ICONS, Constant.ALL_ITEMS); + adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { + @Override + public void onClick(int position) { + Intent intent = new Intent(); + switch (position) { + case 0: + intent.setClass(context, CaseUploadActivity.class); + break; + case 1: + intent.setClass(context, CaseUploadQuicklyActivity.class); + break; + case 2: + intent.setClass(context, FivePackageUploadActivity.class); + break; + case 3: + intent.setClass(context, CaseVerifyActivity.class); + break; + case 4: + intent.setClass(context, CaseCheckActivity.class); + break; + case 5: + intent.setClass(context, CaseHandleActivity.class); + break; + case 6: + intent.setClass(context, UrgentCaseActivity.class); + break; + case 7: + intent.setClass(context, OvertimeCaseActivity.class); + break; + case 8: + intent.setClass(context, DataAnalysisActivity.class); + break; + case 9: + intent.setClass(context, PersonOnlineActivity.class); + break; + case 10: + intent.setClass(context, CaseSearchActivity.class); + break; + case 11: + intent.setClass(context, MapWatchViewActivity.class); + break; + default: + break; + } + startActivity(intent); + } + }); + break; +// case "process": +// //案卷处理、案卷查询 +// adapter.setItemData(Constant.PROCESS_ICONS, Constant.PROCESS_ITEMS); +// adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { +// @Override +// public void onClick(int position) { +// Intent intent = new Intent(); +// switch (position) { +// case 0: +// intent.setClass(context, CaseHandleActivity.class); +// break; +// case 1: +// intent.setClass(context, CaseSearchActivity.class); +// break; +// default: +// break; +// } +// startActivity(intent); +// } +// }); +// break; +// case "leader": +// //案卷上报、紧急要件、超时督办、统计分析、在岗人员、案卷查询 +// adapter.setItemData(Constant.LEADER_ICONS, Constant.LEADER_ITEMS); +// adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { +// @Override +// public void onClick(int position) { +// Intent intent = new Intent(); +// switch (position) { +// case 0: +// intent.setClass(context, CaseUploadActivity.class); +// break; +// case 1: +// intent.setClass(context, UrgentCaseActivity.class); +// break; +// case 2: +// intent.setClass(context, OvertimeCaseActivity.class); +// break; +// case 3: +// intent.setClass(context, DataAnalysisActivity.class); +// break; +// case 4: +// intent.setClass(context, PersonOnlineActivity.class); +// break; +// case 5: +// intent.setClass(context, CaseSearchActivity.class); +// break; +// default: +// break; +// } +// startActivity(intent); +// } +// }); +// break; + default: + break; + } + homeRecyclerView.setAdapter(adapter); } } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java index 430f8be..fa2df7a 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandledBean; import com.casic.dcms.mvp.presenter.CaseHandledListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandledListView; +import com.casic.dcms.ui.CaseHandledDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -128,10 +130,9 @@ adapter.setOnItemClickListener(new CaseHandledAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandledDetailActivity.class); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f6ac20a..2070c95 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -67,12 +67,14 @@ - + - + + + { private Context context; + private List iconData = new ArrayList<>(); + private List itemData = new ArrayList<>(); public HomeRecycleAdapter(Context context) { this.context = context; } + public void setItemData(@Nullable List icons, @Nullable List items) { + this.iconData = icons; + this.itemData = items; + } + @NonNull @Override public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -30,7 +40,7 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - holder.bindView(context, position); + holder.bindView(position); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override @@ -43,7 +53,7 @@ @Override public int getItemCount() { - return Constant.ITEMS.size(); + return itemData.size(); } private OnGridItemClickListener clickListener; @@ -56,7 +66,7 @@ this.clickListener = onGridItemClickListener; } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { private ImageView imageView; private TextView textView; @@ -67,9 +77,9 @@ textView = itemView.findViewById(R.id.textView); } - void bindView(Context context, int position) { - imageView.setBackgroundResource(Constant.ICONS.get(position)); - textView.setText(Constant.ITEMS.get(position)); + void bindView(int position) { + imageView.setBackgroundResource(iconData.get(position)); + textView.setText(itemData.get(position)); } } } diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index b9c4615..d9b10e0 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; import java.util.ArrayList; @@ -62,7 +63,10 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - Glide.with(context).load(mediaList.get(position)).into(holder.imageView); + Glide.with(context) + .load(mediaList.get(position)) + .apply(new RequestOptions().error(R.drawable.ic_load_error)) + .into(holder.imageView); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/casic/dcms/base/BaseActivity.java b/app/src/main/java/com/casic/dcms/base/BaseActivity.java index caf0356..2ca87fe 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseActivity.java +++ b/app/src/main/java/com/casic/dcms/base/BaseActivity.java @@ -17,8 +17,8 @@ setContentView(initLayoutView()); ButterKnife.bind(this); QMUIStatusBarHelper.translucent(this);//沉浸式状态栏 - setupTopBarLayout(); initData(); + setupTopBarLayout(); initEvent(); } diff --git a/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java new file mode 100644 index 0000000..8de58a4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java @@ -0,0 +1,78 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CommonSentenceBean { + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 请及时处理 + * id : 156 + * value : 请及时处理 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java new file mode 100644 index 0000000..5258d89 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CommonSentenceBean; +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 CaseCommonSentenceModelImpl implements ICaseCommonSentenceModel { + + private OnGetCommonSentenceListener sentenceListener; + + public CaseCommonSentenceModelImpl(OnGetCommonSentenceListener commonSentenceListener) { + this.sentenceListener = commonSentenceListener; + } + + public interface OnGetCommonSentenceListener { + void onSuccess(CommonSentenceBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCommonSentenceResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (sentenceListener != null) { + sentenceListener.onFailure(e); + } + } + + @Override + public void onNext(CommonSentenceBean resultBean) { + if (resultBean != null) { + sentenceListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java new file mode 100644 index 0000000..a8cb3fc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java @@ -0,0 +1,53 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseUpdateSuperviseModelImpl implements ICaseUpdateSuperviseModel { + + private OnUpdateSuperviseListener listener; + + public CaseUpdateSuperviseModelImpl(OnUpdateSuperviseListener updateSuperviseListener) { + this.listener = updateSuperviseListener; + } + + /** + * 数据回调接口 + */ + public interface OnUpdateSuperviseListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String superviseRemarks) { + Observable observable = RetrofitServiceManager.getUpdateSuperviseResult(id, superviseRemarks); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java new file mode 100644 index 0000000..263ef6c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseCommonSentenceModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java new file mode 100644 index 0000000..518d602 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseUpdateSuperviseModel { + Subscription sendRetrofitRequest(String id, String superviseRemarks); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java new file mode 100644 index 0000000..6b65f13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseCommonSentenceModelImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; + +public class CaseCommonSentencePresenterImpl extends BasePresenter implements ICaseCommonSentencePresenter, + CaseCommonSentenceModelImpl.OnGetCommonSentenceListener { + + private ICaseCommonSentenceView view; + private CaseCommonSentenceModelImpl actionModel; + + public CaseCommonSentencePresenterImpl(ICaseCommonSentenceView commonSentenceView) { + this.view = commonSentenceView; + actionModel = new CaseCommonSentenceModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CommonSentenceBean resultBean) { + view.obtainCommonSentenceData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java new file mode 100644 index 0000000..66e1f44 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseUpdateSuperviseModelImpl; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; + +public class CaseUpdateSupervisePresenterImpl extends BasePresenter implements ICaseUpdateSupervisePresenter, + CaseUpdateSuperviseModelImpl.OnUpdateSuperviseListener { + + private ICaseUpdateSuperviseView view; + private CaseUpdateSuperviseModelImpl actionModel; + + public CaseUpdateSupervisePresenterImpl(ICaseUpdateSuperviseView updateSuperviseView) { + this.view = updateSuperviseView; + actionModel = new CaseUpdateSuperviseModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String superviseRemarks) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, superviseRemarks)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainUpdateSuperviseData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java new file mode 100644 index 0000000..1f8bd09 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseCommonSentencePresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java new file mode 100644 index 0000000..f61f9b2 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseUpdateSupervisePresenter { + void onReadyRetrofitRequest(String id, String superviseRemarks); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java new file mode 100644 index 0000000..9c7b08b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CommonSentenceBean; + +public interface ICaseCommonSentenceView { + void obtainCommonSentenceData(CommonSentenceBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java new file mode 100644 index 0000000..10bcf5a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICaseUpdateSuperviseView { + void showProgress(); + + void hideProgress(); + + void obtainUpdateSuperviseData(ActionResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java index ad70b7a..9143db8 100644 --- a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.ui; +import android.view.View; + +import androidx.core.content.ContextCompat; + import com.bumptech.glide.Glide; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.luck.picture.lib.photoview.PhotoView; -import com.qmuiteam.qmui.util.QMUIStatusBarHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; import butterknife.BindView; @@ -15,6 +19,8 @@ **/ public class BigPictureActivity extends BaseActivity { + @BindView(R.id.imageTopLayout) + QMUITopBarLayout imageTopLayout; @BindView(R.id.photoView) PhotoView photoView; @@ -25,37 +31,24 @@ @Override protected void setupTopBarLayout() { - QMUIStatusBarHelper.setStatusBarLightMode(this); + imageTopLayout.setTitle("查看大图").setTextColor(ContextCompat.getColor(this, R.color.white)); + imageTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + imageTopLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); } @Override public void initData() { -// String mediaJson = getIntent().getStringExtra("mediaJson"); -// -// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() { -// }.getType()); -// -// list = new ArrayList<>(); -// assert mediaList != null; -// for (LocalMedia media : mediaList) { -// list.add(media.getRealPath()); -// } String path = getIntent().getStringExtra("path"); Glide.with(this).load(path).into(photoView); } @Override public void initEvent() { -// //轮播图 -// bigImageBanner.setImageLoader(new ImageLoader() { -// -// @Override -// public void displayImage(Context context, Object path, ImageView imageView) { -// Glide.with(context).load(path).into(imageView); -// } -// }); -// bigImageBanner.isAutoPlay(false); -// bigImageBanner.setImages(list); -// bigImageBanner.start(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index 01a3807..7548cfc 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -329,7 +329,7 @@ caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java new file mode 100644 index 0000000..d4dba38 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -0,0 +1,505 @@ +package com.casic.dcms.ui; + +import android.content.DialogInterface; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseNextNodeBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseHandleView; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseNextNodeView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.IUploadFileView; +import com.casic.dcms.utils.FileUtils; +import com.casic.dcms.utils.GlideLoadEngine; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.luck.picture.lib.PictureSelector; +import com.luck.picture.lib.config.PictureConfig; +import com.luck.picture.lib.config.PictureMimeType; +import com.luck.picture.lib.entity.LocalMedia; +import com.luck.picture.lib.tools.PictureFileUtils; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, + ICaseHandleView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @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) + EditText casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.caseHandleView) + TextView caseHandleView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseStartTimeView) + TextView caseStartTimeView; + @BindView(R.id.caseEndTimeView) + TextView caseEndTimeView; + @BindView(R.id.caseHandleResultView) + TextView caseHandleResultView; + @BindView(R.id.caseHandleRecyclerView) + RecyclerView caseHandleRecyclerView; + @BindView(R.id.addImageView) + ImageView addImageView; + @BindView(R.id.caseReasonView) + EditText caseReasonView; + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private String changeState; + private String caseReason; + private String approvalResult; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private List largeClassBeans = new ArrayList<>(); + private List smallClassBeans = new ArrayList<>(); + private List realPaths = new ArrayList<>();//真实图片路径 + private List mediaList = new ArrayList<>();//上传到服务器的数据集 + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private CaseNextNodePresenterImpl caseNextNodePresenter; + private UploadImagePresenterImpl uploadImagePresenter; + private CaseHandlePresenterImpl caseHandlePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handle_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseNextNodePresenter = new CaseNextNodePresenterImpl(this); + uploadImagePresenter = new UploadImagePresenterImpl(this); + caseHandlePresenter = new CaseHandlePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @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()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + caseStartTimeView.setText(data.getCreateTime()); + caseEndTimeView.setText(data.getNodeLimittime()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeTypeView.setText("无小类"); + } else { + caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 + } + caseSmallTypeView.setText("请选择"); + } + } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallTypeView.setText("无小类"); + } else { + caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 + } + } + } + + @Override + public void obtainNextNodeData(CaseNextNodeBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处理结果"); + for (CaseNextNodeBean.DataBean dataBean : dataBeans) { + 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(); + + CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); + caseHandleResultView.setText(dataBean.getNextOperation()); + changeState = String.valueOf(dataBean.getNextState()); + approvalResult = dataBean.getApprovalResult(); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseClassLayout: + 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(); + + caseTypeView.setText(tag); + //获取案卷大类 + caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseLargeTypeView.setText(tag); + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseSmallTypeView.setText(tag); + } + }).build().show(); + } + } + break; + case R.id.caseHandleResultLayout: + caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); + break; + case R.id.addImageView: + new QMUIDialog.MenuDialogBuilder(this) + .addItem("相册中选取", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //选图 + selectPicture(); + } + }) + .addItem("相机拍照", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //拍照 + takePicture(); + } + }) + .create().show(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String handleResult = caseHandleResultView.getText().toString(); + if (handleResult.equals("请选择")) { + ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); + return; + } + if (handleResult.equals("处理完成")) { + //选择处理完成时,处理图片必传。至少一张,最多两张 + if (mediaList.size() < 1 || mediaList.size() > 2) { + ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); + return; + } + } + if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { + caseReason = caseReasonView.getText().toString(); + if (TextUtils.isEmpty(caseReason)) { + ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); + return; + } + } + caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), + changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); + } + + private void selectPicture() { + PictureSelector.create(this) + .openGallery(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(2) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.CHOOSE_REQUEST); + } + + private void takePicture() { + PictureSelector.create(this) + .openCamera(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(1) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.REQUEST_CAMERA); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == RESULT_OK) { + switch (requestCode) { + case PictureConfig.CHOOSE_REQUEST: + List selectList = PictureSelector.obtainMultipleResult(data); + for (LocalMedia media : selectList) { + String mediaCompressPath = media.getCompressPath(); + uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); + } + break; + case PictureConfig.REQUEST_CAMERA: + LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); + uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); + break; + default: + break; + } + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUploadAudioResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainUploadImageResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + PictureFileUtils.deleteAllCacheDirFile(this); + /** + * 系统路径static拼接图片返回路径 + * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg + */ + //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg + String url = resultBean.getData(); + mediaList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(realPaths); + caseHandleRecyclerView.setVisibility(View.VISIBLE); + caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); + caseHandleRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(realPaths.get(position)); + } + }); + //删除按钮点击事件 + imageAdapter.setDeleteView(true); + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } + } + + @Override + public void obtainUploadVideoResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainCaseHandleResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseNextNodePresenter != null) { + caseNextNodePresenter.disposeRetrofitRequest(); + } + if (uploadImagePresenter != null) { + uploadImagePresenter.disposeRetrofitRequest(); + } + if (caseHandlePresenter != null) { + caseHandlePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java deleted file mode 100644 index bd187c5..0000000 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java +++ /dev/null @@ -1,500 +0,0 @@ -package com.casic.dcms.ui; - -import android.content.DialogInterface; -import android.content.Intent; -import android.text.TextUtils; -import android.view.View; -import android.widget.EditText; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.Nullable; -import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.adapter.ImageRecycleViewAdapter; -import com.casic.dcms.base.BaseCaseActivity; -import com.casic.dcms.bean.ActionResultBean; -import com.casic.dcms.bean.CaseDetailBean; -import com.casic.dcms.bean.CaseLargeClassBean; -import com.casic.dcms.bean.CaseNextNodeBean; -import com.casic.dcms.bean.CaseSmallClassBean; -import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; -import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; -import com.casic.dcms.mvp.view.ICaseDetailView; -import com.casic.dcms.mvp.view.ICaseHandleView; -import com.casic.dcms.mvp.view.ICaseLargeClassView; -import com.casic.dcms.mvp.view.ICaseNextNodeView; -import com.casic.dcms.mvp.view.ICaseSmallClassView; -import com.casic.dcms.mvp.view.IUploadFileView; -import com.casic.dcms.utils.FileUtils; -import com.casic.dcms.utils.GlideLoadEngine; -import com.casic.dcms.utils.ItemDecorationSpace; -import com.casic.dcms.utils.StringHelper; -import com.casic.dcms.utils.ToastHelper; -import com.luck.picture.lib.PictureSelector; -import com.luck.picture.lib.config.PictureConfig; -import com.luck.picture.lib.config.PictureMimeType; -import com.luck.picture.lib.entity.LocalMedia; -import com.luck.picture.lib.tools.PictureFileUtils; -import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; -import com.qmuiteam.qmui.widget.dialog.QMUIDialog; -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; - -import butterknife.BindView; -import butterknife.OnClick; - -public class CaseHandleOvertimeDetailActivity extends BaseCaseActivity implements View.OnClickListener, - ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, - ICaseHandleView { - - @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) - EditText casePlaceView; - @BindView(R.id.caseSituationView) - TextView caseSituationView; - @BindView(R.id.caseHandleView) - TextView caseHandleView; - @BindView(R.id.casePicRecyclerView) - RecyclerView casePicRecyclerView; - @BindView(R.id.caseStartTimeView) - TextView caseStartTimeView; - @BindView(R.id.caseEndTimeView) - TextView caseEndTimeView; - @BindView(R.id.caseHandleResultView) - TextView caseHandleResultView; - @BindView(R.id.caseHandleRecyclerView) - RecyclerView caseHandleRecyclerView; - @BindView(R.id.addImageView) - ImageView addImageView; - @BindView(R.id.caseReasonView) - EditText caseReasonView; - @BindView(R.id.submitButton) - QMUIRoundButton submitButton; - - private String id; - private String changeState; - private String caseReason; - private String approvalResult; - private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); - private List largeClassBeans = new ArrayList<>(); - private List smallClassBeans = new ArrayList<>(); - private List realPaths = new ArrayList<>();//真实图片路径 - private List mediaList = new ArrayList<>();//上传到服务器的数据集 - - private CaseDetailPresenterImpl caseDetailPresenter; - private CaseLargeClassPresenterImpl caseLargeClassPresenter; - private CaseSmallClassPresenterImpl caseSmallClassPresenter; - private CaseNextNodePresenterImpl caseNextNodePresenter; - private UploadImagePresenterImpl uploadImagePresenter; - private CaseHandlePresenterImpl caseHandlePresenter; - - private QMUITipDialog submitDialog; - - @Override - public int initLayoutView() { - return R.layout.activity_case_handle_overtime; - } - - @Override - protected String setTitleName() { - return "超时案卷"; - } - - @Override - public void initData() { - id = getIntent().getStringExtra("id"); - caseDetailPresenter = new CaseDetailPresenterImpl(this); - caseDetailPresenter.onReadyRetrofitRequest(id); - - caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); - caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); - caseNextNodePresenter = new CaseNextNodePresenterImpl(this); - uploadImagePresenter = new UploadImagePresenterImpl(this); - caseHandlePresenter = new CaseHandlePresenterImpl(this); - - submitDialog = new QMUITipDialog.Builder(this) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord("提交中,请稍后") - .create(); - } - - @Override - public void initEvent() { - submitButton.setChangeAlphaWhenPress(true); - } - - @Override - public void obtainCaseDetailData(CaseDetailBean resultBean) { - if (resultBean.isSuccess()) { - this.data = resultBean.getData().get(0); - caseTypeView.setText(data.getEorcName()); - caseLargeTypeView.setText(data.getCasetypeName()); - caseSmallTypeView.setText(data.getCasetypeDetailName()); - caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro()); - caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); - caseStartTimeView.setText(data.getCreateTime()); - caseEndTimeView.setText(data.getNodeLimittime()); - - String verifyImages = data.getFileIdVerify(); - if (!TextUtils.isEmpty(verifyImages)) { - List urls = new ArrayList<>(); - String[] split = verifyImages.split(","); - for (String s : split) { - urls.add(StringHelper.appendCompleteURL(s)); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(urls); - casePicRecyclerView.setVisibility(View.VISIBLE); - casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); - casePicRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(urls.get(position)); - } - }); - imageAdapter.setDeleteView(false); - } - } - } - - private void showBigImage(String path) { - Intent intent = new Intent(this, BigPictureActivity.class); - intent.putExtra("path", path); - startActivity(intent); - } - - @Override - public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { - if (largeClassBean.isSuccess()) { - //设置大类数据 - this.largeClassBeans = largeClassBean.getData(); - if (largeClassBeans.size() == 0) { - caseLargeTypeView.setText("无小类"); - } else { - caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 - } - caseSmallTypeView.setText("请选择"); - } - } - - @Override - public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { - if (smallClassBean.isSuccess()) { - //设置大类数据 - this.smallClassBeans = smallClassBean.getData(); - if (smallClassBeans.size() == 0) { - caseSmallTypeView.setText("无小类"); - } else { - caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 - } - } - } - - @Override - public void obtainNextNodeData(CaseNextNodeBean resultBean) { - if (resultBean.isSuccess()) { - List dataBeans = resultBean.getData(); - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("处理结果"); - for (CaseNextNodeBean.DataBean dataBean : dataBeans) { - 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(); - - CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); - caseHandleResultView.setText(dataBean.getNextOperation()); - changeState = String.valueOf(dataBean.getNextState()); - approvalResult = dataBean.getApprovalResult(); - } - }).build().show(); - } else { - ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); - } - } - - @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) - @Override - public void onClick(View v) { - switch (v.getId()) { - case R.id.caseClassLayout: - 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(); - - caseTypeView.setText(tag); - //获取案卷大类 - caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); - } - }).build().show(); - break; - case R.id.caseLargeClassLayout: - if (largeClassBeans != null) { - if (largeClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷大类"); - for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { - sheetBuilder.addItem(dataBean.getTypeName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseLargeTypeView.setText(tag); - //获取案卷小类 - CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); - String typeId = dataBean.getId(); - caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); - } - }).build().show(); - } - } - break; - case R.id.caseSmallClassLayout: - if (smallClassBeans != null) { - if (smallClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷小类"); - for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { - sheetBuilder.addItem(dataBean.getTypeDetailName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseSmallTypeView.setText(tag); - } - }).build().show(); - } - } - break; - case R.id.caseHandleResultLayout: - caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); - break; - case R.id.addImageView: - new QMUIDialog.MenuDialogBuilder(this) - .addItem("相册中选取", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //选图 - selectPicture(); - } - }) - .addItem("相机拍照", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //拍照 - takePicture(); - } - }) - .create().show(); - break; - case R.id.submitButton: - submitCase();//案卷提交 - break; - default: - break; - } - } - - private void submitCase() { - String handleResult = caseHandleResultView.getText().toString(); - if (handleResult.equals("请选择")) { - ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); - return; - } - if (handleResult.equals("处理完成")) { - //选择处理完成时,处理图片必传。至少一张,最多两张 - if (mediaList.size() < 1 || mediaList.size() > 2) { - ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); - return; - } - } - if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { - caseReason = caseReasonView.getText().toString(); - if (TextUtils.isEmpty(caseReason)) { - ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); - return; - } - } - caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), - changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); - } - - private void selectPicture() { - PictureSelector.create(this) - .openGallery(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(2) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.CHOOSE_REQUEST); - } - - private void takePicture() { - PictureSelector.create(this) - .openCamera(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(1) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.REQUEST_CAMERA); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if (resultCode == RESULT_OK) { - switch (requestCode) { - case PictureConfig.CHOOSE_REQUEST: - List selectList = PictureSelector.obtainMultipleResult(data); - for (LocalMedia media : selectList) { - String mediaCompressPath = media.getCompressPath(); - uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); - } - break; - case PictureConfig.REQUEST_CAMERA: - LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); - uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); - break; - default: - break; - } - } - } - - @Override - public void showProgress() { - submitDialog.show(); - } - - @Override - public void hideProgress() { - submitDialog.hide(); - } - - @Override - public void obtainUploadAudioResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainUploadImageResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - PictureFileUtils.deleteAllCacheDirFile(this); - /** - * 系统路径static拼接图片返回路径 - * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg - */ - //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String url = resultBean.getData(); - mediaList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(realPaths); - caseHandleRecyclerView.setVisibility(View.VISIBLE); - caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); - caseHandleRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(realPaths.get(position)); - } - }); - //删除按钮点击事件 - imageAdapter.setDeleteView(true); - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); - } - } - }); - } - } - - @Override - public void obtainUploadVideoResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainCaseHandleResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); - finish(); - } else { - ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); - } - } - - @Override - protected void onDestroy() { - super.onDestroy(); - if (caseDetailPresenter != null) { - caseDetailPresenter.disposeRetrofitRequest(); - } - if (caseLargeClassPresenter != null) { - caseLargeClassPresenter.disposeRetrofitRequest(); - } - if (caseSmallClassPresenter != null) { - caseSmallClassPresenter.disposeRetrofitRequest(); - } - if (caseNextNodePresenter != null) { - caseNextNodePresenter.disposeRetrofitRequest(); - } - if (uploadImagePresenter != null) { - uploadImagePresenter.disposeRetrofitRequest(); - } - if (caseHandlePresenter != null) { - caseHandlePresenter.disposeRetrofitRequest(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java new file mode 100644 index 0000000..5ea5403 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -0,0 +1,145 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { + + @BindView(R.id.detailTopLayout) + QMUITopBarLayout detailTopLayout; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @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; + + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private CaseDetailPresenterImpl caseDetailPresenter; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handled_detail; + } + + @Override + protected void setupTopBarLayout() { + detailTopLayout.setTitle("已办案卷").setTextColor(ContextCompat.getColor(this, R.color.white)); + detailTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + detailTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + String id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + } + + @Override + public void initEvent() { + + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseHandleStatusView.setText(data.getCaseStateName()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @OnClick(R.id.handleLayout) + @Override + public void onClick(View v) { + if (v.getId() == R.id.handleLayout) { + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java new file mode 100644 index 0000000..3b2d3d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -0,0 +1,228 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.TextView; + +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.presenter.CaseCommonSentencePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseUpdateSupervisePresenterImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseOverTimeView) + TextView caseOverTimeView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @BindView(R.id.casePlaceView) + EditText casePlaceView; + @BindView(R.id.caseDescriptionView) + TextView caseDescriptionView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseHandleResultView) + EditText caseHandleResultView; + @BindView(R.id.caseCommonSentenceView) + TextView caseCommonSentenceView; + + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseCommonSentencePresenterImpl commonSentencePresenter; + private CaseUpdateSupervisePresenterImpl updateSupervisePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_todo_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + commonSentencePresenter = new CaseCommonSentencePresenterImpl(this); + updateSupervisePresenter = new CaseUpdateSupervisePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @Override + public void initEvent() { + + } + + @OnClick({R.id.caseHandleLayout, R.id.caseCommonSentenceLayout, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseHandleLayout: + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + break; + case R.id.caseCommonSentenceLayout: + commonSentencePresenter.onReadyRetrofitRequest(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String remarks = caseHandleResultView.getText().toString(); + if (TextUtils.isEmpty(remarks)) { + ToastHelper.showToast("督办意见不能为空", ToastHelper.WARING); + return; + } + updateSupervisePresenter.onReadyRetrofitRequest(id, remarks); + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseOverTimeView.setText(data.getNodeLimittime()); + caseHandleStatusView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + casePlaceView.setText(data.getFieldintro()); + caseDescriptionView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainCommonSentenceData(CommonSentenceBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("常用语句"); + for (CommonSentenceBean.DataBean dataBean : dataBeans) { + 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(); + + CommonSentenceBean.DataBean dataBean = dataBeans.get(position); + caseCommonSentenceView.setText(dataBean.getName()); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUpdateSuperviseData(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷督办提交成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷督办提交失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (commonSentencePresenter != null) { + commonSentencePresenter.disposeRetrofitRequest(); + } + if (updateSupervisePresenter != null) { + updateSupervisePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 3060e1b..af6a9fe 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -191,7 +191,7 @@ caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); - caseHandleView.setText(data.getUrgeRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); caseSituationView.setText(data.getDescription()); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index 7816221..3989633 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -28,6 +28,7 @@ import com.casic.dcms.ui.OvertimeCaseActivity; import com.casic.dcms.ui.PersonOnlineActivity; import com.casic.dcms.ui.UrgentCaseActivity; +import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.StringHelper; import com.qmuiteam.qmui.widget.QMUIRadiusImageView; @@ -69,62 +70,12 @@ @Override protected void initEvent() { - HomeRecycleAdapter adapter = new HomeRecycleAdapter(context); - homeRecyclerView.setLayoutManager(new GridLayoutManager(context, 3)); - homeRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - Intent intent = new Intent(); - switch (position) { - case 0: - intent.setClass(context, CaseUploadActivity.class); - break; - case 1: - intent.setClass(context, CaseUploadQuicklyActivity.class); - break; - case 2: - intent.setClass(context, FivePackageUploadActivity.class); - break; - case 3: - intent.setClass(context, CaseVerifyActivity.class); - break; - case 4: - intent.setClass(context, CaseCheckActivity.class); - break; - case 5: - intent.setClass(context, CaseHandleActivity.class); - break; - case 6: - intent.setClass(context, UrgentCaseActivity.class); - break; - case 7: - intent.setClass(context, OvertimeCaseActivity.class); - break; - case 8: - intent.setClass(context, DataAnalysisActivity.class); - break; - case 9: - intent.setClass(context, PersonOnlineActivity.class); - break; - case 10: - intent.setClass(context, CaseSearchActivity.class); - break; - case 11: - intent.setClass(context, MapWatchViewActivity.class); - break; - default: - break; - } - startActivity(intent); - } - }); + } @SuppressLint("SetTextI18n") @Override public void obtainUserData(UserBean userBean) { -// Log.d(TAG, "obtainUserData: " + new Gson().toJson(userBean)); if (userBean.isSuccess()) { //QMUIRadiusImageView无法动态设置圆形头像,借助Glide实现圆形头像 Glide.with(this).load(R.mipmap.app_logo).apply(RequestOptions.circleCropTransform()).into(userIconView); @@ -137,6 +88,121 @@ StringHelper.saveUserPhone(data.getPhone()); StringHelper.saveUserDept(data.getDeptName()); StringHelper.saveUserDeptId(data.getDeptId()); + + //权限控制 + String roleTip = data.getRoleTips().get(0); + HomeRecycleAdapter adapter = new HomeRecycleAdapter(context); + homeRecyclerView.setLayoutManager(new GridLayoutManager(context, 3)); + switch (roleTip) { + case "supervisor": + //All + adapter.setItemData(Constant.ALL_ICONS, Constant.ALL_ITEMS); + adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { + @Override + public void onClick(int position) { + Intent intent = new Intent(); + switch (position) { + case 0: + intent.setClass(context, CaseUploadActivity.class); + break; + case 1: + intent.setClass(context, CaseUploadQuicklyActivity.class); + break; + case 2: + intent.setClass(context, FivePackageUploadActivity.class); + break; + case 3: + intent.setClass(context, CaseVerifyActivity.class); + break; + case 4: + intent.setClass(context, CaseCheckActivity.class); + break; + case 5: + intent.setClass(context, CaseHandleActivity.class); + break; + case 6: + intent.setClass(context, UrgentCaseActivity.class); + break; + case 7: + intent.setClass(context, OvertimeCaseActivity.class); + break; + case 8: + intent.setClass(context, DataAnalysisActivity.class); + break; + case 9: + intent.setClass(context, PersonOnlineActivity.class); + break; + case 10: + intent.setClass(context, CaseSearchActivity.class); + break; + case 11: + intent.setClass(context, MapWatchViewActivity.class); + break; + default: + break; + } + startActivity(intent); + } + }); + break; +// case "process": +// //案卷处理、案卷查询 +// adapter.setItemData(Constant.PROCESS_ICONS, Constant.PROCESS_ITEMS); +// adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { +// @Override +// public void onClick(int position) { +// Intent intent = new Intent(); +// switch (position) { +// case 0: +// intent.setClass(context, CaseHandleActivity.class); +// break; +// case 1: +// intent.setClass(context, CaseSearchActivity.class); +// break; +// default: +// break; +// } +// startActivity(intent); +// } +// }); +// break; +// case "leader": +// //案卷上报、紧急要件、超时督办、统计分析、在岗人员、案卷查询 +// adapter.setItemData(Constant.LEADER_ICONS, Constant.LEADER_ITEMS); +// adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { +// @Override +// public void onClick(int position) { +// Intent intent = new Intent(); +// switch (position) { +// case 0: +// intent.setClass(context, CaseUploadActivity.class); +// break; +// case 1: +// intent.setClass(context, UrgentCaseActivity.class); +// break; +// case 2: +// intent.setClass(context, OvertimeCaseActivity.class); +// break; +// case 3: +// intent.setClass(context, DataAnalysisActivity.class); +// break; +// case 4: +// intent.setClass(context, PersonOnlineActivity.class); +// break; +// case 5: +// intent.setClass(context, CaseSearchActivity.class); +// break; +// default: +// break; +// } +// startActivity(intent); +// } +// }); +// break; + default: + break; + } + homeRecyclerView.setAdapter(adapter); } } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java index 430f8be..fa2df7a 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandledBean; import com.casic.dcms.mvp.presenter.CaseHandledListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandledListView; +import com.casic.dcms.ui.CaseHandledDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -128,10 +130,9 @@ adapter.setOnItemClickListener(new CaseHandledAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandledDetailActivity.class); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java index 502c288..05306fe 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -130,10 +132,10 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "待办案卷"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f6ac20a..2070c95 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -67,12 +67,14 @@ - + - + + + { private Context context; + private List iconData = new ArrayList<>(); + private List itemData = new ArrayList<>(); public HomeRecycleAdapter(Context context) { this.context = context; } + public void setItemData(@Nullable List icons, @Nullable List items) { + this.iconData = icons; + this.itemData = items; + } + @NonNull @Override public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -30,7 +40,7 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - holder.bindView(context, position); + holder.bindView(position); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override @@ -43,7 +53,7 @@ @Override public int getItemCount() { - return Constant.ITEMS.size(); + return itemData.size(); } private OnGridItemClickListener clickListener; @@ -56,7 +66,7 @@ this.clickListener = onGridItemClickListener; } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { private ImageView imageView; private TextView textView; @@ -67,9 +77,9 @@ textView = itemView.findViewById(R.id.textView); } - void bindView(Context context, int position) { - imageView.setBackgroundResource(Constant.ICONS.get(position)); - textView.setText(Constant.ITEMS.get(position)); + void bindView(int position) { + imageView.setBackgroundResource(iconData.get(position)); + textView.setText(itemData.get(position)); } } } diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index b9c4615..d9b10e0 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; import java.util.ArrayList; @@ -62,7 +63,10 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - Glide.with(context).load(mediaList.get(position)).into(holder.imageView); + Glide.with(context) + .load(mediaList.get(position)) + .apply(new RequestOptions().error(R.drawable.ic_load_error)) + .into(holder.imageView); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/casic/dcms/base/BaseActivity.java b/app/src/main/java/com/casic/dcms/base/BaseActivity.java index caf0356..2ca87fe 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseActivity.java +++ b/app/src/main/java/com/casic/dcms/base/BaseActivity.java @@ -17,8 +17,8 @@ setContentView(initLayoutView()); ButterKnife.bind(this); QMUIStatusBarHelper.translucent(this);//沉浸式状态栏 - setupTopBarLayout(); initData(); + setupTopBarLayout(); initEvent(); } diff --git a/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java new file mode 100644 index 0000000..8de58a4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java @@ -0,0 +1,78 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CommonSentenceBean { + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 请及时处理 + * id : 156 + * value : 请及时处理 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java new file mode 100644 index 0000000..5258d89 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CommonSentenceBean; +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 CaseCommonSentenceModelImpl implements ICaseCommonSentenceModel { + + private OnGetCommonSentenceListener sentenceListener; + + public CaseCommonSentenceModelImpl(OnGetCommonSentenceListener commonSentenceListener) { + this.sentenceListener = commonSentenceListener; + } + + public interface OnGetCommonSentenceListener { + void onSuccess(CommonSentenceBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCommonSentenceResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (sentenceListener != null) { + sentenceListener.onFailure(e); + } + } + + @Override + public void onNext(CommonSentenceBean resultBean) { + if (resultBean != null) { + sentenceListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java new file mode 100644 index 0000000..a8cb3fc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java @@ -0,0 +1,53 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseUpdateSuperviseModelImpl implements ICaseUpdateSuperviseModel { + + private OnUpdateSuperviseListener listener; + + public CaseUpdateSuperviseModelImpl(OnUpdateSuperviseListener updateSuperviseListener) { + this.listener = updateSuperviseListener; + } + + /** + * 数据回调接口 + */ + public interface OnUpdateSuperviseListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String superviseRemarks) { + Observable observable = RetrofitServiceManager.getUpdateSuperviseResult(id, superviseRemarks); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java new file mode 100644 index 0000000..263ef6c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseCommonSentenceModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java new file mode 100644 index 0000000..518d602 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseUpdateSuperviseModel { + Subscription sendRetrofitRequest(String id, String superviseRemarks); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java new file mode 100644 index 0000000..6b65f13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseCommonSentenceModelImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; + +public class CaseCommonSentencePresenterImpl extends BasePresenter implements ICaseCommonSentencePresenter, + CaseCommonSentenceModelImpl.OnGetCommonSentenceListener { + + private ICaseCommonSentenceView view; + private CaseCommonSentenceModelImpl actionModel; + + public CaseCommonSentencePresenterImpl(ICaseCommonSentenceView commonSentenceView) { + this.view = commonSentenceView; + actionModel = new CaseCommonSentenceModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CommonSentenceBean resultBean) { + view.obtainCommonSentenceData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java new file mode 100644 index 0000000..66e1f44 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseUpdateSuperviseModelImpl; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; + +public class CaseUpdateSupervisePresenterImpl extends BasePresenter implements ICaseUpdateSupervisePresenter, + CaseUpdateSuperviseModelImpl.OnUpdateSuperviseListener { + + private ICaseUpdateSuperviseView view; + private CaseUpdateSuperviseModelImpl actionModel; + + public CaseUpdateSupervisePresenterImpl(ICaseUpdateSuperviseView updateSuperviseView) { + this.view = updateSuperviseView; + actionModel = new CaseUpdateSuperviseModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String superviseRemarks) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, superviseRemarks)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainUpdateSuperviseData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java new file mode 100644 index 0000000..1f8bd09 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseCommonSentencePresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java new file mode 100644 index 0000000..f61f9b2 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseUpdateSupervisePresenter { + void onReadyRetrofitRequest(String id, String superviseRemarks); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java new file mode 100644 index 0000000..9c7b08b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CommonSentenceBean; + +public interface ICaseCommonSentenceView { + void obtainCommonSentenceData(CommonSentenceBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java new file mode 100644 index 0000000..10bcf5a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICaseUpdateSuperviseView { + void showProgress(); + + void hideProgress(); + + void obtainUpdateSuperviseData(ActionResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java index ad70b7a..9143db8 100644 --- a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.ui; +import android.view.View; + +import androidx.core.content.ContextCompat; + import com.bumptech.glide.Glide; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.luck.picture.lib.photoview.PhotoView; -import com.qmuiteam.qmui.util.QMUIStatusBarHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; import butterknife.BindView; @@ -15,6 +19,8 @@ **/ public class BigPictureActivity extends BaseActivity { + @BindView(R.id.imageTopLayout) + QMUITopBarLayout imageTopLayout; @BindView(R.id.photoView) PhotoView photoView; @@ -25,37 +31,24 @@ @Override protected void setupTopBarLayout() { - QMUIStatusBarHelper.setStatusBarLightMode(this); + imageTopLayout.setTitle("查看大图").setTextColor(ContextCompat.getColor(this, R.color.white)); + imageTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + imageTopLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); } @Override public void initData() { -// String mediaJson = getIntent().getStringExtra("mediaJson"); -// -// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() { -// }.getType()); -// -// list = new ArrayList<>(); -// assert mediaList != null; -// for (LocalMedia media : mediaList) { -// list.add(media.getRealPath()); -// } String path = getIntent().getStringExtra("path"); Glide.with(this).load(path).into(photoView); } @Override public void initEvent() { -// //轮播图 -// bigImageBanner.setImageLoader(new ImageLoader() { -// -// @Override -// public void displayImage(Context context, Object path, ImageView imageView) { -// Glide.with(context).load(path).into(imageView); -// } -// }); -// bigImageBanner.isAutoPlay(false); -// bigImageBanner.setImages(list); -// bigImageBanner.start(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index 01a3807..7548cfc 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -329,7 +329,7 @@ caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java new file mode 100644 index 0000000..d4dba38 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -0,0 +1,505 @@ +package com.casic.dcms.ui; + +import android.content.DialogInterface; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseNextNodeBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseHandleView; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseNextNodeView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.IUploadFileView; +import com.casic.dcms.utils.FileUtils; +import com.casic.dcms.utils.GlideLoadEngine; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.luck.picture.lib.PictureSelector; +import com.luck.picture.lib.config.PictureConfig; +import com.luck.picture.lib.config.PictureMimeType; +import com.luck.picture.lib.entity.LocalMedia; +import com.luck.picture.lib.tools.PictureFileUtils; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, + ICaseHandleView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @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) + EditText casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.caseHandleView) + TextView caseHandleView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseStartTimeView) + TextView caseStartTimeView; + @BindView(R.id.caseEndTimeView) + TextView caseEndTimeView; + @BindView(R.id.caseHandleResultView) + TextView caseHandleResultView; + @BindView(R.id.caseHandleRecyclerView) + RecyclerView caseHandleRecyclerView; + @BindView(R.id.addImageView) + ImageView addImageView; + @BindView(R.id.caseReasonView) + EditText caseReasonView; + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private String changeState; + private String caseReason; + private String approvalResult; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private List largeClassBeans = new ArrayList<>(); + private List smallClassBeans = new ArrayList<>(); + private List realPaths = new ArrayList<>();//真实图片路径 + private List mediaList = new ArrayList<>();//上传到服务器的数据集 + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private CaseNextNodePresenterImpl caseNextNodePresenter; + private UploadImagePresenterImpl uploadImagePresenter; + private CaseHandlePresenterImpl caseHandlePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handle_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseNextNodePresenter = new CaseNextNodePresenterImpl(this); + uploadImagePresenter = new UploadImagePresenterImpl(this); + caseHandlePresenter = new CaseHandlePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @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()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + caseStartTimeView.setText(data.getCreateTime()); + caseEndTimeView.setText(data.getNodeLimittime()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeTypeView.setText("无小类"); + } else { + caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 + } + caseSmallTypeView.setText("请选择"); + } + } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallTypeView.setText("无小类"); + } else { + caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 + } + } + } + + @Override + public void obtainNextNodeData(CaseNextNodeBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处理结果"); + for (CaseNextNodeBean.DataBean dataBean : dataBeans) { + 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(); + + CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); + caseHandleResultView.setText(dataBean.getNextOperation()); + changeState = String.valueOf(dataBean.getNextState()); + approvalResult = dataBean.getApprovalResult(); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseClassLayout: + 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(); + + caseTypeView.setText(tag); + //获取案卷大类 + caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseLargeTypeView.setText(tag); + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseSmallTypeView.setText(tag); + } + }).build().show(); + } + } + break; + case R.id.caseHandleResultLayout: + caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); + break; + case R.id.addImageView: + new QMUIDialog.MenuDialogBuilder(this) + .addItem("相册中选取", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //选图 + selectPicture(); + } + }) + .addItem("相机拍照", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //拍照 + takePicture(); + } + }) + .create().show(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String handleResult = caseHandleResultView.getText().toString(); + if (handleResult.equals("请选择")) { + ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); + return; + } + if (handleResult.equals("处理完成")) { + //选择处理完成时,处理图片必传。至少一张,最多两张 + if (mediaList.size() < 1 || mediaList.size() > 2) { + ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); + return; + } + } + if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { + caseReason = caseReasonView.getText().toString(); + if (TextUtils.isEmpty(caseReason)) { + ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); + return; + } + } + caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), + changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); + } + + private void selectPicture() { + PictureSelector.create(this) + .openGallery(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(2) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.CHOOSE_REQUEST); + } + + private void takePicture() { + PictureSelector.create(this) + .openCamera(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(1) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.REQUEST_CAMERA); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == RESULT_OK) { + switch (requestCode) { + case PictureConfig.CHOOSE_REQUEST: + List selectList = PictureSelector.obtainMultipleResult(data); + for (LocalMedia media : selectList) { + String mediaCompressPath = media.getCompressPath(); + uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); + } + break; + case PictureConfig.REQUEST_CAMERA: + LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); + uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); + break; + default: + break; + } + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUploadAudioResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainUploadImageResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + PictureFileUtils.deleteAllCacheDirFile(this); + /** + * 系统路径static拼接图片返回路径 + * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg + */ + //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg + String url = resultBean.getData(); + mediaList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(realPaths); + caseHandleRecyclerView.setVisibility(View.VISIBLE); + caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); + caseHandleRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(realPaths.get(position)); + } + }); + //删除按钮点击事件 + imageAdapter.setDeleteView(true); + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } + } + + @Override + public void obtainUploadVideoResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainCaseHandleResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseNextNodePresenter != null) { + caseNextNodePresenter.disposeRetrofitRequest(); + } + if (uploadImagePresenter != null) { + uploadImagePresenter.disposeRetrofitRequest(); + } + if (caseHandlePresenter != null) { + caseHandlePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java deleted file mode 100644 index bd187c5..0000000 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java +++ /dev/null @@ -1,500 +0,0 @@ -package com.casic.dcms.ui; - -import android.content.DialogInterface; -import android.content.Intent; -import android.text.TextUtils; -import android.view.View; -import android.widget.EditText; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.Nullable; -import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.adapter.ImageRecycleViewAdapter; -import com.casic.dcms.base.BaseCaseActivity; -import com.casic.dcms.bean.ActionResultBean; -import com.casic.dcms.bean.CaseDetailBean; -import com.casic.dcms.bean.CaseLargeClassBean; -import com.casic.dcms.bean.CaseNextNodeBean; -import com.casic.dcms.bean.CaseSmallClassBean; -import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; -import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; -import com.casic.dcms.mvp.view.ICaseDetailView; -import com.casic.dcms.mvp.view.ICaseHandleView; -import com.casic.dcms.mvp.view.ICaseLargeClassView; -import com.casic.dcms.mvp.view.ICaseNextNodeView; -import com.casic.dcms.mvp.view.ICaseSmallClassView; -import com.casic.dcms.mvp.view.IUploadFileView; -import com.casic.dcms.utils.FileUtils; -import com.casic.dcms.utils.GlideLoadEngine; -import com.casic.dcms.utils.ItemDecorationSpace; -import com.casic.dcms.utils.StringHelper; -import com.casic.dcms.utils.ToastHelper; -import com.luck.picture.lib.PictureSelector; -import com.luck.picture.lib.config.PictureConfig; -import com.luck.picture.lib.config.PictureMimeType; -import com.luck.picture.lib.entity.LocalMedia; -import com.luck.picture.lib.tools.PictureFileUtils; -import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; -import com.qmuiteam.qmui.widget.dialog.QMUIDialog; -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; - -import butterknife.BindView; -import butterknife.OnClick; - -public class CaseHandleOvertimeDetailActivity extends BaseCaseActivity implements View.OnClickListener, - ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, - ICaseHandleView { - - @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) - EditText casePlaceView; - @BindView(R.id.caseSituationView) - TextView caseSituationView; - @BindView(R.id.caseHandleView) - TextView caseHandleView; - @BindView(R.id.casePicRecyclerView) - RecyclerView casePicRecyclerView; - @BindView(R.id.caseStartTimeView) - TextView caseStartTimeView; - @BindView(R.id.caseEndTimeView) - TextView caseEndTimeView; - @BindView(R.id.caseHandleResultView) - TextView caseHandleResultView; - @BindView(R.id.caseHandleRecyclerView) - RecyclerView caseHandleRecyclerView; - @BindView(R.id.addImageView) - ImageView addImageView; - @BindView(R.id.caseReasonView) - EditText caseReasonView; - @BindView(R.id.submitButton) - QMUIRoundButton submitButton; - - private String id; - private String changeState; - private String caseReason; - private String approvalResult; - private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); - private List largeClassBeans = new ArrayList<>(); - private List smallClassBeans = new ArrayList<>(); - private List realPaths = new ArrayList<>();//真实图片路径 - private List mediaList = new ArrayList<>();//上传到服务器的数据集 - - private CaseDetailPresenterImpl caseDetailPresenter; - private CaseLargeClassPresenterImpl caseLargeClassPresenter; - private CaseSmallClassPresenterImpl caseSmallClassPresenter; - private CaseNextNodePresenterImpl caseNextNodePresenter; - private UploadImagePresenterImpl uploadImagePresenter; - private CaseHandlePresenterImpl caseHandlePresenter; - - private QMUITipDialog submitDialog; - - @Override - public int initLayoutView() { - return R.layout.activity_case_handle_overtime; - } - - @Override - protected String setTitleName() { - return "超时案卷"; - } - - @Override - public void initData() { - id = getIntent().getStringExtra("id"); - caseDetailPresenter = new CaseDetailPresenterImpl(this); - caseDetailPresenter.onReadyRetrofitRequest(id); - - caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); - caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); - caseNextNodePresenter = new CaseNextNodePresenterImpl(this); - uploadImagePresenter = new UploadImagePresenterImpl(this); - caseHandlePresenter = new CaseHandlePresenterImpl(this); - - submitDialog = new QMUITipDialog.Builder(this) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord("提交中,请稍后") - .create(); - } - - @Override - public void initEvent() { - submitButton.setChangeAlphaWhenPress(true); - } - - @Override - public void obtainCaseDetailData(CaseDetailBean resultBean) { - if (resultBean.isSuccess()) { - this.data = resultBean.getData().get(0); - caseTypeView.setText(data.getEorcName()); - caseLargeTypeView.setText(data.getCasetypeName()); - caseSmallTypeView.setText(data.getCasetypeDetailName()); - caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro()); - caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); - caseStartTimeView.setText(data.getCreateTime()); - caseEndTimeView.setText(data.getNodeLimittime()); - - String verifyImages = data.getFileIdVerify(); - if (!TextUtils.isEmpty(verifyImages)) { - List urls = new ArrayList<>(); - String[] split = verifyImages.split(","); - for (String s : split) { - urls.add(StringHelper.appendCompleteURL(s)); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(urls); - casePicRecyclerView.setVisibility(View.VISIBLE); - casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); - casePicRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(urls.get(position)); - } - }); - imageAdapter.setDeleteView(false); - } - } - } - - private void showBigImage(String path) { - Intent intent = new Intent(this, BigPictureActivity.class); - intent.putExtra("path", path); - startActivity(intent); - } - - @Override - public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { - if (largeClassBean.isSuccess()) { - //设置大类数据 - this.largeClassBeans = largeClassBean.getData(); - if (largeClassBeans.size() == 0) { - caseLargeTypeView.setText("无小类"); - } else { - caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 - } - caseSmallTypeView.setText("请选择"); - } - } - - @Override - public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { - if (smallClassBean.isSuccess()) { - //设置大类数据 - this.smallClassBeans = smallClassBean.getData(); - if (smallClassBeans.size() == 0) { - caseSmallTypeView.setText("无小类"); - } else { - caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 - } - } - } - - @Override - public void obtainNextNodeData(CaseNextNodeBean resultBean) { - if (resultBean.isSuccess()) { - List dataBeans = resultBean.getData(); - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("处理结果"); - for (CaseNextNodeBean.DataBean dataBean : dataBeans) { - 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(); - - CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); - caseHandleResultView.setText(dataBean.getNextOperation()); - changeState = String.valueOf(dataBean.getNextState()); - approvalResult = dataBean.getApprovalResult(); - } - }).build().show(); - } else { - ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); - } - } - - @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) - @Override - public void onClick(View v) { - switch (v.getId()) { - case R.id.caseClassLayout: - 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(); - - caseTypeView.setText(tag); - //获取案卷大类 - caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); - } - }).build().show(); - break; - case R.id.caseLargeClassLayout: - if (largeClassBeans != null) { - if (largeClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷大类"); - for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { - sheetBuilder.addItem(dataBean.getTypeName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseLargeTypeView.setText(tag); - //获取案卷小类 - CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); - String typeId = dataBean.getId(); - caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); - } - }).build().show(); - } - } - break; - case R.id.caseSmallClassLayout: - if (smallClassBeans != null) { - if (smallClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷小类"); - for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { - sheetBuilder.addItem(dataBean.getTypeDetailName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseSmallTypeView.setText(tag); - } - }).build().show(); - } - } - break; - case R.id.caseHandleResultLayout: - caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); - break; - case R.id.addImageView: - new QMUIDialog.MenuDialogBuilder(this) - .addItem("相册中选取", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //选图 - selectPicture(); - } - }) - .addItem("相机拍照", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //拍照 - takePicture(); - } - }) - .create().show(); - break; - case R.id.submitButton: - submitCase();//案卷提交 - break; - default: - break; - } - } - - private void submitCase() { - String handleResult = caseHandleResultView.getText().toString(); - if (handleResult.equals("请选择")) { - ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); - return; - } - if (handleResult.equals("处理完成")) { - //选择处理完成时,处理图片必传。至少一张,最多两张 - if (mediaList.size() < 1 || mediaList.size() > 2) { - ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); - return; - } - } - if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { - caseReason = caseReasonView.getText().toString(); - if (TextUtils.isEmpty(caseReason)) { - ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); - return; - } - } - caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), - changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); - } - - private void selectPicture() { - PictureSelector.create(this) - .openGallery(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(2) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.CHOOSE_REQUEST); - } - - private void takePicture() { - PictureSelector.create(this) - .openCamera(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(1) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.REQUEST_CAMERA); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if (resultCode == RESULT_OK) { - switch (requestCode) { - case PictureConfig.CHOOSE_REQUEST: - List selectList = PictureSelector.obtainMultipleResult(data); - for (LocalMedia media : selectList) { - String mediaCompressPath = media.getCompressPath(); - uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); - } - break; - case PictureConfig.REQUEST_CAMERA: - LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); - uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); - break; - default: - break; - } - } - } - - @Override - public void showProgress() { - submitDialog.show(); - } - - @Override - public void hideProgress() { - submitDialog.hide(); - } - - @Override - public void obtainUploadAudioResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainUploadImageResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - PictureFileUtils.deleteAllCacheDirFile(this); - /** - * 系统路径static拼接图片返回路径 - * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg - */ - //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String url = resultBean.getData(); - mediaList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(realPaths); - caseHandleRecyclerView.setVisibility(View.VISIBLE); - caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); - caseHandleRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(realPaths.get(position)); - } - }); - //删除按钮点击事件 - imageAdapter.setDeleteView(true); - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); - } - } - }); - } - } - - @Override - public void obtainUploadVideoResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainCaseHandleResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); - finish(); - } else { - ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); - } - } - - @Override - protected void onDestroy() { - super.onDestroy(); - if (caseDetailPresenter != null) { - caseDetailPresenter.disposeRetrofitRequest(); - } - if (caseLargeClassPresenter != null) { - caseLargeClassPresenter.disposeRetrofitRequest(); - } - if (caseSmallClassPresenter != null) { - caseSmallClassPresenter.disposeRetrofitRequest(); - } - if (caseNextNodePresenter != null) { - caseNextNodePresenter.disposeRetrofitRequest(); - } - if (uploadImagePresenter != null) { - uploadImagePresenter.disposeRetrofitRequest(); - } - if (caseHandlePresenter != null) { - caseHandlePresenter.disposeRetrofitRequest(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java new file mode 100644 index 0000000..5ea5403 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -0,0 +1,145 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { + + @BindView(R.id.detailTopLayout) + QMUITopBarLayout detailTopLayout; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @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; + + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private CaseDetailPresenterImpl caseDetailPresenter; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handled_detail; + } + + @Override + protected void setupTopBarLayout() { + detailTopLayout.setTitle("已办案卷").setTextColor(ContextCompat.getColor(this, R.color.white)); + detailTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + detailTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + String id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + } + + @Override + public void initEvent() { + + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseHandleStatusView.setText(data.getCaseStateName()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @OnClick(R.id.handleLayout) + @Override + public void onClick(View v) { + if (v.getId() == R.id.handleLayout) { + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java new file mode 100644 index 0000000..3b2d3d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -0,0 +1,228 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.TextView; + +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.presenter.CaseCommonSentencePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseUpdateSupervisePresenterImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseOverTimeView) + TextView caseOverTimeView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @BindView(R.id.casePlaceView) + EditText casePlaceView; + @BindView(R.id.caseDescriptionView) + TextView caseDescriptionView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseHandleResultView) + EditText caseHandleResultView; + @BindView(R.id.caseCommonSentenceView) + TextView caseCommonSentenceView; + + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseCommonSentencePresenterImpl commonSentencePresenter; + private CaseUpdateSupervisePresenterImpl updateSupervisePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_todo_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + commonSentencePresenter = new CaseCommonSentencePresenterImpl(this); + updateSupervisePresenter = new CaseUpdateSupervisePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @Override + public void initEvent() { + + } + + @OnClick({R.id.caseHandleLayout, R.id.caseCommonSentenceLayout, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseHandleLayout: + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + break; + case R.id.caseCommonSentenceLayout: + commonSentencePresenter.onReadyRetrofitRequest(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String remarks = caseHandleResultView.getText().toString(); + if (TextUtils.isEmpty(remarks)) { + ToastHelper.showToast("督办意见不能为空", ToastHelper.WARING); + return; + } + updateSupervisePresenter.onReadyRetrofitRequest(id, remarks); + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseOverTimeView.setText(data.getNodeLimittime()); + caseHandleStatusView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + casePlaceView.setText(data.getFieldintro()); + caseDescriptionView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainCommonSentenceData(CommonSentenceBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("常用语句"); + for (CommonSentenceBean.DataBean dataBean : dataBeans) { + 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(); + + CommonSentenceBean.DataBean dataBean = dataBeans.get(position); + caseCommonSentenceView.setText(dataBean.getName()); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUpdateSuperviseData(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷督办提交成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷督办提交失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (commonSentencePresenter != null) { + commonSentencePresenter.disposeRetrofitRequest(); + } + if (updateSupervisePresenter != null) { + updateSupervisePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 3060e1b..af6a9fe 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -191,7 +191,7 @@ caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); - caseHandleView.setText(data.getUrgeRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); caseSituationView.setText(data.getDescription()); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index 7816221..3989633 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -28,6 +28,7 @@ import com.casic.dcms.ui.OvertimeCaseActivity; import com.casic.dcms.ui.PersonOnlineActivity; import com.casic.dcms.ui.UrgentCaseActivity; +import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.StringHelper; import com.qmuiteam.qmui.widget.QMUIRadiusImageView; @@ -69,62 +70,12 @@ @Override protected void initEvent() { - HomeRecycleAdapter adapter = new HomeRecycleAdapter(context); - homeRecyclerView.setLayoutManager(new GridLayoutManager(context, 3)); - homeRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - Intent intent = new Intent(); - switch (position) { - case 0: - intent.setClass(context, CaseUploadActivity.class); - break; - case 1: - intent.setClass(context, CaseUploadQuicklyActivity.class); - break; - case 2: - intent.setClass(context, FivePackageUploadActivity.class); - break; - case 3: - intent.setClass(context, CaseVerifyActivity.class); - break; - case 4: - intent.setClass(context, CaseCheckActivity.class); - break; - case 5: - intent.setClass(context, CaseHandleActivity.class); - break; - case 6: - intent.setClass(context, UrgentCaseActivity.class); - break; - case 7: - intent.setClass(context, OvertimeCaseActivity.class); - break; - case 8: - intent.setClass(context, DataAnalysisActivity.class); - break; - case 9: - intent.setClass(context, PersonOnlineActivity.class); - break; - case 10: - intent.setClass(context, CaseSearchActivity.class); - break; - case 11: - intent.setClass(context, MapWatchViewActivity.class); - break; - default: - break; - } - startActivity(intent); - } - }); + } @SuppressLint("SetTextI18n") @Override public void obtainUserData(UserBean userBean) { -// Log.d(TAG, "obtainUserData: " + new Gson().toJson(userBean)); if (userBean.isSuccess()) { //QMUIRadiusImageView无法动态设置圆形头像,借助Glide实现圆形头像 Glide.with(this).load(R.mipmap.app_logo).apply(RequestOptions.circleCropTransform()).into(userIconView); @@ -137,6 +88,121 @@ StringHelper.saveUserPhone(data.getPhone()); StringHelper.saveUserDept(data.getDeptName()); StringHelper.saveUserDeptId(data.getDeptId()); + + //权限控制 + String roleTip = data.getRoleTips().get(0); + HomeRecycleAdapter adapter = new HomeRecycleAdapter(context); + homeRecyclerView.setLayoutManager(new GridLayoutManager(context, 3)); + switch (roleTip) { + case "supervisor": + //All + adapter.setItemData(Constant.ALL_ICONS, Constant.ALL_ITEMS); + adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { + @Override + public void onClick(int position) { + Intent intent = new Intent(); + switch (position) { + case 0: + intent.setClass(context, CaseUploadActivity.class); + break; + case 1: + intent.setClass(context, CaseUploadQuicklyActivity.class); + break; + case 2: + intent.setClass(context, FivePackageUploadActivity.class); + break; + case 3: + intent.setClass(context, CaseVerifyActivity.class); + break; + case 4: + intent.setClass(context, CaseCheckActivity.class); + break; + case 5: + intent.setClass(context, CaseHandleActivity.class); + break; + case 6: + intent.setClass(context, UrgentCaseActivity.class); + break; + case 7: + intent.setClass(context, OvertimeCaseActivity.class); + break; + case 8: + intent.setClass(context, DataAnalysisActivity.class); + break; + case 9: + intent.setClass(context, PersonOnlineActivity.class); + break; + case 10: + intent.setClass(context, CaseSearchActivity.class); + break; + case 11: + intent.setClass(context, MapWatchViewActivity.class); + break; + default: + break; + } + startActivity(intent); + } + }); + break; +// case "process": +// //案卷处理、案卷查询 +// adapter.setItemData(Constant.PROCESS_ICONS, Constant.PROCESS_ITEMS); +// adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { +// @Override +// public void onClick(int position) { +// Intent intent = new Intent(); +// switch (position) { +// case 0: +// intent.setClass(context, CaseHandleActivity.class); +// break; +// case 1: +// intent.setClass(context, CaseSearchActivity.class); +// break; +// default: +// break; +// } +// startActivity(intent); +// } +// }); +// break; +// case "leader": +// //案卷上报、紧急要件、超时督办、统计分析、在岗人员、案卷查询 +// adapter.setItemData(Constant.LEADER_ICONS, Constant.LEADER_ITEMS); +// adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { +// @Override +// public void onClick(int position) { +// Intent intent = new Intent(); +// switch (position) { +// case 0: +// intent.setClass(context, CaseUploadActivity.class); +// break; +// case 1: +// intent.setClass(context, UrgentCaseActivity.class); +// break; +// case 2: +// intent.setClass(context, OvertimeCaseActivity.class); +// break; +// case 3: +// intent.setClass(context, DataAnalysisActivity.class); +// break; +// case 4: +// intent.setClass(context, PersonOnlineActivity.class); +// break; +// case 5: +// intent.setClass(context, CaseSearchActivity.class); +// break; +// default: +// break; +// } +// startActivity(intent); +// } +// }); +// break; + default: + break; + } + homeRecyclerView.setAdapter(adapter); } } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java index 430f8be..fa2df7a 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandledBean; import com.casic.dcms.mvp.presenter.CaseHandledListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandledListView; +import com.casic.dcms.ui.CaseHandledDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -128,10 +130,9 @@ adapter.setOnItemClickListener(new CaseHandledAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandledDetailActivity.class); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java index 502c288..05306fe 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -130,10 +132,10 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "待办案卷"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java index 25877de..743a092 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java @@ -17,7 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; -import com.casic.dcms.ui.CaseHandleOvertimeDetailActivity; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -133,7 +133,8 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { - Intent intent = new Intent(context, CaseHandleOvertimeDetailActivity.class); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "超时案卷"); intent.putExtra("id", dataBeans.get(position).getId()); startActivity(intent); } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f6ac20a..2070c95 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -67,12 +67,14 @@ - + - + + + { private Context context; + private List iconData = new ArrayList<>(); + private List itemData = new ArrayList<>(); public HomeRecycleAdapter(Context context) { this.context = context; } + public void setItemData(@Nullable List icons, @Nullable List items) { + this.iconData = icons; + this.itemData = items; + } + @NonNull @Override public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -30,7 +40,7 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - holder.bindView(context, position); + holder.bindView(position); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override @@ -43,7 +53,7 @@ @Override public int getItemCount() { - return Constant.ITEMS.size(); + return itemData.size(); } private OnGridItemClickListener clickListener; @@ -56,7 +66,7 @@ this.clickListener = onGridItemClickListener; } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { private ImageView imageView; private TextView textView; @@ -67,9 +77,9 @@ textView = itemView.findViewById(R.id.textView); } - void bindView(Context context, int position) { - imageView.setBackgroundResource(Constant.ICONS.get(position)); - textView.setText(Constant.ITEMS.get(position)); + void bindView(int position) { + imageView.setBackgroundResource(iconData.get(position)); + textView.setText(itemData.get(position)); } } } diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index b9c4615..d9b10e0 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; import java.util.ArrayList; @@ -62,7 +63,10 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - Glide.with(context).load(mediaList.get(position)).into(holder.imageView); + Glide.with(context) + .load(mediaList.get(position)) + .apply(new RequestOptions().error(R.drawable.ic_load_error)) + .into(holder.imageView); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/casic/dcms/base/BaseActivity.java b/app/src/main/java/com/casic/dcms/base/BaseActivity.java index caf0356..2ca87fe 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseActivity.java +++ b/app/src/main/java/com/casic/dcms/base/BaseActivity.java @@ -17,8 +17,8 @@ setContentView(initLayoutView()); ButterKnife.bind(this); QMUIStatusBarHelper.translucent(this);//沉浸式状态栏 - setupTopBarLayout(); initData(); + setupTopBarLayout(); initEvent(); } diff --git a/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java new file mode 100644 index 0000000..8de58a4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java @@ -0,0 +1,78 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CommonSentenceBean { + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 请及时处理 + * id : 156 + * value : 请及时处理 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java new file mode 100644 index 0000000..5258d89 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CommonSentenceBean; +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 CaseCommonSentenceModelImpl implements ICaseCommonSentenceModel { + + private OnGetCommonSentenceListener sentenceListener; + + public CaseCommonSentenceModelImpl(OnGetCommonSentenceListener commonSentenceListener) { + this.sentenceListener = commonSentenceListener; + } + + public interface OnGetCommonSentenceListener { + void onSuccess(CommonSentenceBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCommonSentenceResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (sentenceListener != null) { + sentenceListener.onFailure(e); + } + } + + @Override + public void onNext(CommonSentenceBean resultBean) { + if (resultBean != null) { + sentenceListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java new file mode 100644 index 0000000..a8cb3fc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java @@ -0,0 +1,53 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseUpdateSuperviseModelImpl implements ICaseUpdateSuperviseModel { + + private OnUpdateSuperviseListener listener; + + public CaseUpdateSuperviseModelImpl(OnUpdateSuperviseListener updateSuperviseListener) { + this.listener = updateSuperviseListener; + } + + /** + * 数据回调接口 + */ + public interface OnUpdateSuperviseListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String superviseRemarks) { + Observable observable = RetrofitServiceManager.getUpdateSuperviseResult(id, superviseRemarks); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java new file mode 100644 index 0000000..263ef6c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseCommonSentenceModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java new file mode 100644 index 0000000..518d602 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseUpdateSuperviseModel { + Subscription sendRetrofitRequest(String id, String superviseRemarks); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java new file mode 100644 index 0000000..6b65f13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseCommonSentenceModelImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; + +public class CaseCommonSentencePresenterImpl extends BasePresenter implements ICaseCommonSentencePresenter, + CaseCommonSentenceModelImpl.OnGetCommonSentenceListener { + + private ICaseCommonSentenceView view; + private CaseCommonSentenceModelImpl actionModel; + + public CaseCommonSentencePresenterImpl(ICaseCommonSentenceView commonSentenceView) { + this.view = commonSentenceView; + actionModel = new CaseCommonSentenceModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CommonSentenceBean resultBean) { + view.obtainCommonSentenceData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java new file mode 100644 index 0000000..66e1f44 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseUpdateSuperviseModelImpl; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; + +public class CaseUpdateSupervisePresenterImpl extends BasePresenter implements ICaseUpdateSupervisePresenter, + CaseUpdateSuperviseModelImpl.OnUpdateSuperviseListener { + + private ICaseUpdateSuperviseView view; + private CaseUpdateSuperviseModelImpl actionModel; + + public CaseUpdateSupervisePresenterImpl(ICaseUpdateSuperviseView updateSuperviseView) { + this.view = updateSuperviseView; + actionModel = new CaseUpdateSuperviseModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String superviseRemarks) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, superviseRemarks)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainUpdateSuperviseData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java new file mode 100644 index 0000000..1f8bd09 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseCommonSentencePresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java new file mode 100644 index 0000000..f61f9b2 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseUpdateSupervisePresenter { + void onReadyRetrofitRequest(String id, String superviseRemarks); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java new file mode 100644 index 0000000..9c7b08b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CommonSentenceBean; + +public interface ICaseCommonSentenceView { + void obtainCommonSentenceData(CommonSentenceBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java new file mode 100644 index 0000000..10bcf5a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICaseUpdateSuperviseView { + void showProgress(); + + void hideProgress(); + + void obtainUpdateSuperviseData(ActionResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java index ad70b7a..9143db8 100644 --- a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.ui; +import android.view.View; + +import androidx.core.content.ContextCompat; + import com.bumptech.glide.Glide; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.luck.picture.lib.photoview.PhotoView; -import com.qmuiteam.qmui.util.QMUIStatusBarHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; import butterknife.BindView; @@ -15,6 +19,8 @@ **/ public class BigPictureActivity extends BaseActivity { + @BindView(R.id.imageTopLayout) + QMUITopBarLayout imageTopLayout; @BindView(R.id.photoView) PhotoView photoView; @@ -25,37 +31,24 @@ @Override protected void setupTopBarLayout() { - QMUIStatusBarHelper.setStatusBarLightMode(this); + imageTopLayout.setTitle("查看大图").setTextColor(ContextCompat.getColor(this, R.color.white)); + imageTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + imageTopLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); } @Override public void initData() { -// String mediaJson = getIntent().getStringExtra("mediaJson"); -// -// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() { -// }.getType()); -// -// list = new ArrayList<>(); -// assert mediaList != null; -// for (LocalMedia media : mediaList) { -// list.add(media.getRealPath()); -// } String path = getIntent().getStringExtra("path"); Glide.with(this).load(path).into(photoView); } @Override public void initEvent() { -// //轮播图 -// bigImageBanner.setImageLoader(new ImageLoader() { -// -// @Override -// public void displayImage(Context context, Object path, ImageView imageView) { -// Glide.with(context).load(path).into(imageView); -// } -// }); -// bigImageBanner.isAutoPlay(false); -// bigImageBanner.setImages(list); -// bigImageBanner.start(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index 01a3807..7548cfc 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -329,7 +329,7 @@ caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java new file mode 100644 index 0000000..d4dba38 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -0,0 +1,505 @@ +package com.casic.dcms.ui; + +import android.content.DialogInterface; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseNextNodeBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseHandleView; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseNextNodeView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.IUploadFileView; +import com.casic.dcms.utils.FileUtils; +import com.casic.dcms.utils.GlideLoadEngine; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.luck.picture.lib.PictureSelector; +import com.luck.picture.lib.config.PictureConfig; +import com.luck.picture.lib.config.PictureMimeType; +import com.luck.picture.lib.entity.LocalMedia; +import com.luck.picture.lib.tools.PictureFileUtils; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, + ICaseHandleView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @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) + EditText casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.caseHandleView) + TextView caseHandleView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseStartTimeView) + TextView caseStartTimeView; + @BindView(R.id.caseEndTimeView) + TextView caseEndTimeView; + @BindView(R.id.caseHandleResultView) + TextView caseHandleResultView; + @BindView(R.id.caseHandleRecyclerView) + RecyclerView caseHandleRecyclerView; + @BindView(R.id.addImageView) + ImageView addImageView; + @BindView(R.id.caseReasonView) + EditText caseReasonView; + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private String changeState; + private String caseReason; + private String approvalResult; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private List largeClassBeans = new ArrayList<>(); + private List smallClassBeans = new ArrayList<>(); + private List realPaths = new ArrayList<>();//真实图片路径 + private List mediaList = new ArrayList<>();//上传到服务器的数据集 + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private CaseNextNodePresenterImpl caseNextNodePresenter; + private UploadImagePresenterImpl uploadImagePresenter; + private CaseHandlePresenterImpl caseHandlePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handle_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseNextNodePresenter = new CaseNextNodePresenterImpl(this); + uploadImagePresenter = new UploadImagePresenterImpl(this); + caseHandlePresenter = new CaseHandlePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @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()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + caseStartTimeView.setText(data.getCreateTime()); + caseEndTimeView.setText(data.getNodeLimittime()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeTypeView.setText("无小类"); + } else { + caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 + } + caseSmallTypeView.setText("请选择"); + } + } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallTypeView.setText("无小类"); + } else { + caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 + } + } + } + + @Override + public void obtainNextNodeData(CaseNextNodeBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处理结果"); + for (CaseNextNodeBean.DataBean dataBean : dataBeans) { + 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(); + + CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); + caseHandleResultView.setText(dataBean.getNextOperation()); + changeState = String.valueOf(dataBean.getNextState()); + approvalResult = dataBean.getApprovalResult(); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseClassLayout: + 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(); + + caseTypeView.setText(tag); + //获取案卷大类 + caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseLargeTypeView.setText(tag); + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseSmallTypeView.setText(tag); + } + }).build().show(); + } + } + break; + case R.id.caseHandleResultLayout: + caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); + break; + case R.id.addImageView: + new QMUIDialog.MenuDialogBuilder(this) + .addItem("相册中选取", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //选图 + selectPicture(); + } + }) + .addItem("相机拍照", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //拍照 + takePicture(); + } + }) + .create().show(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String handleResult = caseHandleResultView.getText().toString(); + if (handleResult.equals("请选择")) { + ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); + return; + } + if (handleResult.equals("处理完成")) { + //选择处理完成时,处理图片必传。至少一张,最多两张 + if (mediaList.size() < 1 || mediaList.size() > 2) { + ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); + return; + } + } + if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { + caseReason = caseReasonView.getText().toString(); + if (TextUtils.isEmpty(caseReason)) { + ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); + return; + } + } + caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), + changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); + } + + private void selectPicture() { + PictureSelector.create(this) + .openGallery(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(2) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.CHOOSE_REQUEST); + } + + private void takePicture() { + PictureSelector.create(this) + .openCamera(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(1) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.REQUEST_CAMERA); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == RESULT_OK) { + switch (requestCode) { + case PictureConfig.CHOOSE_REQUEST: + List selectList = PictureSelector.obtainMultipleResult(data); + for (LocalMedia media : selectList) { + String mediaCompressPath = media.getCompressPath(); + uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); + } + break; + case PictureConfig.REQUEST_CAMERA: + LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); + uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); + break; + default: + break; + } + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUploadAudioResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainUploadImageResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + PictureFileUtils.deleteAllCacheDirFile(this); + /** + * 系统路径static拼接图片返回路径 + * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg + */ + //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg + String url = resultBean.getData(); + mediaList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(realPaths); + caseHandleRecyclerView.setVisibility(View.VISIBLE); + caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); + caseHandleRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(realPaths.get(position)); + } + }); + //删除按钮点击事件 + imageAdapter.setDeleteView(true); + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } + } + + @Override + public void obtainUploadVideoResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainCaseHandleResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseNextNodePresenter != null) { + caseNextNodePresenter.disposeRetrofitRequest(); + } + if (uploadImagePresenter != null) { + uploadImagePresenter.disposeRetrofitRequest(); + } + if (caseHandlePresenter != null) { + caseHandlePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java deleted file mode 100644 index bd187c5..0000000 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java +++ /dev/null @@ -1,500 +0,0 @@ -package com.casic.dcms.ui; - -import android.content.DialogInterface; -import android.content.Intent; -import android.text.TextUtils; -import android.view.View; -import android.widget.EditText; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.Nullable; -import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.adapter.ImageRecycleViewAdapter; -import com.casic.dcms.base.BaseCaseActivity; -import com.casic.dcms.bean.ActionResultBean; -import com.casic.dcms.bean.CaseDetailBean; -import com.casic.dcms.bean.CaseLargeClassBean; -import com.casic.dcms.bean.CaseNextNodeBean; -import com.casic.dcms.bean.CaseSmallClassBean; -import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; -import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; -import com.casic.dcms.mvp.view.ICaseDetailView; -import com.casic.dcms.mvp.view.ICaseHandleView; -import com.casic.dcms.mvp.view.ICaseLargeClassView; -import com.casic.dcms.mvp.view.ICaseNextNodeView; -import com.casic.dcms.mvp.view.ICaseSmallClassView; -import com.casic.dcms.mvp.view.IUploadFileView; -import com.casic.dcms.utils.FileUtils; -import com.casic.dcms.utils.GlideLoadEngine; -import com.casic.dcms.utils.ItemDecorationSpace; -import com.casic.dcms.utils.StringHelper; -import com.casic.dcms.utils.ToastHelper; -import com.luck.picture.lib.PictureSelector; -import com.luck.picture.lib.config.PictureConfig; -import com.luck.picture.lib.config.PictureMimeType; -import com.luck.picture.lib.entity.LocalMedia; -import com.luck.picture.lib.tools.PictureFileUtils; -import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; -import com.qmuiteam.qmui.widget.dialog.QMUIDialog; -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; - -import butterknife.BindView; -import butterknife.OnClick; - -public class CaseHandleOvertimeDetailActivity extends BaseCaseActivity implements View.OnClickListener, - ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, - ICaseHandleView { - - @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) - EditText casePlaceView; - @BindView(R.id.caseSituationView) - TextView caseSituationView; - @BindView(R.id.caseHandleView) - TextView caseHandleView; - @BindView(R.id.casePicRecyclerView) - RecyclerView casePicRecyclerView; - @BindView(R.id.caseStartTimeView) - TextView caseStartTimeView; - @BindView(R.id.caseEndTimeView) - TextView caseEndTimeView; - @BindView(R.id.caseHandleResultView) - TextView caseHandleResultView; - @BindView(R.id.caseHandleRecyclerView) - RecyclerView caseHandleRecyclerView; - @BindView(R.id.addImageView) - ImageView addImageView; - @BindView(R.id.caseReasonView) - EditText caseReasonView; - @BindView(R.id.submitButton) - QMUIRoundButton submitButton; - - private String id; - private String changeState; - private String caseReason; - private String approvalResult; - private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); - private List largeClassBeans = new ArrayList<>(); - private List smallClassBeans = new ArrayList<>(); - private List realPaths = new ArrayList<>();//真实图片路径 - private List mediaList = new ArrayList<>();//上传到服务器的数据集 - - private CaseDetailPresenterImpl caseDetailPresenter; - private CaseLargeClassPresenterImpl caseLargeClassPresenter; - private CaseSmallClassPresenterImpl caseSmallClassPresenter; - private CaseNextNodePresenterImpl caseNextNodePresenter; - private UploadImagePresenterImpl uploadImagePresenter; - private CaseHandlePresenterImpl caseHandlePresenter; - - private QMUITipDialog submitDialog; - - @Override - public int initLayoutView() { - return R.layout.activity_case_handle_overtime; - } - - @Override - protected String setTitleName() { - return "超时案卷"; - } - - @Override - public void initData() { - id = getIntent().getStringExtra("id"); - caseDetailPresenter = new CaseDetailPresenterImpl(this); - caseDetailPresenter.onReadyRetrofitRequest(id); - - caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); - caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); - caseNextNodePresenter = new CaseNextNodePresenterImpl(this); - uploadImagePresenter = new UploadImagePresenterImpl(this); - caseHandlePresenter = new CaseHandlePresenterImpl(this); - - submitDialog = new QMUITipDialog.Builder(this) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord("提交中,请稍后") - .create(); - } - - @Override - public void initEvent() { - submitButton.setChangeAlphaWhenPress(true); - } - - @Override - public void obtainCaseDetailData(CaseDetailBean resultBean) { - if (resultBean.isSuccess()) { - this.data = resultBean.getData().get(0); - caseTypeView.setText(data.getEorcName()); - caseLargeTypeView.setText(data.getCasetypeName()); - caseSmallTypeView.setText(data.getCasetypeDetailName()); - caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro()); - caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); - caseStartTimeView.setText(data.getCreateTime()); - caseEndTimeView.setText(data.getNodeLimittime()); - - String verifyImages = data.getFileIdVerify(); - if (!TextUtils.isEmpty(verifyImages)) { - List urls = new ArrayList<>(); - String[] split = verifyImages.split(","); - for (String s : split) { - urls.add(StringHelper.appendCompleteURL(s)); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(urls); - casePicRecyclerView.setVisibility(View.VISIBLE); - casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); - casePicRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(urls.get(position)); - } - }); - imageAdapter.setDeleteView(false); - } - } - } - - private void showBigImage(String path) { - Intent intent = new Intent(this, BigPictureActivity.class); - intent.putExtra("path", path); - startActivity(intent); - } - - @Override - public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { - if (largeClassBean.isSuccess()) { - //设置大类数据 - this.largeClassBeans = largeClassBean.getData(); - if (largeClassBeans.size() == 0) { - caseLargeTypeView.setText("无小类"); - } else { - caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 - } - caseSmallTypeView.setText("请选择"); - } - } - - @Override - public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { - if (smallClassBean.isSuccess()) { - //设置大类数据 - this.smallClassBeans = smallClassBean.getData(); - if (smallClassBeans.size() == 0) { - caseSmallTypeView.setText("无小类"); - } else { - caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 - } - } - } - - @Override - public void obtainNextNodeData(CaseNextNodeBean resultBean) { - if (resultBean.isSuccess()) { - List dataBeans = resultBean.getData(); - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("处理结果"); - for (CaseNextNodeBean.DataBean dataBean : dataBeans) { - 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(); - - CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); - caseHandleResultView.setText(dataBean.getNextOperation()); - changeState = String.valueOf(dataBean.getNextState()); - approvalResult = dataBean.getApprovalResult(); - } - }).build().show(); - } else { - ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); - } - } - - @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) - @Override - public void onClick(View v) { - switch (v.getId()) { - case R.id.caseClassLayout: - 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(); - - caseTypeView.setText(tag); - //获取案卷大类 - caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); - } - }).build().show(); - break; - case R.id.caseLargeClassLayout: - if (largeClassBeans != null) { - if (largeClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷大类"); - for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { - sheetBuilder.addItem(dataBean.getTypeName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseLargeTypeView.setText(tag); - //获取案卷小类 - CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); - String typeId = dataBean.getId(); - caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); - } - }).build().show(); - } - } - break; - case R.id.caseSmallClassLayout: - if (smallClassBeans != null) { - if (smallClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷小类"); - for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { - sheetBuilder.addItem(dataBean.getTypeDetailName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseSmallTypeView.setText(tag); - } - }).build().show(); - } - } - break; - case R.id.caseHandleResultLayout: - caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); - break; - case R.id.addImageView: - new QMUIDialog.MenuDialogBuilder(this) - .addItem("相册中选取", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //选图 - selectPicture(); - } - }) - .addItem("相机拍照", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //拍照 - takePicture(); - } - }) - .create().show(); - break; - case R.id.submitButton: - submitCase();//案卷提交 - break; - default: - break; - } - } - - private void submitCase() { - String handleResult = caseHandleResultView.getText().toString(); - if (handleResult.equals("请选择")) { - ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); - return; - } - if (handleResult.equals("处理完成")) { - //选择处理完成时,处理图片必传。至少一张,最多两张 - if (mediaList.size() < 1 || mediaList.size() > 2) { - ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); - return; - } - } - if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { - caseReason = caseReasonView.getText().toString(); - if (TextUtils.isEmpty(caseReason)) { - ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); - return; - } - } - caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), - changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); - } - - private void selectPicture() { - PictureSelector.create(this) - .openGallery(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(2) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.CHOOSE_REQUEST); - } - - private void takePicture() { - PictureSelector.create(this) - .openCamera(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(1) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.REQUEST_CAMERA); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if (resultCode == RESULT_OK) { - switch (requestCode) { - case PictureConfig.CHOOSE_REQUEST: - List selectList = PictureSelector.obtainMultipleResult(data); - for (LocalMedia media : selectList) { - String mediaCompressPath = media.getCompressPath(); - uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); - } - break; - case PictureConfig.REQUEST_CAMERA: - LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); - uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); - break; - default: - break; - } - } - } - - @Override - public void showProgress() { - submitDialog.show(); - } - - @Override - public void hideProgress() { - submitDialog.hide(); - } - - @Override - public void obtainUploadAudioResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainUploadImageResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - PictureFileUtils.deleteAllCacheDirFile(this); - /** - * 系统路径static拼接图片返回路径 - * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg - */ - //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String url = resultBean.getData(); - mediaList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(realPaths); - caseHandleRecyclerView.setVisibility(View.VISIBLE); - caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); - caseHandleRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(realPaths.get(position)); - } - }); - //删除按钮点击事件 - imageAdapter.setDeleteView(true); - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); - } - } - }); - } - } - - @Override - public void obtainUploadVideoResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainCaseHandleResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); - finish(); - } else { - ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); - } - } - - @Override - protected void onDestroy() { - super.onDestroy(); - if (caseDetailPresenter != null) { - caseDetailPresenter.disposeRetrofitRequest(); - } - if (caseLargeClassPresenter != null) { - caseLargeClassPresenter.disposeRetrofitRequest(); - } - if (caseSmallClassPresenter != null) { - caseSmallClassPresenter.disposeRetrofitRequest(); - } - if (caseNextNodePresenter != null) { - caseNextNodePresenter.disposeRetrofitRequest(); - } - if (uploadImagePresenter != null) { - uploadImagePresenter.disposeRetrofitRequest(); - } - if (caseHandlePresenter != null) { - caseHandlePresenter.disposeRetrofitRequest(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java new file mode 100644 index 0000000..5ea5403 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -0,0 +1,145 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { + + @BindView(R.id.detailTopLayout) + QMUITopBarLayout detailTopLayout; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @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; + + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private CaseDetailPresenterImpl caseDetailPresenter; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handled_detail; + } + + @Override + protected void setupTopBarLayout() { + detailTopLayout.setTitle("已办案卷").setTextColor(ContextCompat.getColor(this, R.color.white)); + detailTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + detailTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + String id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + } + + @Override + public void initEvent() { + + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseHandleStatusView.setText(data.getCaseStateName()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @OnClick(R.id.handleLayout) + @Override + public void onClick(View v) { + if (v.getId() == R.id.handleLayout) { + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java new file mode 100644 index 0000000..3b2d3d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -0,0 +1,228 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.TextView; + +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.presenter.CaseCommonSentencePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseUpdateSupervisePresenterImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseOverTimeView) + TextView caseOverTimeView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @BindView(R.id.casePlaceView) + EditText casePlaceView; + @BindView(R.id.caseDescriptionView) + TextView caseDescriptionView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseHandleResultView) + EditText caseHandleResultView; + @BindView(R.id.caseCommonSentenceView) + TextView caseCommonSentenceView; + + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseCommonSentencePresenterImpl commonSentencePresenter; + private CaseUpdateSupervisePresenterImpl updateSupervisePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_todo_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + commonSentencePresenter = new CaseCommonSentencePresenterImpl(this); + updateSupervisePresenter = new CaseUpdateSupervisePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @Override + public void initEvent() { + + } + + @OnClick({R.id.caseHandleLayout, R.id.caseCommonSentenceLayout, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseHandleLayout: + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + break; + case R.id.caseCommonSentenceLayout: + commonSentencePresenter.onReadyRetrofitRequest(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String remarks = caseHandleResultView.getText().toString(); + if (TextUtils.isEmpty(remarks)) { + ToastHelper.showToast("督办意见不能为空", ToastHelper.WARING); + return; + } + updateSupervisePresenter.onReadyRetrofitRequest(id, remarks); + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseOverTimeView.setText(data.getNodeLimittime()); + caseHandleStatusView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + casePlaceView.setText(data.getFieldintro()); + caseDescriptionView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainCommonSentenceData(CommonSentenceBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("常用语句"); + for (CommonSentenceBean.DataBean dataBean : dataBeans) { + 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(); + + CommonSentenceBean.DataBean dataBean = dataBeans.get(position); + caseCommonSentenceView.setText(dataBean.getName()); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUpdateSuperviseData(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷督办提交成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷督办提交失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (commonSentencePresenter != null) { + commonSentencePresenter.disposeRetrofitRequest(); + } + if (updateSupervisePresenter != null) { + updateSupervisePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 3060e1b..af6a9fe 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -191,7 +191,7 @@ caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); - caseHandleView.setText(data.getUrgeRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); caseSituationView.setText(data.getDescription()); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index 7816221..3989633 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -28,6 +28,7 @@ import com.casic.dcms.ui.OvertimeCaseActivity; import com.casic.dcms.ui.PersonOnlineActivity; import com.casic.dcms.ui.UrgentCaseActivity; +import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.StringHelper; import com.qmuiteam.qmui.widget.QMUIRadiusImageView; @@ -69,62 +70,12 @@ @Override protected void initEvent() { - HomeRecycleAdapter adapter = new HomeRecycleAdapter(context); - homeRecyclerView.setLayoutManager(new GridLayoutManager(context, 3)); - homeRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - Intent intent = new Intent(); - switch (position) { - case 0: - intent.setClass(context, CaseUploadActivity.class); - break; - case 1: - intent.setClass(context, CaseUploadQuicklyActivity.class); - break; - case 2: - intent.setClass(context, FivePackageUploadActivity.class); - break; - case 3: - intent.setClass(context, CaseVerifyActivity.class); - break; - case 4: - intent.setClass(context, CaseCheckActivity.class); - break; - case 5: - intent.setClass(context, CaseHandleActivity.class); - break; - case 6: - intent.setClass(context, UrgentCaseActivity.class); - break; - case 7: - intent.setClass(context, OvertimeCaseActivity.class); - break; - case 8: - intent.setClass(context, DataAnalysisActivity.class); - break; - case 9: - intent.setClass(context, PersonOnlineActivity.class); - break; - case 10: - intent.setClass(context, CaseSearchActivity.class); - break; - case 11: - intent.setClass(context, MapWatchViewActivity.class); - break; - default: - break; - } - startActivity(intent); - } - }); + } @SuppressLint("SetTextI18n") @Override public void obtainUserData(UserBean userBean) { -// Log.d(TAG, "obtainUserData: " + new Gson().toJson(userBean)); if (userBean.isSuccess()) { //QMUIRadiusImageView无法动态设置圆形头像,借助Glide实现圆形头像 Glide.with(this).load(R.mipmap.app_logo).apply(RequestOptions.circleCropTransform()).into(userIconView); @@ -137,6 +88,121 @@ StringHelper.saveUserPhone(data.getPhone()); StringHelper.saveUserDept(data.getDeptName()); StringHelper.saveUserDeptId(data.getDeptId()); + + //权限控制 + String roleTip = data.getRoleTips().get(0); + HomeRecycleAdapter adapter = new HomeRecycleAdapter(context); + homeRecyclerView.setLayoutManager(new GridLayoutManager(context, 3)); + switch (roleTip) { + case "supervisor": + //All + adapter.setItemData(Constant.ALL_ICONS, Constant.ALL_ITEMS); + adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { + @Override + public void onClick(int position) { + Intent intent = new Intent(); + switch (position) { + case 0: + intent.setClass(context, CaseUploadActivity.class); + break; + case 1: + intent.setClass(context, CaseUploadQuicklyActivity.class); + break; + case 2: + intent.setClass(context, FivePackageUploadActivity.class); + break; + case 3: + intent.setClass(context, CaseVerifyActivity.class); + break; + case 4: + intent.setClass(context, CaseCheckActivity.class); + break; + case 5: + intent.setClass(context, CaseHandleActivity.class); + break; + case 6: + intent.setClass(context, UrgentCaseActivity.class); + break; + case 7: + intent.setClass(context, OvertimeCaseActivity.class); + break; + case 8: + intent.setClass(context, DataAnalysisActivity.class); + break; + case 9: + intent.setClass(context, PersonOnlineActivity.class); + break; + case 10: + intent.setClass(context, CaseSearchActivity.class); + break; + case 11: + intent.setClass(context, MapWatchViewActivity.class); + break; + default: + break; + } + startActivity(intent); + } + }); + break; +// case "process": +// //案卷处理、案卷查询 +// adapter.setItemData(Constant.PROCESS_ICONS, Constant.PROCESS_ITEMS); +// adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { +// @Override +// public void onClick(int position) { +// Intent intent = new Intent(); +// switch (position) { +// case 0: +// intent.setClass(context, CaseHandleActivity.class); +// break; +// case 1: +// intent.setClass(context, CaseSearchActivity.class); +// break; +// default: +// break; +// } +// startActivity(intent); +// } +// }); +// break; +// case "leader": +// //案卷上报、紧急要件、超时督办、统计分析、在岗人员、案卷查询 +// adapter.setItemData(Constant.LEADER_ICONS, Constant.LEADER_ITEMS); +// adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { +// @Override +// public void onClick(int position) { +// Intent intent = new Intent(); +// switch (position) { +// case 0: +// intent.setClass(context, CaseUploadActivity.class); +// break; +// case 1: +// intent.setClass(context, UrgentCaseActivity.class); +// break; +// case 2: +// intent.setClass(context, OvertimeCaseActivity.class); +// break; +// case 3: +// intent.setClass(context, DataAnalysisActivity.class); +// break; +// case 4: +// intent.setClass(context, PersonOnlineActivity.class); +// break; +// case 5: +// intent.setClass(context, CaseSearchActivity.class); +// break; +// default: +// break; +// } +// startActivity(intent); +// } +// }); +// break; + default: + break; + } + homeRecyclerView.setAdapter(adapter); } } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java index 430f8be..fa2df7a 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandledBean; import com.casic.dcms.mvp.presenter.CaseHandledListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandledListView; +import com.casic.dcms.ui.CaseHandledDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -128,10 +130,9 @@ adapter.setOnItemClickListener(new CaseHandledAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandledDetailActivity.class); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java index 502c288..05306fe 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -130,10 +132,10 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "待办案卷"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java index 25877de..743a092 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java @@ -17,7 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; -import com.casic.dcms.ui.CaseHandleOvertimeDetailActivity; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -133,7 +133,8 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { - Intent intent = new Intent(context, CaseHandleOvertimeDetailActivity.class); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "超时案卷"); intent.putExtra("id", dataBeans.get(position).getId()); startActivity(intent); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java index f957e26..ae0b3e5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -131,10 +133,10 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "紧急案卷"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f6ac20a..2070c95 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -67,12 +67,14 @@ - + - + + + { private Context context; + private List iconData = new ArrayList<>(); + private List itemData = new ArrayList<>(); public HomeRecycleAdapter(Context context) { this.context = context; } + public void setItemData(@Nullable List icons, @Nullable List items) { + this.iconData = icons; + this.itemData = items; + } + @NonNull @Override public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -30,7 +40,7 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - holder.bindView(context, position); + holder.bindView(position); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override @@ -43,7 +53,7 @@ @Override public int getItemCount() { - return Constant.ITEMS.size(); + return itemData.size(); } private OnGridItemClickListener clickListener; @@ -56,7 +66,7 @@ this.clickListener = onGridItemClickListener; } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { private ImageView imageView; private TextView textView; @@ -67,9 +77,9 @@ textView = itemView.findViewById(R.id.textView); } - void bindView(Context context, int position) { - imageView.setBackgroundResource(Constant.ICONS.get(position)); - textView.setText(Constant.ITEMS.get(position)); + void bindView(int position) { + imageView.setBackgroundResource(iconData.get(position)); + textView.setText(itemData.get(position)); } } } diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index b9c4615..d9b10e0 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; import java.util.ArrayList; @@ -62,7 +63,10 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - Glide.with(context).load(mediaList.get(position)).into(holder.imageView); + Glide.with(context) + .load(mediaList.get(position)) + .apply(new RequestOptions().error(R.drawable.ic_load_error)) + .into(holder.imageView); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/casic/dcms/base/BaseActivity.java b/app/src/main/java/com/casic/dcms/base/BaseActivity.java index caf0356..2ca87fe 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseActivity.java +++ b/app/src/main/java/com/casic/dcms/base/BaseActivity.java @@ -17,8 +17,8 @@ setContentView(initLayoutView()); ButterKnife.bind(this); QMUIStatusBarHelper.translucent(this);//沉浸式状态栏 - setupTopBarLayout(); initData(); + setupTopBarLayout(); initEvent(); } diff --git a/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java new file mode 100644 index 0000000..8de58a4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java @@ -0,0 +1,78 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CommonSentenceBean { + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 请及时处理 + * id : 156 + * value : 请及时处理 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java new file mode 100644 index 0000000..5258d89 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CommonSentenceBean; +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 CaseCommonSentenceModelImpl implements ICaseCommonSentenceModel { + + private OnGetCommonSentenceListener sentenceListener; + + public CaseCommonSentenceModelImpl(OnGetCommonSentenceListener commonSentenceListener) { + this.sentenceListener = commonSentenceListener; + } + + public interface OnGetCommonSentenceListener { + void onSuccess(CommonSentenceBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCommonSentenceResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (sentenceListener != null) { + sentenceListener.onFailure(e); + } + } + + @Override + public void onNext(CommonSentenceBean resultBean) { + if (resultBean != null) { + sentenceListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java new file mode 100644 index 0000000..a8cb3fc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java @@ -0,0 +1,53 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseUpdateSuperviseModelImpl implements ICaseUpdateSuperviseModel { + + private OnUpdateSuperviseListener listener; + + public CaseUpdateSuperviseModelImpl(OnUpdateSuperviseListener updateSuperviseListener) { + this.listener = updateSuperviseListener; + } + + /** + * 数据回调接口 + */ + public interface OnUpdateSuperviseListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String superviseRemarks) { + Observable observable = RetrofitServiceManager.getUpdateSuperviseResult(id, superviseRemarks); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java new file mode 100644 index 0000000..263ef6c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseCommonSentenceModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java new file mode 100644 index 0000000..518d602 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseUpdateSuperviseModel { + Subscription sendRetrofitRequest(String id, String superviseRemarks); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java new file mode 100644 index 0000000..6b65f13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseCommonSentenceModelImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; + +public class CaseCommonSentencePresenterImpl extends BasePresenter implements ICaseCommonSentencePresenter, + CaseCommonSentenceModelImpl.OnGetCommonSentenceListener { + + private ICaseCommonSentenceView view; + private CaseCommonSentenceModelImpl actionModel; + + public CaseCommonSentencePresenterImpl(ICaseCommonSentenceView commonSentenceView) { + this.view = commonSentenceView; + actionModel = new CaseCommonSentenceModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CommonSentenceBean resultBean) { + view.obtainCommonSentenceData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java new file mode 100644 index 0000000..66e1f44 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseUpdateSuperviseModelImpl; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; + +public class CaseUpdateSupervisePresenterImpl extends BasePresenter implements ICaseUpdateSupervisePresenter, + CaseUpdateSuperviseModelImpl.OnUpdateSuperviseListener { + + private ICaseUpdateSuperviseView view; + private CaseUpdateSuperviseModelImpl actionModel; + + public CaseUpdateSupervisePresenterImpl(ICaseUpdateSuperviseView updateSuperviseView) { + this.view = updateSuperviseView; + actionModel = new CaseUpdateSuperviseModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String superviseRemarks) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, superviseRemarks)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainUpdateSuperviseData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java new file mode 100644 index 0000000..1f8bd09 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseCommonSentencePresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java new file mode 100644 index 0000000..f61f9b2 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseUpdateSupervisePresenter { + void onReadyRetrofitRequest(String id, String superviseRemarks); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java new file mode 100644 index 0000000..9c7b08b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CommonSentenceBean; + +public interface ICaseCommonSentenceView { + void obtainCommonSentenceData(CommonSentenceBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java new file mode 100644 index 0000000..10bcf5a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICaseUpdateSuperviseView { + void showProgress(); + + void hideProgress(); + + void obtainUpdateSuperviseData(ActionResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java index ad70b7a..9143db8 100644 --- a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.ui; +import android.view.View; + +import androidx.core.content.ContextCompat; + import com.bumptech.glide.Glide; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.luck.picture.lib.photoview.PhotoView; -import com.qmuiteam.qmui.util.QMUIStatusBarHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; import butterknife.BindView; @@ -15,6 +19,8 @@ **/ public class BigPictureActivity extends BaseActivity { + @BindView(R.id.imageTopLayout) + QMUITopBarLayout imageTopLayout; @BindView(R.id.photoView) PhotoView photoView; @@ -25,37 +31,24 @@ @Override protected void setupTopBarLayout() { - QMUIStatusBarHelper.setStatusBarLightMode(this); + imageTopLayout.setTitle("查看大图").setTextColor(ContextCompat.getColor(this, R.color.white)); + imageTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + imageTopLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); } @Override public void initData() { -// String mediaJson = getIntent().getStringExtra("mediaJson"); -// -// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() { -// }.getType()); -// -// list = new ArrayList<>(); -// assert mediaList != null; -// for (LocalMedia media : mediaList) { -// list.add(media.getRealPath()); -// } String path = getIntent().getStringExtra("path"); Glide.with(this).load(path).into(photoView); } @Override public void initEvent() { -// //轮播图 -// bigImageBanner.setImageLoader(new ImageLoader() { -// -// @Override -// public void displayImage(Context context, Object path, ImageView imageView) { -// Glide.with(context).load(path).into(imageView); -// } -// }); -// bigImageBanner.isAutoPlay(false); -// bigImageBanner.setImages(list); -// bigImageBanner.start(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index 01a3807..7548cfc 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -329,7 +329,7 @@ caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java new file mode 100644 index 0000000..d4dba38 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -0,0 +1,505 @@ +package com.casic.dcms.ui; + +import android.content.DialogInterface; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseNextNodeBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseHandleView; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseNextNodeView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.IUploadFileView; +import com.casic.dcms.utils.FileUtils; +import com.casic.dcms.utils.GlideLoadEngine; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.luck.picture.lib.PictureSelector; +import com.luck.picture.lib.config.PictureConfig; +import com.luck.picture.lib.config.PictureMimeType; +import com.luck.picture.lib.entity.LocalMedia; +import com.luck.picture.lib.tools.PictureFileUtils; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, + ICaseHandleView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @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) + EditText casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.caseHandleView) + TextView caseHandleView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseStartTimeView) + TextView caseStartTimeView; + @BindView(R.id.caseEndTimeView) + TextView caseEndTimeView; + @BindView(R.id.caseHandleResultView) + TextView caseHandleResultView; + @BindView(R.id.caseHandleRecyclerView) + RecyclerView caseHandleRecyclerView; + @BindView(R.id.addImageView) + ImageView addImageView; + @BindView(R.id.caseReasonView) + EditText caseReasonView; + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private String changeState; + private String caseReason; + private String approvalResult; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private List largeClassBeans = new ArrayList<>(); + private List smallClassBeans = new ArrayList<>(); + private List realPaths = new ArrayList<>();//真实图片路径 + private List mediaList = new ArrayList<>();//上传到服务器的数据集 + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private CaseNextNodePresenterImpl caseNextNodePresenter; + private UploadImagePresenterImpl uploadImagePresenter; + private CaseHandlePresenterImpl caseHandlePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handle_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseNextNodePresenter = new CaseNextNodePresenterImpl(this); + uploadImagePresenter = new UploadImagePresenterImpl(this); + caseHandlePresenter = new CaseHandlePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @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()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + caseStartTimeView.setText(data.getCreateTime()); + caseEndTimeView.setText(data.getNodeLimittime()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeTypeView.setText("无小类"); + } else { + caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 + } + caseSmallTypeView.setText("请选择"); + } + } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallTypeView.setText("无小类"); + } else { + caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 + } + } + } + + @Override + public void obtainNextNodeData(CaseNextNodeBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处理结果"); + for (CaseNextNodeBean.DataBean dataBean : dataBeans) { + 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(); + + CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); + caseHandleResultView.setText(dataBean.getNextOperation()); + changeState = String.valueOf(dataBean.getNextState()); + approvalResult = dataBean.getApprovalResult(); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseClassLayout: + 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(); + + caseTypeView.setText(tag); + //获取案卷大类 + caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseLargeTypeView.setText(tag); + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseSmallTypeView.setText(tag); + } + }).build().show(); + } + } + break; + case R.id.caseHandleResultLayout: + caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); + break; + case R.id.addImageView: + new QMUIDialog.MenuDialogBuilder(this) + .addItem("相册中选取", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //选图 + selectPicture(); + } + }) + .addItem("相机拍照", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //拍照 + takePicture(); + } + }) + .create().show(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String handleResult = caseHandleResultView.getText().toString(); + if (handleResult.equals("请选择")) { + ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); + return; + } + if (handleResult.equals("处理完成")) { + //选择处理完成时,处理图片必传。至少一张,最多两张 + if (mediaList.size() < 1 || mediaList.size() > 2) { + ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); + return; + } + } + if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { + caseReason = caseReasonView.getText().toString(); + if (TextUtils.isEmpty(caseReason)) { + ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); + return; + } + } + caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), + changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); + } + + private void selectPicture() { + PictureSelector.create(this) + .openGallery(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(2) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.CHOOSE_REQUEST); + } + + private void takePicture() { + PictureSelector.create(this) + .openCamera(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(1) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.REQUEST_CAMERA); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == RESULT_OK) { + switch (requestCode) { + case PictureConfig.CHOOSE_REQUEST: + List selectList = PictureSelector.obtainMultipleResult(data); + for (LocalMedia media : selectList) { + String mediaCompressPath = media.getCompressPath(); + uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); + } + break; + case PictureConfig.REQUEST_CAMERA: + LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); + uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); + break; + default: + break; + } + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUploadAudioResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainUploadImageResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + PictureFileUtils.deleteAllCacheDirFile(this); + /** + * 系统路径static拼接图片返回路径 + * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg + */ + //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg + String url = resultBean.getData(); + mediaList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(realPaths); + caseHandleRecyclerView.setVisibility(View.VISIBLE); + caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); + caseHandleRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(realPaths.get(position)); + } + }); + //删除按钮点击事件 + imageAdapter.setDeleteView(true); + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } + } + + @Override + public void obtainUploadVideoResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainCaseHandleResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseNextNodePresenter != null) { + caseNextNodePresenter.disposeRetrofitRequest(); + } + if (uploadImagePresenter != null) { + uploadImagePresenter.disposeRetrofitRequest(); + } + if (caseHandlePresenter != null) { + caseHandlePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java deleted file mode 100644 index bd187c5..0000000 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java +++ /dev/null @@ -1,500 +0,0 @@ -package com.casic.dcms.ui; - -import android.content.DialogInterface; -import android.content.Intent; -import android.text.TextUtils; -import android.view.View; -import android.widget.EditText; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.Nullable; -import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.adapter.ImageRecycleViewAdapter; -import com.casic.dcms.base.BaseCaseActivity; -import com.casic.dcms.bean.ActionResultBean; -import com.casic.dcms.bean.CaseDetailBean; -import com.casic.dcms.bean.CaseLargeClassBean; -import com.casic.dcms.bean.CaseNextNodeBean; -import com.casic.dcms.bean.CaseSmallClassBean; -import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; -import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; -import com.casic.dcms.mvp.view.ICaseDetailView; -import com.casic.dcms.mvp.view.ICaseHandleView; -import com.casic.dcms.mvp.view.ICaseLargeClassView; -import com.casic.dcms.mvp.view.ICaseNextNodeView; -import com.casic.dcms.mvp.view.ICaseSmallClassView; -import com.casic.dcms.mvp.view.IUploadFileView; -import com.casic.dcms.utils.FileUtils; -import com.casic.dcms.utils.GlideLoadEngine; -import com.casic.dcms.utils.ItemDecorationSpace; -import com.casic.dcms.utils.StringHelper; -import com.casic.dcms.utils.ToastHelper; -import com.luck.picture.lib.PictureSelector; -import com.luck.picture.lib.config.PictureConfig; -import com.luck.picture.lib.config.PictureMimeType; -import com.luck.picture.lib.entity.LocalMedia; -import com.luck.picture.lib.tools.PictureFileUtils; -import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; -import com.qmuiteam.qmui.widget.dialog.QMUIDialog; -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; - -import butterknife.BindView; -import butterknife.OnClick; - -public class CaseHandleOvertimeDetailActivity extends BaseCaseActivity implements View.OnClickListener, - ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, - ICaseHandleView { - - @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) - EditText casePlaceView; - @BindView(R.id.caseSituationView) - TextView caseSituationView; - @BindView(R.id.caseHandleView) - TextView caseHandleView; - @BindView(R.id.casePicRecyclerView) - RecyclerView casePicRecyclerView; - @BindView(R.id.caseStartTimeView) - TextView caseStartTimeView; - @BindView(R.id.caseEndTimeView) - TextView caseEndTimeView; - @BindView(R.id.caseHandleResultView) - TextView caseHandleResultView; - @BindView(R.id.caseHandleRecyclerView) - RecyclerView caseHandleRecyclerView; - @BindView(R.id.addImageView) - ImageView addImageView; - @BindView(R.id.caseReasonView) - EditText caseReasonView; - @BindView(R.id.submitButton) - QMUIRoundButton submitButton; - - private String id; - private String changeState; - private String caseReason; - private String approvalResult; - private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); - private List largeClassBeans = new ArrayList<>(); - private List smallClassBeans = new ArrayList<>(); - private List realPaths = new ArrayList<>();//真实图片路径 - private List mediaList = new ArrayList<>();//上传到服务器的数据集 - - private CaseDetailPresenterImpl caseDetailPresenter; - private CaseLargeClassPresenterImpl caseLargeClassPresenter; - private CaseSmallClassPresenterImpl caseSmallClassPresenter; - private CaseNextNodePresenterImpl caseNextNodePresenter; - private UploadImagePresenterImpl uploadImagePresenter; - private CaseHandlePresenterImpl caseHandlePresenter; - - private QMUITipDialog submitDialog; - - @Override - public int initLayoutView() { - return R.layout.activity_case_handle_overtime; - } - - @Override - protected String setTitleName() { - return "超时案卷"; - } - - @Override - public void initData() { - id = getIntent().getStringExtra("id"); - caseDetailPresenter = new CaseDetailPresenterImpl(this); - caseDetailPresenter.onReadyRetrofitRequest(id); - - caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); - caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); - caseNextNodePresenter = new CaseNextNodePresenterImpl(this); - uploadImagePresenter = new UploadImagePresenterImpl(this); - caseHandlePresenter = new CaseHandlePresenterImpl(this); - - submitDialog = new QMUITipDialog.Builder(this) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord("提交中,请稍后") - .create(); - } - - @Override - public void initEvent() { - submitButton.setChangeAlphaWhenPress(true); - } - - @Override - public void obtainCaseDetailData(CaseDetailBean resultBean) { - if (resultBean.isSuccess()) { - this.data = resultBean.getData().get(0); - caseTypeView.setText(data.getEorcName()); - caseLargeTypeView.setText(data.getCasetypeName()); - caseSmallTypeView.setText(data.getCasetypeDetailName()); - caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro()); - caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); - caseStartTimeView.setText(data.getCreateTime()); - caseEndTimeView.setText(data.getNodeLimittime()); - - String verifyImages = data.getFileIdVerify(); - if (!TextUtils.isEmpty(verifyImages)) { - List urls = new ArrayList<>(); - String[] split = verifyImages.split(","); - for (String s : split) { - urls.add(StringHelper.appendCompleteURL(s)); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(urls); - casePicRecyclerView.setVisibility(View.VISIBLE); - casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); - casePicRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(urls.get(position)); - } - }); - imageAdapter.setDeleteView(false); - } - } - } - - private void showBigImage(String path) { - Intent intent = new Intent(this, BigPictureActivity.class); - intent.putExtra("path", path); - startActivity(intent); - } - - @Override - public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { - if (largeClassBean.isSuccess()) { - //设置大类数据 - this.largeClassBeans = largeClassBean.getData(); - if (largeClassBeans.size() == 0) { - caseLargeTypeView.setText("无小类"); - } else { - caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 - } - caseSmallTypeView.setText("请选择"); - } - } - - @Override - public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { - if (smallClassBean.isSuccess()) { - //设置大类数据 - this.smallClassBeans = smallClassBean.getData(); - if (smallClassBeans.size() == 0) { - caseSmallTypeView.setText("无小类"); - } else { - caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 - } - } - } - - @Override - public void obtainNextNodeData(CaseNextNodeBean resultBean) { - if (resultBean.isSuccess()) { - List dataBeans = resultBean.getData(); - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("处理结果"); - for (CaseNextNodeBean.DataBean dataBean : dataBeans) { - 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(); - - CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); - caseHandleResultView.setText(dataBean.getNextOperation()); - changeState = String.valueOf(dataBean.getNextState()); - approvalResult = dataBean.getApprovalResult(); - } - }).build().show(); - } else { - ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); - } - } - - @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) - @Override - public void onClick(View v) { - switch (v.getId()) { - case R.id.caseClassLayout: - 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(); - - caseTypeView.setText(tag); - //获取案卷大类 - caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); - } - }).build().show(); - break; - case R.id.caseLargeClassLayout: - if (largeClassBeans != null) { - if (largeClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷大类"); - for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { - sheetBuilder.addItem(dataBean.getTypeName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseLargeTypeView.setText(tag); - //获取案卷小类 - CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); - String typeId = dataBean.getId(); - caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); - } - }).build().show(); - } - } - break; - case R.id.caseSmallClassLayout: - if (smallClassBeans != null) { - if (smallClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷小类"); - for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { - sheetBuilder.addItem(dataBean.getTypeDetailName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseSmallTypeView.setText(tag); - } - }).build().show(); - } - } - break; - case R.id.caseHandleResultLayout: - caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); - break; - case R.id.addImageView: - new QMUIDialog.MenuDialogBuilder(this) - .addItem("相册中选取", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //选图 - selectPicture(); - } - }) - .addItem("相机拍照", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //拍照 - takePicture(); - } - }) - .create().show(); - break; - case R.id.submitButton: - submitCase();//案卷提交 - break; - default: - break; - } - } - - private void submitCase() { - String handleResult = caseHandleResultView.getText().toString(); - if (handleResult.equals("请选择")) { - ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); - return; - } - if (handleResult.equals("处理完成")) { - //选择处理完成时,处理图片必传。至少一张,最多两张 - if (mediaList.size() < 1 || mediaList.size() > 2) { - ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); - return; - } - } - if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { - caseReason = caseReasonView.getText().toString(); - if (TextUtils.isEmpty(caseReason)) { - ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); - return; - } - } - caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), - changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); - } - - private void selectPicture() { - PictureSelector.create(this) - .openGallery(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(2) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.CHOOSE_REQUEST); - } - - private void takePicture() { - PictureSelector.create(this) - .openCamera(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(1) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.REQUEST_CAMERA); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if (resultCode == RESULT_OK) { - switch (requestCode) { - case PictureConfig.CHOOSE_REQUEST: - List selectList = PictureSelector.obtainMultipleResult(data); - for (LocalMedia media : selectList) { - String mediaCompressPath = media.getCompressPath(); - uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); - } - break; - case PictureConfig.REQUEST_CAMERA: - LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); - uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); - break; - default: - break; - } - } - } - - @Override - public void showProgress() { - submitDialog.show(); - } - - @Override - public void hideProgress() { - submitDialog.hide(); - } - - @Override - public void obtainUploadAudioResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainUploadImageResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - PictureFileUtils.deleteAllCacheDirFile(this); - /** - * 系统路径static拼接图片返回路径 - * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg - */ - //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String url = resultBean.getData(); - mediaList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(realPaths); - caseHandleRecyclerView.setVisibility(View.VISIBLE); - caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); - caseHandleRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(realPaths.get(position)); - } - }); - //删除按钮点击事件 - imageAdapter.setDeleteView(true); - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); - } - } - }); - } - } - - @Override - public void obtainUploadVideoResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainCaseHandleResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); - finish(); - } else { - ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); - } - } - - @Override - protected void onDestroy() { - super.onDestroy(); - if (caseDetailPresenter != null) { - caseDetailPresenter.disposeRetrofitRequest(); - } - if (caseLargeClassPresenter != null) { - caseLargeClassPresenter.disposeRetrofitRequest(); - } - if (caseSmallClassPresenter != null) { - caseSmallClassPresenter.disposeRetrofitRequest(); - } - if (caseNextNodePresenter != null) { - caseNextNodePresenter.disposeRetrofitRequest(); - } - if (uploadImagePresenter != null) { - uploadImagePresenter.disposeRetrofitRequest(); - } - if (caseHandlePresenter != null) { - caseHandlePresenter.disposeRetrofitRequest(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java new file mode 100644 index 0000000..5ea5403 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -0,0 +1,145 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { + + @BindView(R.id.detailTopLayout) + QMUITopBarLayout detailTopLayout; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @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; + + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private CaseDetailPresenterImpl caseDetailPresenter; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handled_detail; + } + + @Override + protected void setupTopBarLayout() { + detailTopLayout.setTitle("已办案卷").setTextColor(ContextCompat.getColor(this, R.color.white)); + detailTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + detailTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + String id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + } + + @Override + public void initEvent() { + + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseHandleStatusView.setText(data.getCaseStateName()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @OnClick(R.id.handleLayout) + @Override + public void onClick(View v) { + if (v.getId() == R.id.handleLayout) { + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java new file mode 100644 index 0000000..3b2d3d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -0,0 +1,228 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.TextView; + +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.presenter.CaseCommonSentencePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseUpdateSupervisePresenterImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseOverTimeView) + TextView caseOverTimeView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @BindView(R.id.casePlaceView) + EditText casePlaceView; + @BindView(R.id.caseDescriptionView) + TextView caseDescriptionView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseHandleResultView) + EditText caseHandleResultView; + @BindView(R.id.caseCommonSentenceView) + TextView caseCommonSentenceView; + + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseCommonSentencePresenterImpl commonSentencePresenter; + private CaseUpdateSupervisePresenterImpl updateSupervisePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_todo_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + commonSentencePresenter = new CaseCommonSentencePresenterImpl(this); + updateSupervisePresenter = new CaseUpdateSupervisePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @Override + public void initEvent() { + + } + + @OnClick({R.id.caseHandleLayout, R.id.caseCommonSentenceLayout, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseHandleLayout: + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + break; + case R.id.caseCommonSentenceLayout: + commonSentencePresenter.onReadyRetrofitRequest(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String remarks = caseHandleResultView.getText().toString(); + if (TextUtils.isEmpty(remarks)) { + ToastHelper.showToast("督办意见不能为空", ToastHelper.WARING); + return; + } + updateSupervisePresenter.onReadyRetrofitRequest(id, remarks); + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseOverTimeView.setText(data.getNodeLimittime()); + caseHandleStatusView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + casePlaceView.setText(data.getFieldintro()); + caseDescriptionView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainCommonSentenceData(CommonSentenceBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("常用语句"); + for (CommonSentenceBean.DataBean dataBean : dataBeans) { + 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(); + + CommonSentenceBean.DataBean dataBean = dataBeans.get(position); + caseCommonSentenceView.setText(dataBean.getName()); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUpdateSuperviseData(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷督办提交成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷督办提交失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (commonSentencePresenter != null) { + commonSentencePresenter.disposeRetrofitRequest(); + } + if (updateSupervisePresenter != null) { + updateSupervisePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 3060e1b..af6a9fe 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -191,7 +191,7 @@ caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); - caseHandleView.setText(data.getUrgeRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); caseSituationView.setText(data.getDescription()); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index 7816221..3989633 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -28,6 +28,7 @@ import com.casic.dcms.ui.OvertimeCaseActivity; import com.casic.dcms.ui.PersonOnlineActivity; import com.casic.dcms.ui.UrgentCaseActivity; +import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.StringHelper; import com.qmuiteam.qmui.widget.QMUIRadiusImageView; @@ -69,62 +70,12 @@ @Override protected void initEvent() { - HomeRecycleAdapter adapter = new HomeRecycleAdapter(context); - homeRecyclerView.setLayoutManager(new GridLayoutManager(context, 3)); - homeRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - Intent intent = new Intent(); - switch (position) { - case 0: - intent.setClass(context, CaseUploadActivity.class); - break; - case 1: - intent.setClass(context, CaseUploadQuicklyActivity.class); - break; - case 2: - intent.setClass(context, FivePackageUploadActivity.class); - break; - case 3: - intent.setClass(context, CaseVerifyActivity.class); - break; - case 4: - intent.setClass(context, CaseCheckActivity.class); - break; - case 5: - intent.setClass(context, CaseHandleActivity.class); - break; - case 6: - intent.setClass(context, UrgentCaseActivity.class); - break; - case 7: - intent.setClass(context, OvertimeCaseActivity.class); - break; - case 8: - intent.setClass(context, DataAnalysisActivity.class); - break; - case 9: - intent.setClass(context, PersonOnlineActivity.class); - break; - case 10: - intent.setClass(context, CaseSearchActivity.class); - break; - case 11: - intent.setClass(context, MapWatchViewActivity.class); - break; - default: - break; - } - startActivity(intent); - } - }); + } @SuppressLint("SetTextI18n") @Override public void obtainUserData(UserBean userBean) { -// Log.d(TAG, "obtainUserData: " + new Gson().toJson(userBean)); if (userBean.isSuccess()) { //QMUIRadiusImageView无法动态设置圆形头像,借助Glide实现圆形头像 Glide.with(this).load(R.mipmap.app_logo).apply(RequestOptions.circleCropTransform()).into(userIconView); @@ -137,6 +88,121 @@ StringHelper.saveUserPhone(data.getPhone()); StringHelper.saveUserDept(data.getDeptName()); StringHelper.saveUserDeptId(data.getDeptId()); + + //权限控制 + String roleTip = data.getRoleTips().get(0); + HomeRecycleAdapter adapter = new HomeRecycleAdapter(context); + homeRecyclerView.setLayoutManager(new GridLayoutManager(context, 3)); + switch (roleTip) { + case "supervisor": + //All + adapter.setItemData(Constant.ALL_ICONS, Constant.ALL_ITEMS); + adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { + @Override + public void onClick(int position) { + Intent intent = new Intent(); + switch (position) { + case 0: + intent.setClass(context, CaseUploadActivity.class); + break; + case 1: + intent.setClass(context, CaseUploadQuicklyActivity.class); + break; + case 2: + intent.setClass(context, FivePackageUploadActivity.class); + break; + case 3: + intent.setClass(context, CaseVerifyActivity.class); + break; + case 4: + intent.setClass(context, CaseCheckActivity.class); + break; + case 5: + intent.setClass(context, CaseHandleActivity.class); + break; + case 6: + intent.setClass(context, UrgentCaseActivity.class); + break; + case 7: + intent.setClass(context, OvertimeCaseActivity.class); + break; + case 8: + intent.setClass(context, DataAnalysisActivity.class); + break; + case 9: + intent.setClass(context, PersonOnlineActivity.class); + break; + case 10: + intent.setClass(context, CaseSearchActivity.class); + break; + case 11: + intent.setClass(context, MapWatchViewActivity.class); + break; + default: + break; + } + startActivity(intent); + } + }); + break; +// case "process": +// //案卷处理、案卷查询 +// adapter.setItemData(Constant.PROCESS_ICONS, Constant.PROCESS_ITEMS); +// adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { +// @Override +// public void onClick(int position) { +// Intent intent = new Intent(); +// switch (position) { +// case 0: +// intent.setClass(context, CaseHandleActivity.class); +// break; +// case 1: +// intent.setClass(context, CaseSearchActivity.class); +// break; +// default: +// break; +// } +// startActivity(intent); +// } +// }); +// break; +// case "leader": +// //案卷上报、紧急要件、超时督办、统计分析、在岗人员、案卷查询 +// adapter.setItemData(Constant.LEADER_ICONS, Constant.LEADER_ITEMS); +// adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { +// @Override +// public void onClick(int position) { +// Intent intent = new Intent(); +// switch (position) { +// case 0: +// intent.setClass(context, CaseUploadActivity.class); +// break; +// case 1: +// intent.setClass(context, UrgentCaseActivity.class); +// break; +// case 2: +// intent.setClass(context, OvertimeCaseActivity.class); +// break; +// case 3: +// intent.setClass(context, DataAnalysisActivity.class); +// break; +// case 4: +// intent.setClass(context, PersonOnlineActivity.class); +// break; +// case 5: +// intent.setClass(context, CaseSearchActivity.class); +// break; +// default: +// break; +// } +// startActivity(intent); +// } +// }); +// break; + default: + break; + } + homeRecyclerView.setAdapter(adapter); } } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java index 430f8be..fa2df7a 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandledBean; import com.casic.dcms.mvp.presenter.CaseHandledListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandledListView; +import com.casic.dcms.ui.CaseHandledDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -128,10 +130,9 @@ adapter.setOnItemClickListener(new CaseHandledAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandledDetailActivity.class); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java index 502c288..05306fe 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -130,10 +132,10 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "待办案卷"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java index 25877de..743a092 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java @@ -17,7 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; -import com.casic.dcms.ui.CaseHandleOvertimeDetailActivity; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -133,7 +133,8 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { - Intent intent = new Intent(context, CaseHandleOvertimeDetailActivity.class); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "超时案卷"); intent.putExtra("id", dataBeans.get(position).getId()); startActivity(intent); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java index f957e26..ae0b3e5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -131,10 +133,10 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "紧急案卷"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java index 18178eb..5d51969 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.OvertimeCaseBean; import com.casic.dcms.mvp.presenter.OvertimeCaseListPresenterImpl; import com.casic.dcms.mvp.view.IOvertimeCaseListView; +import com.casic.dcms.ui.CaseTodoDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -128,10 +130,10 @@ adapter.setOnItemClickListener(new OvertimeCaseAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseTodoDetailActivity.class); + intent.putExtra("title", "超时督办"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f6ac20a..2070c95 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -67,12 +67,14 @@ - + - + + + { private Context context; + private List iconData = new ArrayList<>(); + private List itemData = new ArrayList<>(); public HomeRecycleAdapter(Context context) { this.context = context; } + public void setItemData(@Nullable List icons, @Nullable List items) { + this.iconData = icons; + this.itemData = items; + } + @NonNull @Override public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -30,7 +40,7 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - holder.bindView(context, position); + holder.bindView(position); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override @@ -43,7 +53,7 @@ @Override public int getItemCount() { - return Constant.ITEMS.size(); + return itemData.size(); } private OnGridItemClickListener clickListener; @@ -56,7 +66,7 @@ this.clickListener = onGridItemClickListener; } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { private ImageView imageView; private TextView textView; @@ -67,9 +77,9 @@ textView = itemView.findViewById(R.id.textView); } - void bindView(Context context, int position) { - imageView.setBackgroundResource(Constant.ICONS.get(position)); - textView.setText(Constant.ITEMS.get(position)); + void bindView(int position) { + imageView.setBackgroundResource(iconData.get(position)); + textView.setText(itemData.get(position)); } } } diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index b9c4615..d9b10e0 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; import java.util.ArrayList; @@ -62,7 +63,10 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - Glide.with(context).load(mediaList.get(position)).into(holder.imageView); + Glide.with(context) + .load(mediaList.get(position)) + .apply(new RequestOptions().error(R.drawable.ic_load_error)) + .into(holder.imageView); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/casic/dcms/base/BaseActivity.java b/app/src/main/java/com/casic/dcms/base/BaseActivity.java index caf0356..2ca87fe 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseActivity.java +++ b/app/src/main/java/com/casic/dcms/base/BaseActivity.java @@ -17,8 +17,8 @@ setContentView(initLayoutView()); ButterKnife.bind(this); QMUIStatusBarHelper.translucent(this);//沉浸式状态栏 - setupTopBarLayout(); initData(); + setupTopBarLayout(); initEvent(); } diff --git a/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java new file mode 100644 index 0000000..8de58a4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java @@ -0,0 +1,78 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CommonSentenceBean { + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 请及时处理 + * id : 156 + * value : 请及时处理 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java new file mode 100644 index 0000000..5258d89 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CommonSentenceBean; +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 CaseCommonSentenceModelImpl implements ICaseCommonSentenceModel { + + private OnGetCommonSentenceListener sentenceListener; + + public CaseCommonSentenceModelImpl(OnGetCommonSentenceListener commonSentenceListener) { + this.sentenceListener = commonSentenceListener; + } + + public interface OnGetCommonSentenceListener { + void onSuccess(CommonSentenceBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCommonSentenceResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (sentenceListener != null) { + sentenceListener.onFailure(e); + } + } + + @Override + public void onNext(CommonSentenceBean resultBean) { + if (resultBean != null) { + sentenceListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java new file mode 100644 index 0000000..a8cb3fc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java @@ -0,0 +1,53 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseUpdateSuperviseModelImpl implements ICaseUpdateSuperviseModel { + + private OnUpdateSuperviseListener listener; + + public CaseUpdateSuperviseModelImpl(OnUpdateSuperviseListener updateSuperviseListener) { + this.listener = updateSuperviseListener; + } + + /** + * 数据回调接口 + */ + public interface OnUpdateSuperviseListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String superviseRemarks) { + Observable observable = RetrofitServiceManager.getUpdateSuperviseResult(id, superviseRemarks); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java new file mode 100644 index 0000000..263ef6c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseCommonSentenceModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java new file mode 100644 index 0000000..518d602 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseUpdateSuperviseModel { + Subscription sendRetrofitRequest(String id, String superviseRemarks); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java new file mode 100644 index 0000000..6b65f13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseCommonSentenceModelImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; + +public class CaseCommonSentencePresenterImpl extends BasePresenter implements ICaseCommonSentencePresenter, + CaseCommonSentenceModelImpl.OnGetCommonSentenceListener { + + private ICaseCommonSentenceView view; + private CaseCommonSentenceModelImpl actionModel; + + public CaseCommonSentencePresenterImpl(ICaseCommonSentenceView commonSentenceView) { + this.view = commonSentenceView; + actionModel = new CaseCommonSentenceModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CommonSentenceBean resultBean) { + view.obtainCommonSentenceData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java new file mode 100644 index 0000000..66e1f44 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseUpdateSuperviseModelImpl; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; + +public class CaseUpdateSupervisePresenterImpl extends BasePresenter implements ICaseUpdateSupervisePresenter, + CaseUpdateSuperviseModelImpl.OnUpdateSuperviseListener { + + private ICaseUpdateSuperviseView view; + private CaseUpdateSuperviseModelImpl actionModel; + + public CaseUpdateSupervisePresenterImpl(ICaseUpdateSuperviseView updateSuperviseView) { + this.view = updateSuperviseView; + actionModel = new CaseUpdateSuperviseModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String superviseRemarks) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, superviseRemarks)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainUpdateSuperviseData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java new file mode 100644 index 0000000..1f8bd09 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseCommonSentencePresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java new file mode 100644 index 0000000..f61f9b2 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseUpdateSupervisePresenter { + void onReadyRetrofitRequest(String id, String superviseRemarks); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java new file mode 100644 index 0000000..9c7b08b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CommonSentenceBean; + +public interface ICaseCommonSentenceView { + void obtainCommonSentenceData(CommonSentenceBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java new file mode 100644 index 0000000..10bcf5a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICaseUpdateSuperviseView { + void showProgress(); + + void hideProgress(); + + void obtainUpdateSuperviseData(ActionResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java index ad70b7a..9143db8 100644 --- a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.ui; +import android.view.View; + +import androidx.core.content.ContextCompat; + import com.bumptech.glide.Glide; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.luck.picture.lib.photoview.PhotoView; -import com.qmuiteam.qmui.util.QMUIStatusBarHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; import butterknife.BindView; @@ -15,6 +19,8 @@ **/ public class BigPictureActivity extends BaseActivity { + @BindView(R.id.imageTopLayout) + QMUITopBarLayout imageTopLayout; @BindView(R.id.photoView) PhotoView photoView; @@ -25,37 +31,24 @@ @Override protected void setupTopBarLayout() { - QMUIStatusBarHelper.setStatusBarLightMode(this); + imageTopLayout.setTitle("查看大图").setTextColor(ContextCompat.getColor(this, R.color.white)); + imageTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + imageTopLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); } @Override public void initData() { -// String mediaJson = getIntent().getStringExtra("mediaJson"); -// -// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() { -// }.getType()); -// -// list = new ArrayList<>(); -// assert mediaList != null; -// for (LocalMedia media : mediaList) { -// list.add(media.getRealPath()); -// } String path = getIntent().getStringExtra("path"); Glide.with(this).load(path).into(photoView); } @Override public void initEvent() { -// //轮播图 -// bigImageBanner.setImageLoader(new ImageLoader() { -// -// @Override -// public void displayImage(Context context, Object path, ImageView imageView) { -// Glide.with(context).load(path).into(imageView); -// } -// }); -// bigImageBanner.isAutoPlay(false); -// bigImageBanner.setImages(list); -// bigImageBanner.start(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index 01a3807..7548cfc 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -329,7 +329,7 @@ caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java new file mode 100644 index 0000000..d4dba38 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -0,0 +1,505 @@ +package com.casic.dcms.ui; + +import android.content.DialogInterface; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseNextNodeBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseHandleView; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseNextNodeView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.IUploadFileView; +import com.casic.dcms.utils.FileUtils; +import com.casic.dcms.utils.GlideLoadEngine; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.luck.picture.lib.PictureSelector; +import com.luck.picture.lib.config.PictureConfig; +import com.luck.picture.lib.config.PictureMimeType; +import com.luck.picture.lib.entity.LocalMedia; +import com.luck.picture.lib.tools.PictureFileUtils; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, + ICaseHandleView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @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) + EditText casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.caseHandleView) + TextView caseHandleView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseStartTimeView) + TextView caseStartTimeView; + @BindView(R.id.caseEndTimeView) + TextView caseEndTimeView; + @BindView(R.id.caseHandleResultView) + TextView caseHandleResultView; + @BindView(R.id.caseHandleRecyclerView) + RecyclerView caseHandleRecyclerView; + @BindView(R.id.addImageView) + ImageView addImageView; + @BindView(R.id.caseReasonView) + EditText caseReasonView; + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private String changeState; + private String caseReason; + private String approvalResult; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private List largeClassBeans = new ArrayList<>(); + private List smallClassBeans = new ArrayList<>(); + private List realPaths = new ArrayList<>();//真实图片路径 + private List mediaList = new ArrayList<>();//上传到服务器的数据集 + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private CaseNextNodePresenterImpl caseNextNodePresenter; + private UploadImagePresenterImpl uploadImagePresenter; + private CaseHandlePresenterImpl caseHandlePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handle_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseNextNodePresenter = new CaseNextNodePresenterImpl(this); + uploadImagePresenter = new UploadImagePresenterImpl(this); + caseHandlePresenter = new CaseHandlePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @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()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + caseStartTimeView.setText(data.getCreateTime()); + caseEndTimeView.setText(data.getNodeLimittime()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeTypeView.setText("无小类"); + } else { + caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 + } + caseSmallTypeView.setText("请选择"); + } + } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallTypeView.setText("无小类"); + } else { + caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 + } + } + } + + @Override + public void obtainNextNodeData(CaseNextNodeBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处理结果"); + for (CaseNextNodeBean.DataBean dataBean : dataBeans) { + 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(); + + CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); + caseHandleResultView.setText(dataBean.getNextOperation()); + changeState = String.valueOf(dataBean.getNextState()); + approvalResult = dataBean.getApprovalResult(); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseClassLayout: + 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(); + + caseTypeView.setText(tag); + //获取案卷大类 + caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseLargeTypeView.setText(tag); + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseSmallTypeView.setText(tag); + } + }).build().show(); + } + } + break; + case R.id.caseHandleResultLayout: + caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); + break; + case R.id.addImageView: + new QMUIDialog.MenuDialogBuilder(this) + .addItem("相册中选取", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //选图 + selectPicture(); + } + }) + .addItem("相机拍照", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //拍照 + takePicture(); + } + }) + .create().show(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String handleResult = caseHandleResultView.getText().toString(); + if (handleResult.equals("请选择")) { + ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); + return; + } + if (handleResult.equals("处理完成")) { + //选择处理完成时,处理图片必传。至少一张,最多两张 + if (mediaList.size() < 1 || mediaList.size() > 2) { + ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); + return; + } + } + if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { + caseReason = caseReasonView.getText().toString(); + if (TextUtils.isEmpty(caseReason)) { + ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); + return; + } + } + caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), + changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); + } + + private void selectPicture() { + PictureSelector.create(this) + .openGallery(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(2) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.CHOOSE_REQUEST); + } + + private void takePicture() { + PictureSelector.create(this) + .openCamera(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(1) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.REQUEST_CAMERA); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == RESULT_OK) { + switch (requestCode) { + case PictureConfig.CHOOSE_REQUEST: + List selectList = PictureSelector.obtainMultipleResult(data); + for (LocalMedia media : selectList) { + String mediaCompressPath = media.getCompressPath(); + uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); + } + break; + case PictureConfig.REQUEST_CAMERA: + LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); + uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); + break; + default: + break; + } + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUploadAudioResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainUploadImageResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + PictureFileUtils.deleteAllCacheDirFile(this); + /** + * 系统路径static拼接图片返回路径 + * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg + */ + //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg + String url = resultBean.getData(); + mediaList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(realPaths); + caseHandleRecyclerView.setVisibility(View.VISIBLE); + caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); + caseHandleRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(realPaths.get(position)); + } + }); + //删除按钮点击事件 + imageAdapter.setDeleteView(true); + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } + } + + @Override + public void obtainUploadVideoResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainCaseHandleResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseNextNodePresenter != null) { + caseNextNodePresenter.disposeRetrofitRequest(); + } + if (uploadImagePresenter != null) { + uploadImagePresenter.disposeRetrofitRequest(); + } + if (caseHandlePresenter != null) { + caseHandlePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java deleted file mode 100644 index bd187c5..0000000 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java +++ /dev/null @@ -1,500 +0,0 @@ -package com.casic.dcms.ui; - -import android.content.DialogInterface; -import android.content.Intent; -import android.text.TextUtils; -import android.view.View; -import android.widget.EditText; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.Nullable; -import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.adapter.ImageRecycleViewAdapter; -import com.casic.dcms.base.BaseCaseActivity; -import com.casic.dcms.bean.ActionResultBean; -import com.casic.dcms.bean.CaseDetailBean; -import com.casic.dcms.bean.CaseLargeClassBean; -import com.casic.dcms.bean.CaseNextNodeBean; -import com.casic.dcms.bean.CaseSmallClassBean; -import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; -import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; -import com.casic.dcms.mvp.view.ICaseDetailView; -import com.casic.dcms.mvp.view.ICaseHandleView; -import com.casic.dcms.mvp.view.ICaseLargeClassView; -import com.casic.dcms.mvp.view.ICaseNextNodeView; -import com.casic.dcms.mvp.view.ICaseSmallClassView; -import com.casic.dcms.mvp.view.IUploadFileView; -import com.casic.dcms.utils.FileUtils; -import com.casic.dcms.utils.GlideLoadEngine; -import com.casic.dcms.utils.ItemDecorationSpace; -import com.casic.dcms.utils.StringHelper; -import com.casic.dcms.utils.ToastHelper; -import com.luck.picture.lib.PictureSelector; -import com.luck.picture.lib.config.PictureConfig; -import com.luck.picture.lib.config.PictureMimeType; -import com.luck.picture.lib.entity.LocalMedia; -import com.luck.picture.lib.tools.PictureFileUtils; -import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; -import com.qmuiteam.qmui.widget.dialog.QMUIDialog; -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; - -import butterknife.BindView; -import butterknife.OnClick; - -public class CaseHandleOvertimeDetailActivity extends BaseCaseActivity implements View.OnClickListener, - ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, - ICaseHandleView { - - @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) - EditText casePlaceView; - @BindView(R.id.caseSituationView) - TextView caseSituationView; - @BindView(R.id.caseHandleView) - TextView caseHandleView; - @BindView(R.id.casePicRecyclerView) - RecyclerView casePicRecyclerView; - @BindView(R.id.caseStartTimeView) - TextView caseStartTimeView; - @BindView(R.id.caseEndTimeView) - TextView caseEndTimeView; - @BindView(R.id.caseHandleResultView) - TextView caseHandleResultView; - @BindView(R.id.caseHandleRecyclerView) - RecyclerView caseHandleRecyclerView; - @BindView(R.id.addImageView) - ImageView addImageView; - @BindView(R.id.caseReasonView) - EditText caseReasonView; - @BindView(R.id.submitButton) - QMUIRoundButton submitButton; - - private String id; - private String changeState; - private String caseReason; - private String approvalResult; - private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); - private List largeClassBeans = new ArrayList<>(); - private List smallClassBeans = new ArrayList<>(); - private List realPaths = new ArrayList<>();//真实图片路径 - private List mediaList = new ArrayList<>();//上传到服务器的数据集 - - private CaseDetailPresenterImpl caseDetailPresenter; - private CaseLargeClassPresenterImpl caseLargeClassPresenter; - private CaseSmallClassPresenterImpl caseSmallClassPresenter; - private CaseNextNodePresenterImpl caseNextNodePresenter; - private UploadImagePresenterImpl uploadImagePresenter; - private CaseHandlePresenterImpl caseHandlePresenter; - - private QMUITipDialog submitDialog; - - @Override - public int initLayoutView() { - return R.layout.activity_case_handle_overtime; - } - - @Override - protected String setTitleName() { - return "超时案卷"; - } - - @Override - public void initData() { - id = getIntent().getStringExtra("id"); - caseDetailPresenter = new CaseDetailPresenterImpl(this); - caseDetailPresenter.onReadyRetrofitRequest(id); - - caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); - caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); - caseNextNodePresenter = new CaseNextNodePresenterImpl(this); - uploadImagePresenter = new UploadImagePresenterImpl(this); - caseHandlePresenter = new CaseHandlePresenterImpl(this); - - submitDialog = new QMUITipDialog.Builder(this) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord("提交中,请稍后") - .create(); - } - - @Override - public void initEvent() { - submitButton.setChangeAlphaWhenPress(true); - } - - @Override - public void obtainCaseDetailData(CaseDetailBean resultBean) { - if (resultBean.isSuccess()) { - this.data = resultBean.getData().get(0); - caseTypeView.setText(data.getEorcName()); - caseLargeTypeView.setText(data.getCasetypeName()); - caseSmallTypeView.setText(data.getCasetypeDetailName()); - caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro()); - caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); - caseStartTimeView.setText(data.getCreateTime()); - caseEndTimeView.setText(data.getNodeLimittime()); - - String verifyImages = data.getFileIdVerify(); - if (!TextUtils.isEmpty(verifyImages)) { - List urls = new ArrayList<>(); - String[] split = verifyImages.split(","); - for (String s : split) { - urls.add(StringHelper.appendCompleteURL(s)); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(urls); - casePicRecyclerView.setVisibility(View.VISIBLE); - casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); - casePicRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(urls.get(position)); - } - }); - imageAdapter.setDeleteView(false); - } - } - } - - private void showBigImage(String path) { - Intent intent = new Intent(this, BigPictureActivity.class); - intent.putExtra("path", path); - startActivity(intent); - } - - @Override - public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { - if (largeClassBean.isSuccess()) { - //设置大类数据 - this.largeClassBeans = largeClassBean.getData(); - if (largeClassBeans.size() == 0) { - caseLargeTypeView.setText("无小类"); - } else { - caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 - } - caseSmallTypeView.setText("请选择"); - } - } - - @Override - public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { - if (smallClassBean.isSuccess()) { - //设置大类数据 - this.smallClassBeans = smallClassBean.getData(); - if (smallClassBeans.size() == 0) { - caseSmallTypeView.setText("无小类"); - } else { - caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 - } - } - } - - @Override - public void obtainNextNodeData(CaseNextNodeBean resultBean) { - if (resultBean.isSuccess()) { - List dataBeans = resultBean.getData(); - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("处理结果"); - for (CaseNextNodeBean.DataBean dataBean : dataBeans) { - 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(); - - CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); - caseHandleResultView.setText(dataBean.getNextOperation()); - changeState = String.valueOf(dataBean.getNextState()); - approvalResult = dataBean.getApprovalResult(); - } - }).build().show(); - } else { - ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); - } - } - - @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) - @Override - public void onClick(View v) { - switch (v.getId()) { - case R.id.caseClassLayout: - 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(); - - caseTypeView.setText(tag); - //获取案卷大类 - caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); - } - }).build().show(); - break; - case R.id.caseLargeClassLayout: - if (largeClassBeans != null) { - if (largeClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷大类"); - for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { - sheetBuilder.addItem(dataBean.getTypeName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseLargeTypeView.setText(tag); - //获取案卷小类 - CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); - String typeId = dataBean.getId(); - caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); - } - }).build().show(); - } - } - break; - case R.id.caseSmallClassLayout: - if (smallClassBeans != null) { - if (smallClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷小类"); - for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { - sheetBuilder.addItem(dataBean.getTypeDetailName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseSmallTypeView.setText(tag); - } - }).build().show(); - } - } - break; - case R.id.caseHandleResultLayout: - caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); - break; - case R.id.addImageView: - new QMUIDialog.MenuDialogBuilder(this) - .addItem("相册中选取", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //选图 - selectPicture(); - } - }) - .addItem("相机拍照", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //拍照 - takePicture(); - } - }) - .create().show(); - break; - case R.id.submitButton: - submitCase();//案卷提交 - break; - default: - break; - } - } - - private void submitCase() { - String handleResult = caseHandleResultView.getText().toString(); - if (handleResult.equals("请选择")) { - ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); - return; - } - if (handleResult.equals("处理完成")) { - //选择处理完成时,处理图片必传。至少一张,最多两张 - if (mediaList.size() < 1 || mediaList.size() > 2) { - ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); - return; - } - } - if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { - caseReason = caseReasonView.getText().toString(); - if (TextUtils.isEmpty(caseReason)) { - ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); - return; - } - } - caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), - changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); - } - - private void selectPicture() { - PictureSelector.create(this) - .openGallery(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(2) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.CHOOSE_REQUEST); - } - - private void takePicture() { - PictureSelector.create(this) - .openCamera(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(1) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.REQUEST_CAMERA); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if (resultCode == RESULT_OK) { - switch (requestCode) { - case PictureConfig.CHOOSE_REQUEST: - List selectList = PictureSelector.obtainMultipleResult(data); - for (LocalMedia media : selectList) { - String mediaCompressPath = media.getCompressPath(); - uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); - } - break; - case PictureConfig.REQUEST_CAMERA: - LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); - uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); - break; - default: - break; - } - } - } - - @Override - public void showProgress() { - submitDialog.show(); - } - - @Override - public void hideProgress() { - submitDialog.hide(); - } - - @Override - public void obtainUploadAudioResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainUploadImageResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - PictureFileUtils.deleteAllCacheDirFile(this); - /** - * 系统路径static拼接图片返回路径 - * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg - */ - //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String url = resultBean.getData(); - mediaList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(realPaths); - caseHandleRecyclerView.setVisibility(View.VISIBLE); - caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); - caseHandleRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(realPaths.get(position)); - } - }); - //删除按钮点击事件 - imageAdapter.setDeleteView(true); - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); - } - } - }); - } - } - - @Override - public void obtainUploadVideoResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainCaseHandleResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); - finish(); - } else { - ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); - } - } - - @Override - protected void onDestroy() { - super.onDestroy(); - if (caseDetailPresenter != null) { - caseDetailPresenter.disposeRetrofitRequest(); - } - if (caseLargeClassPresenter != null) { - caseLargeClassPresenter.disposeRetrofitRequest(); - } - if (caseSmallClassPresenter != null) { - caseSmallClassPresenter.disposeRetrofitRequest(); - } - if (caseNextNodePresenter != null) { - caseNextNodePresenter.disposeRetrofitRequest(); - } - if (uploadImagePresenter != null) { - uploadImagePresenter.disposeRetrofitRequest(); - } - if (caseHandlePresenter != null) { - caseHandlePresenter.disposeRetrofitRequest(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java new file mode 100644 index 0000000..5ea5403 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -0,0 +1,145 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { + + @BindView(R.id.detailTopLayout) + QMUITopBarLayout detailTopLayout; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @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; + + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private CaseDetailPresenterImpl caseDetailPresenter; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handled_detail; + } + + @Override + protected void setupTopBarLayout() { + detailTopLayout.setTitle("已办案卷").setTextColor(ContextCompat.getColor(this, R.color.white)); + detailTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + detailTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + String id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + } + + @Override + public void initEvent() { + + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseHandleStatusView.setText(data.getCaseStateName()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @OnClick(R.id.handleLayout) + @Override + public void onClick(View v) { + if (v.getId() == R.id.handleLayout) { + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java new file mode 100644 index 0000000..3b2d3d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -0,0 +1,228 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.TextView; + +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.presenter.CaseCommonSentencePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseUpdateSupervisePresenterImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseOverTimeView) + TextView caseOverTimeView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @BindView(R.id.casePlaceView) + EditText casePlaceView; + @BindView(R.id.caseDescriptionView) + TextView caseDescriptionView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseHandleResultView) + EditText caseHandleResultView; + @BindView(R.id.caseCommonSentenceView) + TextView caseCommonSentenceView; + + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseCommonSentencePresenterImpl commonSentencePresenter; + private CaseUpdateSupervisePresenterImpl updateSupervisePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_todo_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + commonSentencePresenter = new CaseCommonSentencePresenterImpl(this); + updateSupervisePresenter = new CaseUpdateSupervisePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @Override + public void initEvent() { + + } + + @OnClick({R.id.caseHandleLayout, R.id.caseCommonSentenceLayout, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseHandleLayout: + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + break; + case R.id.caseCommonSentenceLayout: + commonSentencePresenter.onReadyRetrofitRequest(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String remarks = caseHandleResultView.getText().toString(); + if (TextUtils.isEmpty(remarks)) { + ToastHelper.showToast("督办意见不能为空", ToastHelper.WARING); + return; + } + updateSupervisePresenter.onReadyRetrofitRequest(id, remarks); + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseOverTimeView.setText(data.getNodeLimittime()); + caseHandleStatusView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + casePlaceView.setText(data.getFieldintro()); + caseDescriptionView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainCommonSentenceData(CommonSentenceBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("常用语句"); + for (CommonSentenceBean.DataBean dataBean : dataBeans) { + 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(); + + CommonSentenceBean.DataBean dataBean = dataBeans.get(position); + caseCommonSentenceView.setText(dataBean.getName()); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUpdateSuperviseData(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷督办提交成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷督办提交失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (commonSentencePresenter != null) { + commonSentencePresenter.disposeRetrofitRequest(); + } + if (updateSupervisePresenter != null) { + updateSupervisePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 3060e1b..af6a9fe 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -191,7 +191,7 @@ caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); - caseHandleView.setText(data.getUrgeRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); caseSituationView.setText(data.getDescription()); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index 7816221..3989633 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -28,6 +28,7 @@ import com.casic.dcms.ui.OvertimeCaseActivity; import com.casic.dcms.ui.PersonOnlineActivity; import com.casic.dcms.ui.UrgentCaseActivity; +import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.StringHelper; import com.qmuiteam.qmui.widget.QMUIRadiusImageView; @@ -69,62 +70,12 @@ @Override protected void initEvent() { - HomeRecycleAdapter adapter = new HomeRecycleAdapter(context); - homeRecyclerView.setLayoutManager(new GridLayoutManager(context, 3)); - homeRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - Intent intent = new Intent(); - switch (position) { - case 0: - intent.setClass(context, CaseUploadActivity.class); - break; - case 1: - intent.setClass(context, CaseUploadQuicklyActivity.class); - break; - case 2: - intent.setClass(context, FivePackageUploadActivity.class); - break; - case 3: - intent.setClass(context, CaseVerifyActivity.class); - break; - case 4: - intent.setClass(context, CaseCheckActivity.class); - break; - case 5: - intent.setClass(context, CaseHandleActivity.class); - break; - case 6: - intent.setClass(context, UrgentCaseActivity.class); - break; - case 7: - intent.setClass(context, OvertimeCaseActivity.class); - break; - case 8: - intent.setClass(context, DataAnalysisActivity.class); - break; - case 9: - intent.setClass(context, PersonOnlineActivity.class); - break; - case 10: - intent.setClass(context, CaseSearchActivity.class); - break; - case 11: - intent.setClass(context, MapWatchViewActivity.class); - break; - default: - break; - } - startActivity(intent); - } - }); + } @SuppressLint("SetTextI18n") @Override public void obtainUserData(UserBean userBean) { -// Log.d(TAG, "obtainUserData: " + new Gson().toJson(userBean)); if (userBean.isSuccess()) { //QMUIRadiusImageView无法动态设置圆形头像,借助Glide实现圆形头像 Glide.with(this).load(R.mipmap.app_logo).apply(RequestOptions.circleCropTransform()).into(userIconView); @@ -137,6 +88,121 @@ StringHelper.saveUserPhone(data.getPhone()); StringHelper.saveUserDept(data.getDeptName()); StringHelper.saveUserDeptId(data.getDeptId()); + + //权限控制 + String roleTip = data.getRoleTips().get(0); + HomeRecycleAdapter adapter = new HomeRecycleAdapter(context); + homeRecyclerView.setLayoutManager(new GridLayoutManager(context, 3)); + switch (roleTip) { + case "supervisor": + //All + adapter.setItemData(Constant.ALL_ICONS, Constant.ALL_ITEMS); + adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { + @Override + public void onClick(int position) { + Intent intent = new Intent(); + switch (position) { + case 0: + intent.setClass(context, CaseUploadActivity.class); + break; + case 1: + intent.setClass(context, CaseUploadQuicklyActivity.class); + break; + case 2: + intent.setClass(context, FivePackageUploadActivity.class); + break; + case 3: + intent.setClass(context, CaseVerifyActivity.class); + break; + case 4: + intent.setClass(context, CaseCheckActivity.class); + break; + case 5: + intent.setClass(context, CaseHandleActivity.class); + break; + case 6: + intent.setClass(context, UrgentCaseActivity.class); + break; + case 7: + intent.setClass(context, OvertimeCaseActivity.class); + break; + case 8: + intent.setClass(context, DataAnalysisActivity.class); + break; + case 9: + intent.setClass(context, PersonOnlineActivity.class); + break; + case 10: + intent.setClass(context, CaseSearchActivity.class); + break; + case 11: + intent.setClass(context, MapWatchViewActivity.class); + break; + default: + break; + } + startActivity(intent); + } + }); + break; +// case "process": +// //案卷处理、案卷查询 +// adapter.setItemData(Constant.PROCESS_ICONS, Constant.PROCESS_ITEMS); +// adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { +// @Override +// public void onClick(int position) { +// Intent intent = new Intent(); +// switch (position) { +// case 0: +// intent.setClass(context, CaseHandleActivity.class); +// break; +// case 1: +// intent.setClass(context, CaseSearchActivity.class); +// break; +// default: +// break; +// } +// startActivity(intent); +// } +// }); +// break; +// case "leader": +// //案卷上报、紧急要件、超时督办、统计分析、在岗人员、案卷查询 +// adapter.setItemData(Constant.LEADER_ICONS, Constant.LEADER_ITEMS); +// adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { +// @Override +// public void onClick(int position) { +// Intent intent = new Intent(); +// switch (position) { +// case 0: +// intent.setClass(context, CaseUploadActivity.class); +// break; +// case 1: +// intent.setClass(context, UrgentCaseActivity.class); +// break; +// case 2: +// intent.setClass(context, OvertimeCaseActivity.class); +// break; +// case 3: +// intent.setClass(context, DataAnalysisActivity.class); +// break; +// case 4: +// intent.setClass(context, PersonOnlineActivity.class); +// break; +// case 5: +// intent.setClass(context, CaseSearchActivity.class); +// break; +// default: +// break; +// } +// startActivity(intent); +// } +// }); +// break; + default: + break; + } + homeRecyclerView.setAdapter(adapter); } } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java index 430f8be..fa2df7a 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandledBean; import com.casic.dcms.mvp.presenter.CaseHandledListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandledListView; +import com.casic.dcms.ui.CaseHandledDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -128,10 +130,9 @@ adapter.setOnItemClickListener(new CaseHandledAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandledDetailActivity.class); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java index 502c288..05306fe 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -130,10 +132,10 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "待办案卷"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java index 25877de..743a092 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java @@ -17,7 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; -import com.casic.dcms.ui.CaseHandleOvertimeDetailActivity; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -133,7 +133,8 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { - Intent intent = new Intent(context, CaseHandleOvertimeDetailActivity.class); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "超时案卷"); intent.putExtra("id", dataBeans.get(position).getId()); startActivity(intent); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java index f957e26..ae0b3e5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -131,10 +133,10 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "紧急案卷"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java index 18178eb..5d51969 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.OvertimeCaseBean; import com.casic.dcms.mvp.presenter.OvertimeCaseListPresenterImpl; import com.casic.dcms.mvp.view.IOvertimeCaseListView; +import com.casic.dcms.ui.CaseTodoDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -128,10 +130,10 @@ adapter.setOnItemClickListener(new OvertimeCaseAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseTodoDetailActivity.class); + intent.putExtra("title", "超时督办"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java index 19c6766..51bdbd0 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.mvp.presenter.UrgentCaseListPresenterImpl; import com.casic.dcms.mvp.view.IUrgentCaseListView; +import com.casic.dcms.ui.CaseTodoDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -129,10 +131,10 @@ adapter.setOnItemClickListener(new UrgentCaseAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseTodoDetailActivity.class); + intent.putExtra("title", "紧急要件"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f6ac20a..2070c95 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -67,12 +67,14 @@ - + - + + + { private Context context; + private List iconData = new ArrayList<>(); + private List itemData = new ArrayList<>(); public HomeRecycleAdapter(Context context) { this.context = context; } + public void setItemData(@Nullable List icons, @Nullable List items) { + this.iconData = icons; + this.itemData = items; + } + @NonNull @Override public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -30,7 +40,7 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - holder.bindView(context, position); + holder.bindView(position); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override @@ -43,7 +53,7 @@ @Override public int getItemCount() { - return Constant.ITEMS.size(); + return itemData.size(); } private OnGridItemClickListener clickListener; @@ -56,7 +66,7 @@ this.clickListener = onGridItemClickListener; } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { private ImageView imageView; private TextView textView; @@ -67,9 +77,9 @@ textView = itemView.findViewById(R.id.textView); } - void bindView(Context context, int position) { - imageView.setBackgroundResource(Constant.ICONS.get(position)); - textView.setText(Constant.ITEMS.get(position)); + void bindView(int position) { + imageView.setBackgroundResource(iconData.get(position)); + textView.setText(itemData.get(position)); } } } diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index b9c4615..d9b10e0 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; import java.util.ArrayList; @@ -62,7 +63,10 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - Glide.with(context).load(mediaList.get(position)).into(holder.imageView); + Glide.with(context) + .load(mediaList.get(position)) + .apply(new RequestOptions().error(R.drawable.ic_load_error)) + .into(holder.imageView); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/casic/dcms/base/BaseActivity.java b/app/src/main/java/com/casic/dcms/base/BaseActivity.java index caf0356..2ca87fe 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseActivity.java +++ b/app/src/main/java/com/casic/dcms/base/BaseActivity.java @@ -17,8 +17,8 @@ setContentView(initLayoutView()); ButterKnife.bind(this); QMUIStatusBarHelper.translucent(this);//沉浸式状态栏 - setupTopBarLayout(); initData(); + setupTopBarLayout(); initEvent(); } diff --git a/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java new file mode 100644 index 0000000..8de58a4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java @@ -0,0 +1,78 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CommonSentenceBean { + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 请及时处理 + * id : 156 + * value : 请及时处理 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java new file mode 100644 index 0000000..5258d89 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CommonSentenceBean; +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 CaseCommonSentenceModelImpl implements ICaseCommonSentenceModel { + + private OnGetCommonSentenceListener sentenceListener; + + public CaseCommonSentenceModelImpl(OnGetCommonSentenceListener commonSentenceListener) { + this.sentenceListener = commonSentenceListener; + } + + public interface OnGetCommonSentenceListener { + void onSuccess(CommonSentenceBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCommonSentenceResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (sentenceListener != null) { + sentenceListener.onFailure(e); + } + } + + @Override + public void onNext(CommonSentenceBean resultBean) { + if (resultBean != null) { + sentenceListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java new file mode 100644 index 0000000..a8cb3fc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java @@ -0,0 +1,53 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseUpdateSuperviseModelImpl implements ICaseUpdateSuperviseModel { + + private OnUpdateSuperviseListener listener; + + public CaseUpdateSuperviseModelImpl(OnUpdateSuperviseListener updateSuperviseListener) { + this.listener = updateSuperviseListener; + } + + /** + * 数据回调接口 + */ + public interface OnUpdateSuperviseListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String superviseRemarks) { + Observable observable = RetrofitServiceManager.getUpdateSuperviseResult(id, superviseRemarks); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java new file mode 100644 index 0000000..263ef6c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseCommonSentenceModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java new file mode 100644 index 0000000..518d602 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseUpdateSuperviseModel { + Subscription sendRetrofitRequest(String id, String superviseRemarks); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java new file mode 100644 index 0000000..6b65f13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseCommonSentenceModelImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; + +public class CaseCommonSentencePresenterImpl extends BasePresenter implements ICaseCommonSentencePresenter, + CaseCommonSentenceModelImpl.OnGetCommonSentenceListener { + + private ICaseCommonSentenceView view; + private CaseCommonSentenceModelImpl actionModel; + + public CaseCommonSentencePresenterImpl(ICaseCommonSentenceView commonSentenceView) { + this.view = commonSentenceView; + actionModel = new CaseCommonSentenceModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CommonSentenceBean resultBean) { + view.obtainCommonSentenceData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java new file mode 100644 index 0000000..66e1f44 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseUpdateSuperviseModelImpl; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; + +public class CaseUpdateSupervisePresenterImpl extends BasePresenter implements ICaseUpdateSupervisePresenter, + CaseUpdateSuperviseModelImpl.OnUpdateSuperviseListener { + + private ICaseUpdateSuperviseView view; + private CaseUpdateSuperviseModelImpl actionModel; + + public CaseUpdateSupervisePresenterImpl(ICaseUpdateSuperviseView updateSuperviseView) { + this.view = updateSuperviseView; + actionModel = new CaseUpdateSuperviseModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String superviseRemarks) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, superviseRemarks)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainUpdateSuperviseData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java new file mode 100644 index 0000000..1f8bd09 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseCommonSentencePresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java new file mode 100644 index 0000000..f61f9b2 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseUpdateSupervisePresenter { + void onReadyRetrofitRequest(String id, String superviseRemarks); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java new file mode 100644 index 0000000..9c7b08b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CommonSentenceBean; + +public interface ICaseCommonSentenceView { + void obtainCommonSentenceData(CommonSentenceBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java new file mode 100644 index 0000000..10bcf5a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICaseUpdateSuperviseView { + void showProgress(); + + void hideProgress(); + + void obtainUpdateSuperviseData(ActionResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java index ad70b7a..9143db8 100644 --- a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.ui; +import android.view.View; + +import androidx.core.content.ContextCompat; + import com.bumptech.glide.Glide; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.luck.picture.lib.photoview.PhotoView; -import com.qmuiteam.qmui.util.QMUIStatusBarHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; import butterknife.BindView; @@ -15,6 +19,8 @@ **/ public class BigPictureActivity extends BaseActivity { + @BindView(R.id.imageTopLayout) + QMUITopBarLayout imageTopLayout; @BindView(R.id.photoView) PhotoView photoView; @@ -25,37 +31,24 @@ @Override protected void setupTopBarLayout() { - QMUIStatusBarHelper.setStatusBarLightMode(this); + imageTopLayout.setTitle("查看大图").setTextColor(ContextCompat.getColor(this, R.color.white)); + imageTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + imageTopLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); } @Override public void initData() { -// String mediaJson = getIntent().getStringExtra("mediaJson"); -// -// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() { -// }.getType()); -// -// list = new ArrayList<>(); -// assert mediaList != null; -// for (LocalMedia media : mediaList) { -// list.add(media.getRealPath()); -// } String path = getIntent().getStringExtra("path"); Glide.with(this).load(path).into(photoView); } @Override public void initEvent() { -// //轮播图 -// bigImageBanner.setImageLoader(new ImageLoader() { -// -// @Override -// public void displayImage(Context context, Object path, ImageView imageView) { -// Glide.with(context).load(path).into(imageView); -// } -// }); -// bigImageBanner.isAutoPlay(false); -// bigImageBanner.setImages(list); -// bigImageBanner.start(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index 01a3807..7548cfc 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -329,7 +329,7 @@ caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java new file mode 100644 index 0000000..d4dba38 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -0,0 +1,505 @@ +package com.casic.dcms.ui; + +import android.content.DialogInterface; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseNextNodeBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseHandleView; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseNextNodeView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.IUploadFileView; +import com.casic.dcms.utils.FileUtils; +import com.casic.dcms.utils.GlideLoadEngine; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.luck.picture.lib.PictureSelector; +import com.luck.picture.lib.config.PictureConfig; +import com.luck.picture.lib.config.PictureMimeType; +import com.luck.picture.lib.entity.LocalMedia; +import com.luck.picture.lib.tools.PictureFileUtils; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, + ICaseHandleView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @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) + EditText casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.caseHandleView) + TextView caseHandleView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseStartTimeView) + TextView caseStartTimeView; + @BindView(R.id.caseEndTimeView) + TextView caseEndTimeView; + @BindView(R.id.caseHandleResultView) + TextView caseHandleResultView; + @BindView(R.id.caseHandleRecyclerView) + RecyclerView caseHandleRecyclerView; + @BindView(R.id.addImageView) + ImageView addImageView; + @BindView(R.id.caseReasonView) + EditText caseReasonView; + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private String changeState; + private String caseReason; + private String approvalResult; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private List largeClassBeans = new ArrayList<>(); + private List smallClassBeans = new ArrayList<>(); + private List realPaths = new ArrayList<>();//真实图片路径 + private List mediaList = new ArrayList<>();//上传到服务器的数据集 + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private CaseNextNodePresenterImpl caseNextNodePresenter; + private UploadImagePresenterImpl uploadImagePresenter; + private CaseHandlePresenterImpl caseHandlePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handle_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseNextNodePresenter = new CaseNextNodePresenterImpl(this); + uploadImagePresenter = new UploadImagePresenterImpl(this); + caseHandlePresenter = new CaseHandlePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @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()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + caseStartTimeView.setText(data.getCreateTime()); + caseEndTimeView.setText(data.getNodeLimittime()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeTypeView.setText("无小类"); + } else { + caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 + } + caseSmallTypeView.setText("请选择"); + } + } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallTypeView.setText("无小类"); + } else { + caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 + } + } + } + + @Override + public void obtainNextNodeData(CaseNextNodeBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处理结果"); + for (CaseNextNodeBean.DataBean dataBean : dataBeans) { + 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(); + + CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); + caseHandleResultView.setText(dataBean.getNextOperation()); + changeState = String.valueOf(dataBean.getNextState()); + approvalResult = dataBean.getApprovalResult(); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseClassLayout: + 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(); + + caseTypeView.setText(tag); + //获取案卷大类 + caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseLargeTypeView.setText(tag); + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseSmallTypeView.setText(tag); + } + }).build().show(); + } + } + break; + case R.id.caseHandleResultLayout: + caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); + break; + case R.id.addImageView: + new QMUIDialog.MenuDialogBuilder(this) + .addItem("相册中选取", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //选图 + selectPicture(); + } + }) + .addItem("相机拍照", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //拍照 + takePicture(); + } + }) + .create().show(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String handleResult = caseHandleResultView.getText().toString(); + if (handleResult.equals("请选择")) { + ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); + return; + } + if (handleResult.equals("处理完成")) { + //选择处理完成时,处理图片必传。至少一张,最多两张 + if (mediaList.size() < 1 || mediaList.size() > 2) { + ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); + return; + } + } + if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { + caseReason = caseReasonView.getText().toString(); + if (TextUtils.isEmpty(caseReason)) { + ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); + return; + } + } + caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), + changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); + } + + private void selectPicture() { + PictureSelector.create(this) + .openGallery(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(2) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.CHOOSE_REQUEST); + } + + private void takePicture() { + PictureSelector.create(this) + .openCamera(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(1) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.REQUEST_CAMERA); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == RESULT_OK) { + switch (requestCode) { + case PictureConfig.CHOOSE_REQUEST: + List selectList = PictureSelector.obtainMultipleResult(data); + for (LocalMedia media : selectList) { + String mediaCompressPath = media.getCompressPath(); + uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); + } + break; + case PictureConfig.REQUEST_CAMERA: + LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); + uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); + break; + default: + break; + } + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUploadAudioResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainUploadImageResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + PictureFileUtils.deleteAllCacheDirFile(this); + /** + * 系统路径static拼接图片返回路径 + * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg + */ + //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg + String url = resultBean.getData(); + mediaList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(realPaths); + caseHandleRecyclerView.setVisibility(View.VISIBLE); + caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); + caseHandleRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(realPaths.get(position)); + } + }); + //删除按钮点击事件 + imageAdapter.setDeleteView(true); + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } + } + + @Override + public void obtainUploadVideoResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainCaseHandleResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseNextNodePresenter != null) { + caseNextNodePresenter.disposeRetrofitRequest(); + } + if (uploadImagePresenter != null) { + uploadImagePresenter.disposeRetrofitRequest(); + } + if (caseHandlePresenter != null) { + caseHandlePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java deleted file mode 100644 index bd187c5..0000000 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java +++ /dev/null @@ -1,500 +0,0 @@ -package com.casic.dcms.ui; - -import android.content.DialogInterface; -import android.content.Intent; -import android.text.TextUtils; -import android.view.View; -import android.widget.EditText; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.Nullable; -import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.adapter.ImageRecycleViewAdapter; -import com.casic.dcms.base.BaseCaseActivity; -import com.casic.dcms.bean.ActionResultBean; -import com.casic.dcms.bean.CaseDetailBean; -import com.casic.dcms.bean.CaseLargeClassBean; -import com.casic.dcms.bean.CaseNextNodeBean; -import com.casic.dcms.bean.CaseSmallClassBean; -import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; -import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; -import com.casic.dcms.mvp.view.ICaseDetailView; -import com.casic.dcms.mvp.view.ICaseHandleView; -import com.casic.dcms.mvp.view.ICaseLargeClassView; -import com.casic.dcms.mvp.view.ICaseNextNodeView; -import com.casic.dcms.mvp.view.ICaseSmallClassView; -import com.casic.dcms.mvp.view.IUploadFileView; -import com.casic.dcms.utils.FileUtils; -import com.casic.dcms.utils.GlideLoadEngine; -import com.casic.dcms.utils.ItemDecorationSpace; -import com.casic.dcms.utils.StringHelper; -import com.casic.dcms.utils.ToastHelper; -import com.luck.picture.lib.PictureSelector; -import com.luck.picture.lib.config.PictureConfig; -import com.luck.picture.lib.config.PictureMimeType; -import com.luck.picture.lib.entity.LocalMedia; -import com.luck.picture.lib.tools.PictureFileUtils; -import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; -import com.qmuiteam.qmui.widget.dialog.QMUIDialog; -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; - -import butterknife.BindView; -import butterknife.OnClick; - -public class CaseHandleOvertimeDetailActivity extends BaseCaseActivity implements View.OnClickListener, - ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, - ICaseHandleView { - - @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) - EditText casePlaceView; - @BindView(R.id.caseSituationView) - TextView caseSituationView; - @BindView(R.id.caseHandleView) - TextView caseHandleView; - @BindView(R.id.casePicRecyclerView) - RecyclerView casePicRecyclerView; - @BindView(R.id.caseStartTimeView) - TextView caseStartTimeView; - @BindView(R.id.caseEndTimeView) - TextView caseEndTimeView; - @BindView(R.id.caseHandleResultView) - TextView caseHandleResultView; - @BindView(R.id.caseHandleRecyclerView) - RecyclerView caseHandleRecyclerView; - @BindView(R.id.addImageView) - ImageView addImageView; - @BindView(R.id.caseReasonView) - EditText caseReasonView; - @BindView(R.id.submitButton) - QMUIRoundButton submitButton; - - private String id; - private String changeState; - private String caseReason; - private String approvalResult; - private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); - private List largeClassBeans = new ArrayList<>(); - private List smallClassBeans = new ArrayList<>(); - private List realPaths = new ArrayList<>();//真实图片路径 - private List mediaList = new ArrayList<>();//上传到服务器的数据集 - - private CaseDetailPresenterImpl caseDetailPresenter; - private CaseLargeClassPresenterImpl caseLargeClassPresenter; - private CaseSmallClassPresenterImpl caseSmallClassPresenter; - private CaseNextNodePresenterImpl caseNextNodePresenter; - private UploadImagePresenterImpl uploadImagePresenter; - private CaseHandlePresenterImpl caseHandlePresenter; - - private QMUITipDialog submitDialog; - - @Override - public int initLayoutView() { - return R.layout.activity_case_handle_overtime; - } - - @Override - protected String setTitleName() { - return "超时案卷"; - } - - @Override - public void initData() { - id = getIntent().getStringExtra("id"); - caseDetailPresenter = new CaseDetailPresenterImpl(this); - caseDetailPresenter.onReadyRetrofitRequest(id); - - caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); - caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); - caseNextNodePresenter = new CaseNextNodePresenterImpl(this); - uploadImagePresenter = new UploadImagePresenterImpl(this); - caseHandlePresenter = new CaseHandlePresenterImpl(this); - - submitDialog = new QMUITipDialog.Builder(this) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord("提交中,请稍后") - .create(); - } - - @Override - public void initEvent() { - submitButton.setChangeAlphaWhenPress(true); - } - - @Override - public void obtainCaseDetailData(CaseDetailBean resultBean) { - if (resultBean.isSuccess()) { - this.data = resultBean.getData().get(0); - caseTypeView.setText(data.getEorcName()); - caseLargeTypeView.setText(data.getCasetypeName()); - caseSmallTypeView.setText(data.getCasetypeDetailName()); - caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro()); - caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); - caseStartTimeView.setText(data.getCreateTime()); - caseEndTimeView.setText(data.getNodeLimittime()); - - String verifyImages = data.getFileIdVerify(); - if (!TextUtils.isEmpty(verifyImages)) { - List urls = new ArrayList<>(); - String[] split = verifyImages.split(","); - for (String s : split) { - urls.add(StringHelper.appendCompleteURL(s)); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(urls); - casePicRecyclerView.setVisibility(View.VISIBLE); - casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); - casePicRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(urls.get(position)); - } - }); - imageAdapter.setDeleteView(false); - } - } - } - - private void showBigImage(String path) { - Intent intent = new Intent(this, BigPictureActivity.class); - intent.putExtra("path", path); - startActivity(intent); - } - - @Override - public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { - if (largeClassBean.isSuccess()) { - //设置大类数据 - this.largeClassBeans = largeClassBean.getData(); - if (largeClassBeans.size() == 0) { - caseLargeTypeView.setText("无小类"); - } else { - caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 - } - caseSmallTypeView.setText("请选择"); - } - } - - @Override - public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { - if (smallClassBean.isSuccess()) { - //设置大类数据 - this.smallClassBeans = smallClassBean.getData(); - if (smallClassBeans.size() == 0) { - caseSmallTypeView.setText("无小类"); - } else { - caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 - } - } - } - - @Override - public void obtainNextNodeData(CaseNextNodeBean resultBean) { - if (resultBean.isSuccess()) { - List dataBeans = resultBean.getData(); - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("处理结果"); - for (CaseNextNodeBean.DataBean dataBean : dataBeans) { - 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(); - - CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); - caseHandleResultView.setText(dataBean.getNextOperation()); - changeState = String.valueOf(dataBean.getNextState()); - approvalResult = dataBean.getApprovalResult(); - } - }).build().show(); - } else { - ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); - } - } - - @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) - @Override - public void onClick(View v) { - switch (v.getId()) { - case R.id.caseClassLayout: - 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(); - - caseTypeView.setText(tag); - //获取案卷大类 - caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); - } - }).build().show(); - break; - case R.id.caseLargeClassLayout: - if (largeClassBeans != null) { - if (largeClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷大类"); - for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { - sheetBuilder.addItem(dataBean.getTypeName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseLargeTypeView.setText(tag); - //获取案卷小类 - CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); - String typeId = dataBean.getId(); - caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); - } - }).build().show(); - } - } - break; - case R.id.caseSmallClassLayout: - if (smallClassBeans != null) { - if (smallClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷小类"); - for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { - sheetBuilder.addItem(dataBean.getTypeDetailName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseSmallTypeView.setText(tag); - } - }).build().show(); - } - } - break; - case R.id.caseHandleResultLayout: - caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); - break; - case R.id.addImageView: - new QMUIDialog.MenuDialogBuilder(this) - .addItem("相册中选取", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //选图 - selectPicture(); - } - }) - .addItem("相机拍照", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //拍照 - takePicture(); - } - }) - .create().show(); - break; - case R.id.submitButton: - submitCase();//案卷提交 - break; - default: - break; - } - } - - private void submitCase() { - String handleResult = caseHandleResultView.getText().toString(); - if (handleResult.equals("请选择")) { - ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); - return; - } - if (handleResult.equals("处理完成")) { - //选择处理完成时,处理图片必传。至少一张,最多两张 - if (mediaList.size() < 1 || mediaList.size() > 2) { - ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); - return; - } - } - if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { - caseReason = caseReasonView.getText().toString(); - if (TextUtils.isEmpty(caseReason)) { - ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); - return; - } - } - caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), - changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); - } - - private void selectPicture() { - PictureSelector.create(this) - .openGallery(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(2) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.CHOOSE_REQUEST); - } - - private void takePicture() { - PictureSelector.create(this) - .openCamera(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(1) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.REQUEST_CAMERA); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if (resultCode == RESULT_OK) { - switch (requestCode) { - case PictureConfig.CHOOSE_REQUEST: - List selectList = PictureSelector.obtainMultipleResult(data); - for (LocalMedia media : selectList) { - String mediaCompressPath = media.getCompressPath(); - uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); - } - break; - case PictureConfig.REQUEST_CAMERA: - LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); - uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); - break; - default: - break; - } - } - } - - @Override - public void showProgress() { - submitDialog.show(); - } - - @Override - public void hideProgress() { - submitDialog.hide(); - } - - @Override - public void obtainUploadAudioResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainUploadImageResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - PictureFileUtils.deleteAllCacheDirFile(this); - /** - * 系统路径static拼接图片返回路径 - * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg - */ - //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String url = resultBean.getData(); - mediaList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(realPaths); - caseHandleRecyclerView.setVisibility(View.VISIBLE); - caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); - caseHandleRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(realPaths.get(position)); - } - }); - //删除按钮点击事件 - imageAdapter.setDeleteView(true); - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); - } - } - }); - } - } - - @Override - public void obtainUploadVideoResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainCaseHandleResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); - finish(); - } else { - ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); - } - } - - @Override - protected void onDestroy() { - super.onDestroy(); - if (caseDetailPresenter != null) { - caseDetailPresenter.disposeRetrofitRequest(); - } - if (caseLargeClassPresenter != null) { - caseLargeClassPresenter.disposeRetrofitRequest(); - } - if (caseSmallClassPresenter != null) { - caseSmallClassPresenter.disposeRetrofitRequest(); - } - if (caseNextNodePresenter != null) { - caseNextNodePresenter.disposeRetrofitRequest(); - } - if (uploadImagePresenter != null) { - uploadImagePresenter.disposeRetrofitRequest(); - } - if (caseHandlePresenter != null) { - caseHandlePresenter.disposeRetrofitRequest(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java new file mode 100644 index 0000000..5ea5403 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -0,0 +1,145 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { + + @BindView(R.id.detailTopLayout) + QMUITopBarLayout detailTopLayout; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @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; + + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private CaseDetailPresenterImpl caseDetailPresenter; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handled_detail; + } + + @Override + protected void setupTopBarLayout() { + detailTopLayout.setTitle("已办案卷").setTextColor(ContextCompat.getColor(this, R.color.white)); + detailTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + detailTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + String id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + } + + @Override + public void initEvent() { + + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseHandleStatusView.setText(data.getCaseStateName()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @OnClick(R.id.handleLayout) + @Override + public void onClick(View v) { + if (v.getId() == R.id.handleLayout) { + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java new file mode 100644 index 0000000..3b2d3d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -0,0 +1,228 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.TextView; + +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.presenter.CaseCommonSentencePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseUpdateSupervisePresenterImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseOverTimeView) + TextView caseOverTimeView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @BindView(R.id.casePlaceView) + EditText casePlaceView; + @BindView(R.id.caseDescriptionView) + TextView caseDescriptionView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseHandleResultView) + EditText caseHandleResultView; + @BindView(R.id.caseCommonSentenceView) + TextView caseCommonSentenceView; + + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseCommonSentencePresenterImpl commonSentencePresenter; + private CaseUpdateSupervisePresenterImpl updateSupervisePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_todo_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + commonSentencePresenter = new CaseCommonSentencePresenterImpl(this); + updateSupervisePresenter = new CaseUpdateSupervisePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @Override + public void initEvent() { + + } + + @OnClick({R.id.caseHandleLayout, R.id.caseCommonSentenceLayout, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseHandleLayout: + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + break; + case R.id.caseCommonSentenceLayout: + commonSentencePresenter.onReadyRetrofitRequest(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String remarks = caseHandleResultView.getText().toString(); + if (TextUtils.isEmpty(remarks)) { + ToastHelper.showToast("督办意见不能为空", ToastHelper.WARING); + return; + } + updateSupervisePresenter.onReadyRetrofitRequest(id, remarks); + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseOverTimeView.setText(data.getNodeLimittime()); + caseHandleStatusView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + casePlaceView.setText(data.getFieldintro()); + caseDescriptionView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainCommonSentenceData(CommonSentenceBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("常用语句"); + for (CommonSentenceBean.DataBean dataBean : dataBeans) { + 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(); + + CommonSentenceBean.DataBean dataBean = dataBeans.get(position); + caseCommonSentenceView.setText(dataBean.getName()); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUpdateSuperviseData(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷督办提交成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷督办提交失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (commonSentencePresenter != null) { + commonSentencePresenter.disposeRetrofitRequest(); + } + if (updateSupervisePresenter != null) { + updateSupervisePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 3060e1b..af6a9fe 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -191,7 +191,7 @@ caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); - caseHandleView.setText(data.getUrgeRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); caseSituationView.setText(data.getDescription()); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index 7816221..3989633 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -28,6 +28,7 @@ import com.casic.dcms.ui.OvertimeCaseActivity; import com.casic.dcms.ui.PersonOnlineActivity; import com.casic.dcms.ui.UrgentCaseActivity; +import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.StringHelper; import com.qmuiteam.qmui.widget.QMUIRadiusImageView; @@ -69,62 +70,12 @@ @Override protected void initEvent() { - HomeRecycleAdapter adapter = new HomeRecycleAdapter(context); - homeRecyclerView.setLayoutManager(new GridLayoutManager(context, 3)); - homeRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - Intent intent = new Intent(); - switch (position) { - case 0: - intent.setClass(context, CaseUploadActivity.class); - break; - case 1: - intent.setClass(context, CaseUploadQuicklyActivity.class); - break; - case 2: - intent.setClass(context, FivePackageUploadActivity.class); - break; - case 3: - intent.setClass(context, CaseVerifyActivity.class); - break; - case 4: - intent.setClass(context, CaseCheckActivity.class); - break; - case 5: - intent.setClass(context, CaseHandleActivity.class); - break; - case 6: - intent.setClass(context, UrgentCaseActivity.class); - break; - case 7: - intent.setClass(context, OvertimeCaseActivity.class); - break; - case 8: - intent.setClass(context, DataAnalysisActivity.class); - break; - case 9: - intent.setClass(context, PersonOnlineActivity.class); - break; - case 10: - intent.setClass(context, CaseSearchActivity.class); - break; - case 11: - intent.setClass(context, MapWatchViewActivity.class); - break; - default: - break; - } - startActivity(intent); - } - }); + } @SuppressLint("SetTextI18n") @Override public void obtainUserData(UserBean userBean) { -// Log.d(TAG, "obtainUserData: " + new Gson().toJson(userBean)); if (userBean.isSuccess()) { //QMUIRadiusImageView无法动态设置圆形头像,借助Glide实现圆形头像 Glide.with(this).load(R.mipmap.app_logo).apply(RequestOptions.circleCropTransform()).into(userIconView); @@ -137,6 +88,121 @@ StringHelper.saveUserPhone(data.getPhone()); StringHelper.saveUserDept(data.getDeptName()); StringHelper.saveUserDeptId(data.getDeptId()); + + //权限控制 + String roleTip = data.getRoleTips().get(0); + HomeRecycleAdapter adapter = new HomeRecycleAdapter(context); + homeRecyclerView.setLayoutManager(new GridLayoutManager(context, 3)); + switch (roleTip) { + case "supervisor": + //All + adapter.setItemData(Constant.ALL_ICONS, Constant.ALL_ITEMS); + adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { + @Override + public void onClick(int position) { + Intent intent = new Intent(); + switch (position) { + case 0: + intent.setClass(context, CaseUploadActivity.class); + break; + case 1: + intent.setClass(context, CaseUploadQuicklyActivity.class); + break; + case 2: + intent.setClass(context, FivePackageUploadActivity.class); + break; + case 3: + intent.setClass(context, CaseVerifyActivity.class); + break; + case 4: + intent.setClass(context, CaseCheckActivity.class); + break; + case 5: + intent.setClass(context, CaseHandleActivity.class); + break; + case 6: + intent.setClass(context, UrgentCaseActivity.class); + break; + case 7: + intent.setClass(context, OvertimeCaseActivity.class); + break; + case 8: + intent.setClass(context, DataAnalysisActivity.class); + break; + case 9: + intent.setClass(context, PersonOnlineActivity.class); + break; + case 10: + intent.setClass(context, CaseSearchActivity.class); + break; + case 11: + intent.setClass(context, MapWatchViewActivity.class); + break; + default: + break; + } + startActivity(intent); + } + }); + break; +// case "process": +// //案卷处理、案卷查询 +// adapter.setItemData(Constant.PROCESS_ICONS, Constant.PROCESS_ITEMS); +// adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { +// @Override +// public void onClick(int position) { +// Intent intent = new Intent(); +// switch (position) { +// case 0: +// intent.setClass(context, CaseHandleActivity.class); +// break; +// case 1: +// intent.setClass(context, CaseSearchActivity.class); +// break; +// default: +// break; +// } +// startActivity(intent); +// } +// }); +// break; +// case "leader": +// //案卷上报、紧急要件、超时督办、统计分析、在岗人员、案卷查询 +// adapter.setItemData(Constant.LEADER_ICONS, Constant.LEADER_ITEMS); +// adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { +// @Override +// public void onClick(int position) { +// Intent intent = new Intent(); +// switch (position) { +// case 0: +// intent.setClass(context, CaseUploadActivity.class); +// break; +// case 1: +// intent.setClass(context, UrgentCaseActivity.class); +// break; +// case 2: +// intent.setClass(context, OvertimeCaseActivity.class); +// break; +// case 3: +// intent.setClass(context, DataAnalysisActivity.class); +// break; +// case 4: +// intent.setClass(context, PersonOnlineActivity.class); +// break; +// case 5: +// intent.setClass(context, CaseSearchActivity.class); +// break; +// default: +// break; +// } +// startActivity(intent); +// } +// }); +// break; + default: + break; + } + homeRecyclerView.setAdapter(adapter); } } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java index 430f8be..fa2df7a 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandledBean; import com.casic.dcms.mvp.presenter.CaseHandledListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandledListView; +import com.casic.dcms.ui.CaseHandledDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -128,10 +130,9 @@ adapter.setOnItemClickListener(new CaseHandledAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandledDetailActivity.class); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java index 502c288..05306fe 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -130,10 +132,10 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "待办案卷"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java index 25877de..743a092 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java @@ -17,7 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; -import com.casic.dcms.ui.CaseHandleOvertimeDetailActivity; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -133,7 +133,8 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { - Intent intent = new Intent(context, CaseHandleOvertimeDetailActivity.class); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "超时案卷"); intent.putExtra("id", dataBeans.get(position).getId()); startActivity(intent); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java index f957e26..ae0b3e5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -131,10 +133,10 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "紧急案卷"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java index 18178eb..5d51969 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.OvertimeCaseBean; import com.casic.dcms.mvp.presenter.OvertimeCaseListPresenterImpl; import com.casic.dcms.mvp.view.IOvertimeCaseListView; +import com.casic.dcms.ui.CaseTodoDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -128,10 +130,10 @@ adapter.setOnItemClickListener(new OvertimeCaseAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseTodoDetailActivity.class); + intent.putExtra("title", "超时督办"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java index 19c6766..51bdbd0 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.mvp.presenter.UrgentCaseListPresenterImpl; import com.casic.dcms.mvp.view.IUrgentCaseListView; +import com.casic.dcms.ui.CaseTodoDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -129,10 +131,10 @@ adapter.setOnItemClickListener(new UrgentCaseAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseTodoDetailActivity.class); + intent.putExtra("title", "紧急要件"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } 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 233b5d1..2e68d04 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -9,18 +9,38 @@ import java.util.List; public class Constant { - public static final List ICONS = Arrays.asList( + public static final String[] USER_PERMISSIONS = { + Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION, + Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO, + Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE, + Manifest.permission.CALL_PHONE}; + + public static final List ALL_ICONS = Arrays.asList( R.mipmap.ajsb, R.mipmap.kssb, R.mipmap.sbsb, R.mipmap.ajhs, R.mipmap.ajhc, R.mipmap.ajcl, R.mipmap.jjyj, R.mipmap.csdb, R.mipmap.tjfx, R.mipmap.zgry, R.mipmap.ajcx, R.mipmap.dtck); - public static final List ITEMS = Arrays.asList( + public static final List ALL_ITEMS = Arrays.asList( "案卷上报", "快速上报", "五包上报", "案卷核实", "案卷核查", "案卷处理", "紧急要件", "超时督办", "统计分析", "在岗人员", "案卷查询", "地图查看"); + public static final List PROCESS_ICONS = Arrays.asList( + R.mipmap.ajcl, R.mipmap.ajcx); + + public static final List PROCESS_ITEMS = Arrays.asList( + "案卷处理", "案卷查询"); + + public static final List LEADER_ICONS = Arrays.asList( + R.mipmap.ajsb, R.mipmap.jjyj, R.mipmap.csdb, + R.mipmap.tjfx, R.mipmap.zgry, R.mipmap.ajcx); + + public static final List LEADER_ITEMS = Arrays.asList( + "案卷上报", "紧急要件", "超时督办", + "统计分析", "在岗人员", "案卷查询"); + public static final List ANALYSIS_ICONS = Arrays.asList( R.mipmap.sbsb, R.mipmap.jjyj, R.mipmap.csdb, R.mipmap.ajcl, R.mipmap.tjfx, R.mipmap.ajhc); @@ -29,17 +49,6 @@ "问题来源", "案卷状态", "高发问题", "街道统计", "处理统计", "趋势分析"); - public static final List CATEGORY = Arrays.asList("请选择", "情况属实", "情况不属实"); - - public static final String[] USER_PERMISSIONS = { - Manifest.permission.ACCESS_COARSE_LOCATION, - Manifest.permission.ACCESS_FINE_LOCATION, - Manifest.permission.CAMERA, - Manifest.permission.READ_EXTERNAL_STORAGE, - Manifest.permission.WRITE_EXTERNAL_STORAGE, - Manifest.permission.RECORD_AUDIO, - Manifest.permission.CALL_PHONE}; - //先预置8种颜色 public static final int[] PIE_COLORS = {Color.rgb(28, 197, 220), Color.rgb(255, 223, 107), Color.rgb(242, 17, 112), diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f6ac20a..2070c95 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -67,12 +67,14 @@ - + - + + + { private Context context; + private List iconData = new ArrayList<>(); + private List itemData = new ArrayList<>(); public HomeRecycleAdapter(Context context) { this.context = context; } + public void setItemData(@Nullable List icons, @Nullable List items) { + this.iconData = icons; + this.itemData = items; + } + @NonNull @Override public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -30,7 +40,7 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - holder.bindView(context, position); + holder.bindView(position); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override @@ -43,7 +53,7 @@ @Override public int getItemCount() { - return Constant.ITEMS.size(); + return itemData.size(); } private OnGridItemClickListener clickListener; @@ -56,7 +66,7 @@ this.clickListener = onGridItemClickListener; } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { private ImageView imageView; private TextView textView; @@ -67,9 +77,9 @@ textView = itemView.findViewById(R.id.textView); } - void bindView(Context context, int position) { - imageView.setBackgroundResource(Constant.ICONS.get(position)); - textView.setText(Constant.ITEMS.get(position)); + void bindView(int position) { + imageView.setBackgroundResource(iconData.get(position)); + textView.setText(itemData.get(position)); } } } diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index b9c4615..d9b10e0 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; import java.util.ArrayList; @@ -62,7 +63,10 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - Glide.with(context).load(mediaList.get(position)).into(holder.imageView); + Glide.with(context) + .load(mediaList.get(position)) + .apply(new RequestOptions().error(R.drawable.ic_load_error)) + .into(holder.imageView); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/casic/dcms/base/BaseActivity.java b/app/src/main/java/com/casic/dcms/base/BaseActivity.java index caf0356..2ca87fe 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseActivity.java +++ b/app/src/main/java/com/casic/dcms/base/BaseActivity.java @@ -17,8 +17,8 @@ setContentView(initLayoutView()); ButterKnife.bind(this); QMUIStatusBarHelper.translucent(this);//沉浸式状态栏 - setupTopBarLayout(); initData(); + setupTopBarLayout(); initEvent(); } diff --git a/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java new file mode 100644 index 0000000..8de58a4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java @@ -0,0 +1,78 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CommonSentenceBean { + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 请及时处理 + * id : 156 + * value : 请及时处理 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java new file mode 100644 index 0000000..5258d89 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CommonSentenceBean; +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 CaseCommonSentenceModelImpl implements ICaseCommonSentenceModel { + + private OnGetCommonSentenceListener sentenceListener; + + public CaseCommonSentenceModelImpl(OnGetCommonSentenceListener commonSentenceListener) { + this.sentenceListener = commonSentenceListener; + } + + public interface OnGetCommonSentenceListener { + void onSuccess(CommonSentenceBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCommonSentenceResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (sentenceListener != null) { + sentenceListener.onFailure(e); + } + } + + @Override + public void onNext(CommonSentenceBean resultBean) { + if (resultBean != null) { + sentenceListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java new file mode 100644 index 0000000..a8cb3fc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java @@ -0,0 +1,53 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseUpdateSuperviseModelImpl implements ICaseUpdateSuperviseModel { + + private OnUpdateSuperviseListener listener; + + public CaseUpdateSuperviseModelImpl(OnUpdateSuperviseListener updateSuperviseListener) { + this.listener = updateSuperviseListener; + } + + /** + * 数据回调接口 + */ + public interface OnUpdateSuperviseListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String superviseRemarks) { + Observable observable = RetrofitServiceManager.getUpdateSuperviseResult(id, superviseRemarks); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java new file mode 100644 index 0000000..263ef6c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseCommonSentenceModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java new file mode 100644 index 0000000..518d602 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseUpdateSuperviseModel { + Subscription sendRetrofitRequest(String id, String superviseRemarks); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java new file mode 100644 index 0000000..6b65f13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseCommonSentenceModelImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; + +public class CaseCommonSentencePresenterImpl extends BasePresenter implements ICaseCommonSentencePresenter, + CaseCommonSentenceModelImpl.OnGetCommonSentenceListener { + + private ICaseCommonSentenceView view; + private CaseCommonSentenceModelImpl actionModel; + + public CaseCommonSentencePresenterImpl(ICaseCommonSentenceView commonSentenceView) { + this.view = commonSentenceView; + actionModel = new CaseCommonSentenceModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CommonSentenceBean resultBean) { + view.obtainCommonSentenceData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java new file mode 100644 index 0000000..66e1f44 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseUpdateSuperviseModelImpl; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; + +public class CaseUpdateSupervisePresenterImpl extends BasePresenter implements ICaseUpdateSupervisePresenter, + CaseUpdateSuperviseModelImpl.OnUpdateSuperviseListener { + + private ICaseUpdateSuperviseView view; + private CaseUpdateSuperviseModelImpl actionModel; + + public CaseUpdateSupervisePresenterImpl(ICaseUpdateSuperviseView updateSuperviseView) { + this.view = updateSuperviseView; + actionModel = new CaseUpdateSuperviseModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String superviseRemarks) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, superviseRemarks)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainUpdateSuperviseData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java new file mode 100644 index 0000000..1f8bd09 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseCommonSentencePresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java new file mode 100644 index 0000000..f61f9b2 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseUpdateSupervisePresenter { + void onReadyRetrofitRequest(String id, String superviseRemarks); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java new file mode 100644 index 0000000..9c7b08b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CommonSentenceBean; + +public interface ICaseCommonSentenceView { + void obtainCommonSentenceData(CommonSentenceBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java new file mode 100644 index 0000000..10bcf5a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICaseUpdateSuperviseView { + void showProgress(); + + void hideProgress(); + + void obtainUpdateSuperviseData(ActionResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java index ad70b7a..9143db8 100644 --- a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.ui; +import android.view.View; + +import androidx.core.content.ContextCompat; + import com.bumptech.glide.Glide; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.luck.picture.lib.photoview.PhotoView; -import com.qmuiteam.qmui.util.QMUIStatusBarHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; import butterknife.BindView; @@ -15,6 +19,8 @@ **/ public class BigPictureActivity extends BaseActivity { + @BindView(R.id.imageTopLayout) + QMUITopBarLayout imageTopLayout; @BindView(R.id.photoView) PhotoView photoView; @@ -25,37 +31,24 @@ @Override protected void setupTopBarLayout() { - QMUIStatusBarHelper.setStatusBarLightMode(this); + imageTopLayout.setTitle("查看大图").setTextColor(ContextCompat.getColor(this, R.color.white)); + imageTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + imageTopLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); } @Override public void initData() { -// String mediaJson = getIntent().getStringExtra("mediaJson"); -// -// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() { -// }.getType()); -// -// list = new ArrayList<>(); -// assert mediaList != null; -// for (LocalMedia media : mediaList) { -// list.add(media.getRealPath()); -// } String path = getIntent().getStringExtra("path"); Glide.with(this).load(path).into(photoView); } @Override public void initEvent() { -// //轮播图 -// bigImageBanner.setImageLoader(new ImageLoader() { -// -// @Override -// public void displayImage(Context context, Object path, ImageView imageView) { -// Glide.with(context).load(path).into(imageView); -// } -// }); -// bigImageBanner.isAutoPlay(false); -// bigImageBanner.setImages(list); -// bigImageBanner.start(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index 01a3807..7548cfc 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -329,7 +329,7 @@ caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java new file mode 100644 index 0000000..d4dba38 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -0,0 +1,505 @@ +package com.casic.dcms.ui; + +import android.content.DialogInterface; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseNextNodeBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseHandleView; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseNextNodeView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.IUploadFileView; +import com.casic.dcms.utils.FileUtils; +import com.casic.dcms.utils.GlideLoadEngine; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.luck.picture.lib.PictureSelector; +import com.luck.picture.lib.config.PictureConfig; +import com.luck.picture.lib.config.PictureMimeType; +import com.luck.picture.lib.entity.LocalMedia; +import com.luck.picture.lib.tools.PictureFileUtils; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, + ICaseHandleView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @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) + EditText casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.caseHandleView) + TextView caseHandleView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseStartTimeView) + TextView caseStartTimeView; + @BindView(R.id.caseEndTimeView) + TextView caseEndTimeView; + @BindView(R.id.caseHandleResultView) + TextView caseHandleResultView; + @BindView(R.id.caseHandleRecyclerView) + RecyclerView caseHandleRecyclerView; + @BindView(R.id.addImageView) + ImageView addImageView; + @BindView(R.id.caseReasonView) + EditText caseReasonView; + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private String changeState; + private String caseReason; + private String approvalResult; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private List largeClassBeans = new ArrayList<>(); + private List smallClassBeans = new ArrayList<>(); + private List realPaths = new ArrayList<>();//真实图片路径 + private List mediaList = new ArrayList<>();//上传到服务器的数据集 + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private CaseNextNodePresenterImpl caseNextNodePresenter; + private UploadImagePresenterImpl uploadImagePresenter; + private CaseHandlePresenterImpl caseHandlePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handle_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseNextNodePresenter = new CaseNextNodePresenterImpl(this); + uploadImagePresenter = new UploadImagePresenterImpl(this); + caseHandlePresenter = new CaseHandlePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @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()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + caseStartTimeView.setText(data.getCreateTime()); + caseEndTimeView.setText(data.getNodeLimittime()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeTypeView.setText("无小类"); + } else { + caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 + } + caseSmallTypeView.setText("请选择"); + } + } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallTypeView.setText("无小类"); + } else { + caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 + } + } + } + + @Override + public void obtainNextNodeData(CaseNextNodeBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处理结果"); + for (CaseNextNodeBean.DataBean dataBean : dataBeans) { + 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(); + + CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); + caseHandleResultView.setText(dataBean.getNextOperation()); + changeState = String.valueOf(dataBean.getNextState()); + approvalResult = dataBean.getApprovalResult(); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseClassLayout: + 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(); + + caseTypeView.setText(tag); + //获取案卷大类 + caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseLargeTypeView.setText(tag); + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseSmallTypeView.setText(tag); + } + }).build().show(); + } + } + break; + case R.id.caseHandleResultLayout: + caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); + break; + case R.id.addImageView: + new QMUIDialog.MenuDialogBuilder(this) + .addItem("相册中选取", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //选图 + selectPicture(); + } + }) + .addItem("相机拍照", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //拍照 + takePicture(); + } + }) + .create().show(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String handleResult = caseHandleResultView.getText().toString(); + if (handleResult.equals("请选择")) { + ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); + return; + } + if (handleResult.equals("处理完成")) { + //选择处理完成时,处理图片必传。至少一张,最多两张 + if (mediaList.size() < 1 || mediaList.size() > 2) { + ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); + return; + } + } + if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { + caseReason = caseReasonView.getText().toString(); + if (TextUtils.isEmpty(caseReason)) { + ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); + return; + } + } + caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), + changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); + } + + private void selectPicture() { + PictureSelector.create(this) + .openGallery(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(2) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.CHOOSE_REQUEST); + } + + private void takePicture() { + PictureSelector.create(this) + .openCamera(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(1) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.REQUEST_CAMERA); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == RESULT_OK) { + switch (requestCode) { + case PictureConfig.CHOOSE_REQUEST: + List selectList = PictureSelector.obtainMultipleResult(data); + for (LocalMedia media : selectList) { + String mediaCompressPath = media.getCompressPath(); + uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); + } + break; + case PictureConfig.REQUEST_CAMERA: + LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); + uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); + break; + default: + break; + } + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUploadAudioResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainUploadImageResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + PictureFileUtils.deleteAllCacheDirFile(this); + /** + * 系统路径static拼接图片返回路径 + * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg + */ + //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg + String url = resultBean.getData(); + mediaList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(realPaths); + caseHandleRecyclerView.setVisibility(View.VISIBLE); + caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); + caseHandleRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(realPaths.get(position)); + } + }); + //删除按钮点击事件 + imageAdapter.setDeleteView(true); + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } + } + + @Override + public void obtainUploadVideoResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainCaseHandleResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseNextNodePresenter != null) { + caseNextNodePresenter.disposeRetrofitRequest(); + } + if (uploadImagePresenter != null) { + uploadImagePresenter.disposeRetrofitRequest(); + } + if (caseHandlePresenter != null) { + caseHandlePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java deleted file mode 100644 index bd187c5..0000000 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java +++ /dev/null @@ -1,500 +0,0 @@ -package com.casic.dcms.ui; - -import android.content.DialogInterface; -import android.content.Intent; -import android.text.TextUtils; -import android.view.View; -import android.widget.EditText; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.Nullable; -import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.adapter.ImageRecycleViewAdapter; -import com.casic.dcms.base.BaseCaseActivity; -import com.casic.dcms.bean.ActionResultBean; -import com.casic.dcms.bean.CaseDetailBean; -import com.casic.dcms.bean.CaseLargeClassBean; -import com.casic.dcms.bean.CaseNextNodeBean; -import com.casic.dcms.bean.CaseSmallClassBean; -import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; -import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; -import com.casic.dcms.mvp.view.ICaseDetailView; -import com.casic.dcms.mvp.view.ICaseHandleView; -import com.casic.dcms.mvp.view.ICaseLargeClassView; -import com.casic.dcms.mvp.view.ICaseNextNodeView; -import com.casic.dcms.mvp.view.ICaseSmallClassView; -import com.casic.dcms.mvp.view.IUploadFileView; -import com.casic.dcms.utils.FileUtils; -import com.casic.dcms.utils.GlideLoadEngine; -import com.casic.dcms.utils.ItemDecorationSpace; -import com.casic.dcms.utils.StringHelper; -import com.casic.dcms.utils.ToastHelper; -import com.luck.picture.lib.PictureSelector; -import com.luck.picture.lib.config.PictureConfig; -import com.luck.picture.lib.config.PictureMimeType; -import com.luck.picture.lib.entity.LocalMedia; -import com.luck.picture.lib.tools.PictureFileUtils; -import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; -import com.qmuiteam.qmui.widget.dialog.QMUIDialog; -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; - -import butterknife.BindView; -import butterknife.OnClick; - -public class CaseHandleOvertimeDetailActivity extends BaseCaseActivity implements View.OnClickListener, - ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, - ICaseHandleView { - - @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) - EditText casePlaceView; - @BindView(R.id.caseSituationView) - TextView caseSituationView; - @BindView(R.id.caseHandleView) - TextView caseHandleView; - @BindView(R.id.casePicRecyclerView) - RecyclerView casePicRecyclerView; - @BindView(R.id.caseStartTimeView) - TextView caseStartTimeView; - @BindView(R.id.caseEndTimeView) - TextView caseEndTimeView; - @BindView(R.id.caseHandleResultView) - TextView caseHandleResultView; - @BindView(R.id.caseHandleRecyclerView) - RecyclerView caseHandleRecyclerView; - @BindView(R.id.addImageView) - ImageView addImageView; - @BindView(R.id.caseReasonView) - EditText caseReasonView; - @BindView(R.id.submitButton) - QMUIRoundButton submitButton; - - private String id; - private String changeState; - private String caseReason; - private String approvalResult; - private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); - private List largeClassBeans = new ArrayList<>(); - private List smallClassBeans = new ArrayList<>(); - private List realPaths = new ArrayList<>();//真实图片路径 - private List mediaList = new ArrayList<>();//上传到服务器的数据集 - - private CaseDetailPresenterImpl caseDetailPresenter; - private CaseLargeClassPresenterImpl caseLargeClassPresenter; - private CaseSmallClassPresenterImpl caseSmallClassPresenter; - private CaseNextNodePresenterImpl caseNextNodePresenter; - private UploadImagePresenterImpl uploadImagePresenter; - private CaseHandlePresenterImpl caseHandlePresenter; - - private QMUITipDialog submitDialog; - - @Override - public int initLayoutView() { - return R.layout.activity_case_handle_overtime; - } - - @Override - protected String setTitleName() { - return "超时案卷"; - } - - @Override - public void initData() { - id = getIntent().getStringExtra("id"); - caseDetailPresenter = new CaseDetailPresenterImpl(this); - caseDetailPresenter.onReadyRetrofitRequest(id); - - caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); - caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); - caseNextNodePresenter = new CaseNextNodePresenterImpl(this); - uploadImagePresenter = new UploadImagePresenterImpl(this); - caseHandlePresenter = new CaseHandlePresenterImpl(this); - - submitDialog = new QMUITipDialog.Builder(this) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord("提交中,请稍后") - .create(); - } - - @Override - public void initEvent() { - submitButton.setChangeAlphaWhenPress(true); - } - - @Override - public void obtainCaseDetailData(CaseDetailBean resultBean) { - if (resultBean.isSuccess()) { - this.data = resultBean.getData().get(0); - caseTypeView.setText(data.getEorcName()); - caseLargeTypeView.setText(data.getCasetypeName()); - caseSmallTypeView.setText(data.getCasetypeDetailName()); - caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro()); - caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); - caseStartTimeView.setText(data.getCreateTime()); - caseEndTimeView.setText(data.getNodeLimittime()); - - String verifyImages = data.getFileIdVerify(); - if (!TextUtils.isEmpty(verifyImages)) { - List urls = new ArrayList<>(); - String[] split = verifyImages.split(","); - for (String s : split) { - urls.add(StringHelper.appendCompleteURL(s)); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(urls); - casePicRecyclerView.setVisibility(View.VISIBLE); - casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); - casePicRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(urls.get(position)); - } - }); - imageAdapter.setDeleteView(false); - } - } - } - - private void showBigImage(String path) { - Intent intent = new Intent(this, BigPictureActivity.class); - intent.putExtra("path", path); - startActivity(intent); - } - - @Override - public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { - if (largeClassBean.isSuccess()) { - //设置大类数据 - this.largeClassBeans = largeClassBean.getData(); - if (largeClassBeans.size() == 0) { - caseLargeTypeView.setText("无小类"); - } else { - caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 - } - caseSmallTypeView.setText("请选择"); - } - } - - @Override - public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { - if (smallClassBean.isSuccess()) { - //设置大类数据 - this.smallClassBeans = smallClassBean.getData(); - if (smallClassBeans.size() == 0) { - caseSmallTypeView.setText("无小类"); - } else { - caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 - } - } - } - - @Override - public void obtainNextNodeData(CaseNextNodeBean resultBean) { - if (resultBean.isSuccess()) { - List dataBeans = resultBean.getData(); - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("处理结果"); - for (CaseNextNodeBean.DataBean dataBean : dataBeans) { - 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(); - - CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); - caseHandleResultView.setText(dataBean.getNextOperation()); - changeState = String.valueOf(dataBean.getNextState()); - approvalResult = dataBean.getApprovalResult(); - } - }).build().show(); - } else { - ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); - } - } - - @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) - @Override - public void onClick(View v) { - switch (v.getId()) { - case R.id.caseClassLayout: - 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(); - - caseTypeView.setText(tag); - //获取案卷大类 - caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); - } - }).build().show(); - break; - case R.id.caseLargeClassLayout: - if (largeClassBeans != null) { - if (largeClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷大类"); - for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { - sheetBuilder.addItem(dataBean.getTypeName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseLargeTypeView.setText(tag); - //获取案卷小类 - CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); - String typeId = dataBean.getId(); - caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); - } - }).build().show(); - } - } - break; - case R.id.caseSmallClassLayout: - if (smallClassBeans != null) { - if (smallClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷小类"); - for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { - sheetBuilder.addItem(dataBean.getTypeDetailName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseSmallTypeView.setText(tag); - } - }).build().show(); - } - } - break; - case R.id.caseHandleResultLayout: - caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); - break; - case R.id.addImageView: - new QMUIDialog.MenuDialogBuilder(this) - .addItem("相册中选取", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //选图 - selectPicture(); - } - }) - .addItem("相机拍照", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //拍照 - takePicture(); - } - }) - .create().show(); - break; - case R.id.submitButton: - submitCase();//案卷提交 - break; - default: - break; - } - } - - private void submitCase() { - String handleResult = caseHandleResultView.getText().toString(); - if (handleResult.equals("请选择")) { - ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); - return; - } - if (handleResult.equals("处理完成")) { - //选择处理完成时,处理图片必传。至少一张,最多两张 - if (mediaList.size() < 1 || mediaList.size() > 2) { - ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); - return; - } - } - if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { - caseReason = caseReasonView.getText().toString(); - if (TextUtils.isEmpty(caseReason)) { - ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); - return; - } - } - caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), - changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); - } - - private void selectPicture() { - PictureSelector.create(this) - .openGallery(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(2) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.CHOOSE_REQUEST); - } - - private void takePicture() { - PictureSelector.create(this) - .openCamera(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(1) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.REQUEST_CAMERA); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if (resultCode == RESULT_OK) { - switch (requestCode) { - case PictureConfig.CHOOSE_REQUEST: - List selectList = PictureSelector.obtainMultipleResult(data); - for (LocalMedia media : selectList) { - String mediaCompressPath = media.getCompressPath(); - uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); - } - break; - case PictureConfig.REQUEST_CAMERA: - LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); - uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); - break; - default: - break; - } - } - } - - @Override - public void showProgress() { - submitDialog.show(); - } - - @Override - public void hideProgress() { - submitDialog.hide(); - } - - @Override - public void obtainUploadAudioResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainUploadImageResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - PictureFileUtils.deleteAllCacheDirFile(this); - /** - * 系统路径static拼接图片返回路径 - * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg - */ - //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String url = resultBean.getData(); - mediaList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(realPaths); - caseHandleRecyclerView.setVisibility(View.VISIBLE); - caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); - caseHandleRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(realPaths.get(position)); - } - }); - //删除按钮点击事件 - imageAdapter.setDeleteView(true); - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); - } - } - }); - } - } - - @Override - public void obtainUploadVideoResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainCaseHandleResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); - finish(); - } else { - ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); - } - } - - @Override - protected void onDestroy() { - super.onDestroy(); - if (caseDetailPresenter != null) { - caseDetailPresenter.disposeRetrofitRequest(); - } - if (caseLargeClassPresenter != null) { - caseLargeClassPresenter.disposeRetrofitRequest(); - } - if (caseSmallClassPresenter != null) { - caseSmallClassPresenter.disposeRetrofitRequest(); - } - if (caseNextNodePresenter != null) { - caseNextNodePresenter.disposeRetrofitRequest(); - } - if (uploadImagePresenter != null) { - uploadImagePresenter.disposeRetrofitRequest(); - } - if (caseHandlePresenter != null) { - caseHandlePresenter.disposeRetrofitRequest(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java new file mode 100644 index 0000000..5ea5403 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -0,0 +1,145 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { + + @BindView(R.id.detailTopLayout) + QMUITopBarLayout detailTopLayout; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @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; + + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private CaseDetailPresenterImpl caseDetailPresenter; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handled_detail; + } + + @Override + protected void setupTopBarLayout() { + detailTopLayout.setTitle("已办案卷").setTextColor(ContextCompat.getColor(this, R.color.white)); + detailTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + detailTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + String id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + } + + @Override + public void initEvent() { + + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseHandleStatusView.setText(data.getCaseStateName()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @OnClick(R.id.handleLayout) + @Override + public void onClick(View v) { + if (v.getId() == R.id.handleLayout) { + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java new file mode 100644 index 0000000..3b2d3d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -0,0 +1,228 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.TextView; + +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.presenter.CaseCommonSentencePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseUpdateSupervisePresenterImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseOverTimeView) + TextView caseOverTimeView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @BindView(R.id.casePlaceView) + EditText casePlaceView; + @BindView(R.id.caseDescriptionView) + TextView caseDescriptionView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseHandleResultView) + EditText caseHandleResultView; + @BindView(R.id.caseCommonSentenceView) + TextView caseCommonSentenceView; + + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseCommonSentencePresenterImpl commonSentencePresenter; + private CaseUpdateSupervisePresenterImpl updateSupervisePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_todo_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + commonSentencePresenter = new CaseCommonSentencePresenterImpl(this); + updateSupervisePresenter = new CaseUpdateSupervisePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @Override + public void initEvent() { + + } + + @OnClick({R.id.caseHandleLayout, R.id.caseCommonSentenceLayout, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseHandleLayout: + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + break; + case R.id.caseCommonSentenceLayout: + commonSentencePresenter.onReadyRetrofitRequest(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String remarks = caseHandleResultView.getText().toString(); + if (TextUtils.isEmpty(remarks)) { + ToastHelper.showToast("督办意见不能为空", ToastHelper.WARING); + return; + } + updateSupervisePresenter.onReadyRetrofitRequest(id, remarks); + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseOverTimeView.setText(data.getNodeLimittime()); + caseHandleStatusView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + casePlaceView.setText(data.getFieldintro()); + caseDescriptionView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainCommonSentenceData(CommonSentenceBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("常用语句"); + for (CommonSentenceBean.DataBean dataBean : dataBeans) { + 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(); + + CommonSentenceBean.DataBean dataBean = dataBeans.get(position); + caseCommonSentenceView.setText(dataBean.getName()); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUpdateSuperviseData(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷督办提交成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷督办提交失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (commonSentencePresenter != null) { + commonSentencePresenter.disposeRetrofitRequest(); + } + if (updateSupervisePresenter != null) { + updateSupervisePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 3060e1b..af6a9fe 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -191,7 +191,7 @@ caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); - caseHandleView.setText(data.getUrgeRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); caseSituationView.setText(data.getDescription()); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index 7816221..3989633 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -28,6 +28,7 @@ import com.casic.dcms.ui.OvertimeCaseActivity; import com.casic.dcms.ui.PersonOnlineActivity; import com.casic.dcms.ui.UrgentCaseActivity; +import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.StringHelper; import com.qmuiteam.qmui.widget.QMUIRadiusImageView; @@ -69,62 +70,12 @@ @Override protected void initEvent() { - HomeRecycleAdapter adapter = new HomeRecycleAdapter(context); - homeRecyclerView.setLayoutManager(new GridLayoutManager(context, 3)); - homeRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - Intent intent = new Intent(); - switch (position) { - case 0: - intent.setClass(context, CaseUploadActivity.class); - break; - case 1: - intent.setClass(context, CaseUploadQuicklyActivity.class); - break; - case 2: - intent.setClass(context, FivePackageUploadActivity.class); - break; - case 3: - intent.setClass(context, CaseVerifyActivity.class); - break; - case 4: - intent.setClass(context, CaseCheckActivity.class); - break; - case 5: - intent.setClass(context, CaseHandleActivity.class); - break; - case 6: - intent.setClass(context, UrgentCaseActivity.class); - break; - case 7: - intent.setClass(context, OvertimeCaseActivity.class); - break; - case 8: - intent.setClass(context, DataAnalysisActivity.class); - break; - case 9: - intent.setClass(context, PersonOnlineActivity.class); - break; - case 10: - intent.setClass(context, CaseSearchActivity.class); - break; - case 11: - intent.setClass(context, MapWatchViewActivity.class); - break; - default: - break; - } - startActivity(intent); - } - }); + } @SuppressLint("SetTextI18n") @Override public void obtainUserData(UserBean userBean) { -// Log.d(TAG, "obtainUserData: " + new Gson().toJson(userBean)); if (userBean.isSuccess()) { //QMUIRadiusImageView无法动态设置圆形头像,借助Glide实现圆形头像 Glide.with(this).load(R.mipmap.app_logo).apply(RequestOptions.circleCropTransform()).into(userIconView); @@ -137,6 +88,121 @@ StringHelper.saveUserPhone(data.getPhone()); StringHelper.saveUserDept(data.getDeptName()); StringHelper.saveUserDeptId(data.getDeptId()); + + //权限控制 + String roleTip = data.getRoleTips().get(0); + HomeRecycleAdapter adapter = new HomeRecycleAdapter(context); + homeRecyclerView.setLayoutManager(new GridLayoutManager(context, 3)); + switch (roleTip) { + case "supervisor": + //All + adapter.setItemData(Constant.ALL_ICONS, Constant.ALL_ITEMS); + adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { + @Override + public void onClick(int position) { + Intent intent = new Intent(); + switch (position) { + case 0: + intent.setClass(context, CaseUploadActivity.class); + break; + case 1: + intent.setClass(context, CaseUploadQuicklyActivity.class); + break; + case 2: + intent.setClass(context, FivePackageUploadActivity.class); + break; + case 3: + intent.setClass(context, CaseVerifyActivity.class); + break; + case 4: + intent.setClass(context, CaseCheckActivity.class); + break; + case 5: + intent.setClass(context, CaseHandleActivity.class); + break; + case 6: + intent.setClass(context, UrgentCaseActivity.class); + break; + case 7: + intent.setClass(context, OvertimeCaseActivity.class); + break; + case 8: + intent.setClass(context, DataAnalysisActivity.class); + break; + case 9: + intent.setClass(context, PersonOnlineActivity.class); + break; + case 10: + intent.setClass(context, CaseSearchActivity.class); + break; + case 11: + intent.setClass(context, MapWatchViewActivity.class); + break; + default: + break; + } + startActivity(intent); + } + }); + break; +// case "process": +// //案卷处理、案卷查询 +// adapter.setItemData(Constant.PROCESS_ICONS, Constant.PROCESS_ITEMS); +// adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { +// @Override +// public void onClick(int position) { +// Intent intent = new Intent(); +// switch (position) { +// case 0: +// intent.setClass(context, CaseHandleActivity.class); +// break; +// case 1: +// intent.setClass(context, CaseSearchActivity.class); +// break; +// default: +// break; +// } +// startActivity(intent); +// } +// }); +// break; +// case "leader": +// //案卷上报、紧急要件、超时督办、统计分析、在岗人员、案卷查询 +// adapter.setItemData(Constant.LEADER_ICONS, Constant.LEADER_ITEMS); +// adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { +// @Override +// public void onClick(int position) { +// Intent intent = new Intent(); +// switch (position) { +// case 0: +// intent.setClass(context, CaseUploadActivity.class); +// break; +// case 1: +// intent.setClass(context, UrgentCaseActivity.class); +// break; +// case 2: +// intent.setClass(context, OvertimeCaseActivity.class); +// break; +// case 3: +// intent.setClass(context, DataAnalysisActivity.class); +// break; +// case 4: +// intent.setClass(context, PersonOnlineActivity.class); +// break; +// case 5: +// intent.setClass(context, CaseSearchActivity.class); +// break; +// default: +// break; +// } +// startActivity(intent); +// } +// }); +// break; + default: + break; + } + homeRecyclerView.setAdapter(adapter); } } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java index 430f8be..fa2df7a 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandledBean; import com.casic.dcms.mvp.presenter.CaseHandledListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandledListView; +import com.casic.dcms.ui.CaseHandledDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -128,10 +130,9 @@ adapter.setOnItemClickListener(new CaseHandledAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandledDetailActivity.class); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java index 502c288..05306fe 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -130,10 +132,10 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "待办案卷"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java index 25877de..743a092 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java @@ -17,7 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; -import com.casic.dcms.ui.CaseHandleOvertimeDetailActivity; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -133,7 +133,8 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { - Intent intent = new Intent(context, CaseHandleOvertimeDetailActivity.class); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "超时案卷"); intent.putExtra("id", dataBeans.get(position).getId()); startActivity(intent); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java index f957e26..ae0b3e5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -131,10 +133,10 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "紧急案卷"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java index 18178eb..5d51969 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.OvertimeCaseBean; import com.casic.dcms.mvp.presenter.OvertimeCaseListPresenterImpl; import com.casic.dcms.mvp.view.IOvertimeCaseListView; +import com.casic.dcms.ui.CaseTodoDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -128,10 +130,10 @@ adapter.setOnItemClickListener(new OvertimeCaseAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseTodoDetailActivity.class); + intent.putExtra("title", "超时督办"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java index 19c6766..51bdbd0 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.mvp.presenter.UrgentCaseListPresenterImpl; import com.casic.dcms.mvp.view.IUrgentCaseListView; +import com.casic.dcms.ui.CaseTodoDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -129,10 +131,10 @@ adapter.setOnItemClickListener(new UrgentCaseAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseTodoDetailActivity.class); + intent.putExtra("title", "紧急要件"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } 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 233b5d1..2e68d04 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -9,18 +9,38 @@ import java.util.List; public class Constant { - public static final List ICONS = Arrays.asList( + public static final String[] USER_PERMISSIONS = { + Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION, + Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO, + Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE, + Manifest.permission.CALL_PHONE}; + + public static final List ALL_ICONS = Arrays.asList( R.mipmap.ajsb, R.mipmap.kssb, R.mipmap.sbsb, R.mipmap.ajhs, R.mipmap.ajhc, R.mipmap.ajcl, R.mipmap.jjyj, R.mipmap.csdb, R.mipmap.tjfx, R.mipmap.zgry, R.mipmap.ajcx, R.mipmap.dtck); - public static final List ITEMS = Arrays.asList( + public static final List ALL_ITEMS = Arrays.asList( "案卷上报", "快速上报", "五包上报", "案卷核实", "案卷核查", "案卷处理", "紧急要件", "超时督办", "统计分析", "在岗人员", "案卷查询", "地图查看"); + public static final List PROCESS_ICONS = Arrays.asList( + R.mipmap.ajcl, R.mipmap.ajcx); + + public static final List PROCESS_ITEMS = Arrays.asList( + "案卷处理", "案卷查询"); + + public static final List LEADER_ICONS = Arrays.asList( + R.mipmap.ajsb, R.mipmap.jjyj, R.mipmap.csdb, + R.mipmap.tjfx, R.mipmap.zgry, R.mipmap.ajcx); + + public static final List LEADER_ITEMS = Arrays.asList( + "案卷上报", "紧急要件", "超时督办", + "统计分析", "在岗人员", "案卷查询"); + public static final List ANALYSIS_ICONS = Arrays.asList( R.mipmap.sbsb, R.mipmap.jjyj, R.mipmap.csdb, R.mipmap.ajcl, R.mipmap.tjfx, R.mipmap.ajhc); @@ -29,17 +49,6 @@ "问题来源", "案卷状态", "高发问题", "街道统计", "处理统计", "趋势分析"); - public static final List CATEGORY = Arrays.asList("请选择", "情况属实", "情况不属实"); - - public static final String[] USER_PERMISSIONS = { - Manifest.permission.ACCESS_COARSE_LOCATION, - Manifest.permission.ACCESS_FINE_LOCATION, - Manifest.permission.CAMERA, - Manifest.permission.READ_EXTERNAL_STORAGE, - Manifest.permission.WRITE_EXTERNAL_STORAGE, - Manifest.permission.RECORD_AUDIO, - Manifest.permission.CALL_PHONE}; - //先预置8种颜色 public static final int[] PIE_COLORS = {Color.rgb(28, 197, 220), Color.rgb(255, 223, 107), Color.rgb(242, 17, 112), diff --git a/app/src/main/java/com/casic/dcms/utils/StringHelper.java b/app/src/main/java/com/casic/dcms/utils/StringHelper.java index 1201063..5aeb8f6 100644 --- a/app/src/main/java/com/casic/dcms/utils/StringHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/StringHelper.java @@ -60,7 +60,9 @@ return ""; } String data = url.replace("\\", "/"); - return SaveKeyValues.getValue(Constant.IP_KEY, "http://111.198.10.15:11409") + "/static/" + data; + String imagePath = SaveKeyValues.getValue(Constant.IP_KEY, "http://111.198.10.15:11409") + "/static/" + data; + Log.d(TAG, "appendCompleteURL: "+imagePath); + return imagePath; } public static String reformatURL(List urls) { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f6ac20a..2070c95 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -67,12 +67,14 @@ - + - + + + { private Context context; + private List iconData = new ArrayList<>(); + private List itemData = new ArrayList<>(); public HomeRecycleAdapter(Context context) { this.context = context; } + public void setItemData(@Nullable List icons, @Nullable List items) { + this.iconData = icons; + this.itemData = items; + } + @NonNull @Override public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -30,7 +40,7 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - holder.bindView(context, position); + holder.bindView(position); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override @@ -43,7 +53,7 @@ @Override public int getItemCount() { - return Constant.ITEMS.size(); + return itemData.size(); } private OnGridItemClickListener clickListener; @@ -56,7 +66,7 @@ this.clickListener = onGridItemClickListener; } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { private ImageView imageView; private TextView textView; @@ -67,9 +77,9 @@ textView = itemView.findViewById(R.id.textView); } - void bindView(Context context, int position) { - imageView.setBackgroundResource(Constant.ICONS.get(position)); - textView.setText(Constant.ITEMS.get(position)); + void bindView(int position) { + imageView.setBackgroundResource(iconData.get(position)); + textView.setText(itemData.get(position)); } } } diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index b9c4615..d9b10e0 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; import java.util.ArrayList; @@ -62,7 +63,10 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - Glide.with(context).load(mediaList.get(position)).into(holder.imageView); + Glide.with(context) + .load(mediaList.get(position)) + .apply(new RequestOptions().error(R.drawable.ic_load_error)) + .into(holder.imageView); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/casic/dcms/base/BaseActivity.java b/app/src/main/java/com/casic/dcms/base/BaseActivity.java index caf0356..2ca87fe 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseActivity.java +++ b/app/src/main/java/com/casic/dcms/base/BaseActivity.java @@ -17,8 +17,8 @@ setContentView(initLayoutView()); ButterKnife.bind(this); QMUIStatusBarHelper.translucent(this);//沉浸式状态栏 - setupTopBarLayout(); initData(); + setupTopBarLayout(); initEvent(); } diff --git a/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java new file mode 100644 index 0000000..8de58a4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java @@ -0,0 +1,78 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CommonSentenceBean { + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 请及时处理 + * id : 156 + * value : 请及时处理 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java new file mode 100644 index 0000000..5258d89 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CommonSentenceBean; +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 CaseCommonSentenceModelImpl implements ICaseCommonSentenceModel { + + private OnGetCommonSentenceListener sentenceListener; + + public CaseCommonSentenceModelImpl(OnGetCommonSentenceListener commonSentenceListener) { + this.sentenceListener = commonSentenceListener; + } + + public interface OnGetCommonSentenceListener { + void onSuccess(CommonSentenceBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCommonSentenceResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (sentenceListener != null) { + sentenceListener.onFailure(e); + } + } + + @Override + public void onNext(CommonSentenceBean resultBean) { + if (resultBean != null) { + sentenceListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java new file mode 100644 index 0000000..a8cb3fc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java @@ -0,0 +1,53 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseUpdateSuperviseModelImpl implements ICaseUpdateSuperviseModel { + + private OnUpdateSuperviseListener listener; + + public CaseUpdateSuperviseModelImpl(OnUpdateSuperviseListener updateSuperviseListener) { + this.listener = updateSuperviseListener; + } + + /** + * 数据回调接口 + */ + public interface OnUpdateSuperviseListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String superviseRemarks) { + Observable observable = RetrofitServiceManager.getUpdateSuperviseResult(id, superviseRemarks); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java new file mode 100644 index 0000000..263ef6c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseCommonSentenceModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java new file mode 100644 index 0000000..518d602 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseUpdateSuperviseModel { + Subscription sendRetrofitRequest(String id, String superviseRemarks); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java new file mode 100644 index 0000000..6b65f13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseCommonSentenceModelImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; + +public class CaseCommonSentencePresenterImpl extends BasePresenter implements ICaseCommonSentencePresenter, + CaseCommonSentenceModelImpl.OnGetCommonSentenceListener { + + private ICaseCommonSentenceView view; + private CaseCommonSentenceModelImpl actionModel; + + public CaseCommonSentencePresenterImpl(ICaseCommonSentenceView commonSentenceView) { + this.view = commonSentenceView; + actionModel = new CaseCommonSentenceModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CommonSentenceBean resultBean) { + view.obtainCommonSentenceData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java new file mode 100644 index 0000000..66e1f44 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseUpdateSuperviseModelImpl; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; + +public class CaseUpdateSupervisePresenterImpl extends BasePresenter implements ICaseUpdateSupervisePresenter, + CaseUpdateSuperviseModelImpl.OnUpdateSuperviseListener { + + private ICaseUpdateSuperviseView view; + private CaseUpdateSuperviseModelImpl actionModel; + + public CaseUpdateSupervisePresenterImpl(ICaseUpdateSuperviseView updateSuperviseView) { + this.view = updateSuperviseView; + actionModel = new CaseUpdateSuperviseModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String superviseRemarks) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, superviseRemarks)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainUpdateSuperviseData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java new file mode 100644 index 0000000..1f8bd09 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseCommonSentencePresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java new file mode 100644 index 0000000..f61f9b2 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseUpdateSupervisePresenter { + void onReadyRetrofitRequest(String id, String superviseRemarks); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java new file mode 100644 index 0000000..9c7b08b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CommonSentenceBean; + +public interface ICaseCommonSentenceView { + void obtainCommonSentenceData(CommonSentenceBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java new file mode 100644 index 0000000..10bcf5a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICaseUpdateSuperviseView { + void showProgress(); + + void hideProgress(); + + void obtainUpdateSuperviseData(ActionResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java index ad70b7a..9143db8 100644 --- a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.ui; +import android.view.View; + +import androidx.core.content.ContextCompat; + import com.bumptech.glide.Glide; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.luck.picture.lib.photoview.PhotoView; -import com.qmuiteam.qmui.util.QMUIStatusBarHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; import butterknife.BindView; @@ -15,6 +19,8 @@ **/ public class BigPictureActivity extends BaseActivity { + @BindView(R.id.imageTopLayout) + QMUITopBarLayout imageTopLayout; @BindView(R.id.photoView) PhotoView photoView; @@ -25,37 +31,24 @@ @Override protected void setupTopBarLayout() { - QMUIStatusBarHelper.setStatusBarLightMode(this); + imageTopLayout.setTitle("查看大图").setTextColor(ContextCompat.getColor(this, R.color.white)); + imageTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + imageTopLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); } @Override public void initData() { -// String mediaJson = getIntent().getStringExtra("mediaJson"); -// -// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() { -// }.getType()); -// -// list = new ArrayList<>(); -// assert mediaList != null; -// for (LocalMedia media : mediaList) { -// list.add(media.getRealPath()); -// } String path = getIntent().getStringExtra("path"); Glide.with(this).load(path).into(photoView); } @Override public void initEvent() { -// //轮播图 -// bigImageBanner.setImageLoader(new ImageLoader() { -// -// @Override -// public void displayImage(Context context, Object path, ImageView imageView) { -// Glide.with(context).load(path).into(imageView); -// } -// }); -// bigImageBanner.isAutoPlay(false); -// bigImageBanner.setImages(list); -// bigImageBanner.start(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index 01a3807..7548cfc 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -329,7 +329,7 @@ caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java new file mode 100644 index 0000000..d4dba38 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -0,0 +1,505 @@ +package com.casic.dcms.ui; + +import android.content.DialogInterface; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseNextNodeBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseHandleView; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseNextNodeView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.IUploadFileView; +import com.casic.dcms.utils.FileUtils; +import com.casic.dcms.utils.GlideLoadEngine; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.luck.picture.lib.PictureSelector; +import com.luck.picture.lib.config.PictureConfig; +import com.luck.picture.lib.config.PictureMimeType; +import com.luck.picture.lib.entity.LocalMedia; +import com.luck.picture.lib.tools.PictureFileUtils; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, + ICaseHandleView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @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) + EditText casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.caseHandleView) + TextView caseHandleView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseStartTimeView) + TextView caseStartTimeView; + @BindView(R.id.caseEndTimeView) + TextView caseEndTimeView; + @BindView(R.id.caseHandleResultView) + TextView caseHandleResultView; + @BindView(R.id.caseHandleRecyclerView) + RecyclerView caseHandleRecyclerView; + @BindView(R.id.addImageView) + ImageView addImageView; + @BindView(R.id.caseReasonView) + EditText caseReasonView; + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private String changeState; + private String caseReason; + private String approvalResult; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private List largeClassBeans = new ArrayList<>(); + private List smallClassBeans = new ArrayList<>(); + private List realPaths = new ArrayList<>();//真实图片路径 + private List mediaList = new ArrayList<>();//上传到服务器的数据集 + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private CaseNextNodePresenterImpl caseNextNodePresenter; + private UploadImagePresenterImpl uploadImagePresenter; + private CaseHandlePresenterImpl caseHandlePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handle_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseNextNodePresenter = new CaseNextNodePresenterImpl(this); + uploadImagePresenter = new UploadImagePresenterImpl(this); + caseHandlePresenter = new CaseHandlePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @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()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + caseStartTimeView.setText(data.getCreateTime()); + caseEndTimeView.setText(data.getNodeLimittime()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeTypeView.setText("无小类"); + } else { + caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 + } + caseSmallTypeView.setText("请选择"); + } + } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallTypeView.setText("无小类"); + } else { + caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 + } + } + } + + @Override + public void obtainNextNodeData(CaseNextNodeBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处理结果"); + for (CaseNextNodeBean.DataBean dataBean : dataBeans) { + 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(); + + CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); + caseHandleResultView.setText(dataBean.getNextOperation()); + changeState = String.valueOf(dataBean.getNextState()); + approvalResult = dataBean.getApprovalResult(); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseClassLayout: + 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(); + + caseTypeView.setText(tag); + //获取案卷大类 + caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseLargeTypeView.setText(tag); + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseSmallTypeView.setText(tag); + } + }).build().show(); + } + } + break; + case R.id.caseHandleResultLayout: + caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); + break; + case R.id.addImageView: + new QMUIDialog.MenuDialogBuilder(this) + .addItem("相册中选取", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //选图 + selectPicture(); + } + }) + .addItem("相机拍照", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //拍照 + takePicture(); + } + }) + .create().show(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String handleResult = caseHandleResultView.getText().toString(); + if (handleResult.equals("请选择")) { + ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); + return; + } + if (handleResult.equals("处理完成")) { + //选择处理完成时,处理图片必传。至少一张,最多两张 + if (mediaList.size() < 1 || mediaList.size() > 2) { + ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); + return; + } + } + if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { + caseReason = caseReasonView.getText().toString(); + if (TextUtils.isEmpty(caseReason)) { + ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); + return; + } + } + caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), + changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); + } + + private void selectPicture() { + PictureSelector.create(this) + .openGallery(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(2) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.CHOOSE_REQUEST); + } + + private void takePicture() { + PictureSelector.create(this) + .openCamera(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(1) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.REQUEST_CAMERA); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == RESULT_OK) { + switch (requestCode) { + case PictureConfig.CHOOSE_REQUEST: + List selectList = PictureSelector.obtainMultipleResult(data); + for (LocalMedia media : selectList) { + String mediaCompressPath = media.getCompressPath(); + uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); + } + break; + case PictureConfig.REQUEST_CAMERA: + LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); + uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); + break; + default: + break; + } + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUploadAudioResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainUploadImageResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + PictureFileUtils.deleteAllCacheDirFile(this); + /** + * 系统路径static拼接图片返回路径 + * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg + */ + //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg + String url = resultBean.getData(); + mediaList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(realPaths); + caseHandleRecyclerView.setVisibility(View.VISIBLE); + caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); + caseHandleRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(realPaths.get(position)); + } + }); + //删除按钮点击事件 + imageAdapter.setDeleteView(true); + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } + } + + @Override + public void obtainUploadVideoResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainCaseHandleResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseNextNodePresenter != null) { + caseNextNodePresenter.disposeRetrofitRequest(); + } + if (uploadImagePresenter != null) { + uploadImagePresenter.disposeRetrofitRequest(); + } + if (caseHandlePresenter != null) { + caseHandlePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java deleted file mode 100644 index bd187c5..0000000 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java +++ /dev/null @@ -1,500 +0,0 @@ -package com.casic.dcms.ui; - -import android.content.DialogInterface; -import android.content.Intent; -import android.text.TextUtils; -import android.view.View; -import android.widget.EditText; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.Nullable; -import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.adapter.ImageRecycleViewAdapter; -import com.casic.dcms.base.BaseCaseActivity; -import com.casic.dcms.bean.ActionResultBean; -import com.casic.dcms.bean.CaseDetailBean; -import com.casic.dcms.bean.CaseLargeClassBean; -import com.casic.dcms.bean.CaseNextNodeBean; -import com.casic.dcms.bean.CaseSmallClassBean; -import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; -import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; -import com.casic.dcms.mvp.view.ICaseDetailView; -import com.casic.dcms.mvp.view.ICaseHandleView; -import com.casic.dcms.mvp.view.ICaseLargeClassView; -import com.casic.dcms.mvp.view.ICaseNextNodeView; -import com.casic.dcms.mvp.view.ICaseSmallClassView; -import com.casic.dcms.mvp.view.IUploadFileView; -import com.casic.dcms.utils.FileUtils; -import com.casic.dcms.utils.GlideLoadEngine; -import com.casic.dcms.utils.ItemDecorationSpace; -import com.casic.dcms.utils.StringHelper; -import com.casic.dcms.utils.ToastHelper; -import com.luck.picture.lib.PictureSelector; -import com.luck.picture.lib.config.PictureConfig; -import com.luck.picture.lib.config.PictureMimeType; -import com.luck.picture.lib.entity.LocalMedia; -import com.luck.picture.lib.tools.PictureFileUtils; -import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; -import com.qmuiteam.qmui.widget.dialog.QMUIDialog; -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; - -import butterknife.BindView; -import butterknife.OnClick; - -public class CaseHandleOvertimeDetailActivity extends BaseCaseActivity implements View.OnClickListener, - ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, - ICaseHandleView { - - @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) - EditText casePlaceView; - @BindView(R.id.caseSituationView) - TextView caseSituationView; - @BindView(R.id.caseHandleView) - TextView caseHandleView; - @BindView(R.id.casePicRecyclerView) - RecyclerView casePicRecyclerView; - @BindView(R.id.caseStartTimeView) - TextView caseStartTimeView; - @BindView(R.id.caseEndTimeView) - TextView caseEndTimeView; - @BindView(R.id.caseHandleResultView) - TextView caseHandleResultView; - @BindView(R.id.caseHandleRecyclerView) - RecyclerView caseHandleRecyclerView; - @BindView(R.id.addImageView) - ImageView addImageView; - @BindView(R.id.caseReasonView) - EditText caseReasonView; - @BindView(R.id.submitButton) - QMUIRoundButton submitButton; - - private String id; - private String changeState; - private String caseReason; - private String approvalResult; - private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); - private List largeClassBeans = new ArrayList<>(); - private List smallClassBeans = new ArrayList<>(); - private List realPaths = new ArrayList<>();//真实图片路径 - private List mediaList = new ArrayList<>();//上传到服务器的数据集 - - private CaseDetailPresenterImpl caseDetailPresenter; - private CaseLargeClassPresenterImpl caseLargeClassPresenter; - private CaseSmallClassPresenterImpl caseSmallClassPresenter; - private CaseNextNodePresenterImpl caseNextNodePresenter; - private UploadImagePresenterImpl uploadImagePresenter; - private CaseHandlePresenterImpl caseHandlePresenter; - - private QMUITipDialog submitDialog; - - @Override - public int initLayoutView() { - return R.layout.activity_case_handle_overtime; - } - - @Override - protected String setTitleName() { - return "超时案卷"; - } - - @Override - public void initData() { - id = getIntent().getStringExtra("id"); - caseDetailPresenter = new CaseDetailPresenterImpl(this); - caseDetailPresenter.onReadyRetrofitRequest(id); - - caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); - caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); - caseNextNodePresenter = new CaseNextNodePresenterImpl(this); - uploadImagePresenter = new UploadImagePresenterImpl(this); - caseHandlePresenter = new CaseHandlePresenterImpl(this); - - submitDialog = new QMUITipDialog.Builder(this) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord("提交中,请稍后") - .create(); - } - - @Override - public void initEvent() { - submitButton.setChangeAlphaWhenPress(true); - } - - @Override - public void obtainCaseDetailData(CaseDetailBean resultBean) { - if (resultBean.isSuccess()) { - this.data = resultBean.getData().get(0); - caseTypeView.setText(data.getEorcName()); - caseLargeTypeView.setText(data.getCasetypeName()); - caseSmallTypeView.setText(data.getCasetypeDetailName()); - caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro()); - caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); - caseStartTimeView.setText(data.getCreateTime()); - caseEndTimeView.setText(data.getNodeLimittime()); - - String verifyImages = data.getFileIdVerify(); - if (!TextUtils.isEmpty(verifyImages)) { - List urls = new ArrayList<>(); - String[] split = verifyImages.split(","); - for (String s : split) { - urls.add(StringHelper.appendCompleteURL(s)); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(urls); - casePicRecyclerView.setVisibility(View.VISIBLE); - casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); - casePicRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(urls.get(position)); - } - }); - imageAdapter.setDeleteView(false); - } - } - } - - private void showBigImage(String path) { - Intent intent = new Intent(this, BigPictureActivity.class); - intent.putExtra("path", path); - startActivity(intent); - } - - @Override - public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { - if (largeClassBean.isSuccess()) { - //设置大类数据 - this.largeClassBeans = largeClassBean.getData(); - if (largeClassBeans.size() == 0) { - caseLargeTypeView.setText("无小类"); - } else { - caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 - } - caseSmallTypeView.setText("请选择"); - } - } - - @Override - public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { - if (smallClassBean.isSuccess()) { - //设置大类数据 - this.smallClassBeans = smallClassBean.getData(); - if (smallClassBeans.size() == 0) { - caseSmallTypeView.setText("无小类"); - } else { - caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 - } - } - } - - @Override - public void obtainNextNodeData(CaseNextNodeBean resultBean) { - if (resultBean.isSuccess()) { - List dataBeans = resultBean.getData(); - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("处理结果"); - for (CaseNextNodeBean.DataBean dataBean : dataBeans) { - 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(); - - CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); - caseHandleResultView.setText(dataBean.getNextOperation()); - changeState = String.valueOf(dataBean.getNextState()); - approvalResult = dataBean.getApprovalResult(); - } - }).build().show(); - } else { - ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); - } - } - - @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) - @Override - public void onClick(View v) { - switch (v.getId()) { - case R.id.caseClassLayout: - 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(); - - caseTypeView.setText(tag); - //获取案卷大类 - caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); - } - }).build().show(); - break; - case R.id.caseLargeClassLayout: - if (largeClassBeans != null) { - if (largeClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷大类"); - for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { - sheetBuilder.addItem(dataBean.getTypeName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseLargeTypeView.setText(tag); - //获取案卷小类 - CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); - String typeId = dataBean.getId(); - caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); - } - }).build().show(); - } - } - break; - case R.id.caseSmallClassLayout: - if (smallClassBeans != null) { - if (smallClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷小类"); - for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { - sheetBuilder.addItem(dataBean.getTypeDetailName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseSmallTypeView.setText(tag); - } - }).build().show(); - } - } - break; - case R.id.caseHandleResultLayout: - caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); - break; - case R.id.addImageView: - new QMUIDialog.MenuDialogBuilder(this) - .addItem("相册中选取", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //选图 - selectPicture(); - } - }) - .addItem("相机拍照", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //拍照 - takePicture(); - } - }) - .create().show(); - break; - case R.id.submitButton: - submitCase();//案卷提交 - break; - default: - break; - } - } - - private void submitCase() { - String handleResult = caseHandleResultView.getText().toString(); - if (handleResult.equals("请选择")) { - ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); - return; - } - if (handleResult.equals("处理完成")) { - //选择处理完成时,处理图片必传。至少一张,最多两张 - if (mediaList.size() < 1 || mediaList.size() > 2) { - ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); - return; - } - } - if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { - caseReason = caseReasonView.getText().toString(); - if (TextUtils.isEmpty(caseReason)) { - ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); - return; - } - } - caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), - changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); - } - - private void selectPicture() { - PictureSelector.create(this) - .openGallery(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(2) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.CHOOSE_REQUEST); - } - - private void takePicture() { - PictureSelector.create(this) - .openCamera(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(1) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.REQUEST_CAMERA); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if (resultCode == RESULT_OK) { - switch (requestCode) { - case PictureConfig.CHOOSE_REQUEST: - List selectList = PictureSelector.obtainMultipleResult(data); - for (LocalMedia media : selectList) { - String mediaCompressPath = media.getCompressPath(); - uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); - } - break; - case PictureConfig.REQUEST_CAMERA: - LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); - uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); - break; - default: - break; - } - } - } - - @Override - public void showProgress() { - submitDialog.show(); - } - - @Override - public void hideProgress() { - submitDialog.hide(); - } - - @Override - public void obtainUploadAudioResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainUploadImageResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - PictureFileUtils.deleteAllCacheDirFile(this); - /** - * 系统路径static拼接图片返回路径 - * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg - */ - //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String url = resultBean.getData(); - mediaList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(realPaths); - caseHandleRecyclerView.setVisibility(View.VISIBLE); - caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); - caseHandleRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(realPaths.get(position)); - } - }); - //删除按钮点击事件 - imageAdapter.setDeleteView(true); - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); - } - } - }); - } - } - - @Override - public void obtainUploadVideoResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainCaseHandleResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); - finish(); - } else { - ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); - } - } - - @Override - protected void onDestroy() { - super.onDestroy(); - if (caseDetailPresenter != null) { - caseDetailPresenter.disposeRetrofitRequest(); - } - if (caseLargeClassPresenter != null) { - caseLargeClassPresenter.disposeRetrofitRequest(); - } - if (caseSmallClassPresenter != null) { - caseSmallClassPresenter.disposeRetrofitRequest(); - } - if (caseNextNodePresenter != null) { - caseNextNodePresenter.disposeRetrofitRequest(); - } - if (uploadImagePresenter != null) { - uploadImagePresenter.disposeRetrofitRequest(); - } - if (caseHandlePresenter != null) { - caseHandlePresenter.disposeRetrofitRequest(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java new file mode 100644 index 0000000..5ea5403 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -0,0 +1,145 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { + + @BindView(R.id.detailTopLayout) + QMUITopBarLayout detailTopLayout; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @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; + + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private CaseDetailPresenterImpl caseDetailPresenter; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handled_detail; + } + + @Override + protected void setupTopBarLayout() { + detailTopLayout.setTitle("已办案卷").setTextColor(ContextCompat.getColor(this, R.color.white)); + detailTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + detailTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + String id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + } + + @Override + public void initEvent() { + + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseHandleStatusView.setText(data.getCaseStateName()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @OnClick(R.id.handleLayout) + @Override + public void onClick(View v) { + if (v.getId() == R.id.handleLayout) { + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java new file mode 100644 index 0000000..3b2d3d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -0,0 +1,228 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.TextView; + +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.presenter.CaseCommonSentencePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseUpdateSupervisePresenterImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseOverTimeView) + TextView caseOverTimeView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @BindView(R.id.casePlaceView) + EditText casePlaceView; + @BindView(R.id.caseDescriptionView) + TextView caseDescriptionView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseHandleResultView) + EditText caseHandleResultView; + @BindView(R.id.caseCommonSentenceView) + TextView caseCommonSentenceView; + + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseCommonSentencePresenterImpl commonSentencePresenter; + private CaseUpdateSupervisePresenterImpl updateSupervisePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_todo_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + commonSentencePresenter = new CaseCommonSentencePresenterImpl(this); + updateSupervisePresenter = new CaseUpdateSupervisePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @Override + public void initEvent() { + + } + + @OnClick({R.id.caseHandleLayout, R.id.caseCommonSentenceLayout, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseHandleLayout: + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + break; + case R.id.caseCommonSentenceLayout: + commonSentencePresenter.onReadyRetrofitRequest(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String remarks = caseHandleResultView.getText().toString(); + if (TextUtils.isEmpty(remarks)) { + ToastHelper.showToast("督办意见不能为空", ToastHelper.WARING); + return; + } + updateSupervisePresenter.onReadyRetrofitRequest(id, remarks); + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseOverTimeView.setText(data.getNodeLimittime()); + caseHandleStatusView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + casePlaceView.setText(data.getFieldintro()); + caseDescriptionView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainCommonSentenceData(CommonSentenceBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("常用语句"); + for (CommonSentenceBean.DataBean dataBean : dataBeans) { + 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(); + + CommonSentenceBean.DataBean dataBean = dataBeans.get(position); + caseCommonSentenceView.setText(dataBean.getName()); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUpdateSuperviseData(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷督办提交成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷督办提交失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (commonSentencePresenter != null) { + commonSentencePresenter.disposeRetrofitRequest(); + } + if (updateSupervisePresenter != null) { + updateSupervisePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 3060e1b..af6a9fe 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -191,7 +191,7 @@ caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); - caseHandleView.setText(data.getUrgeRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); caseSituationView.setText(data.getDescription()); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index 7816221..3989633 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -28,6 +28,7 @@ import com.casic.dcms.ui.OvertimeCaseActivity; import com.casic.dcms.ui.PersonOnlineActivity; import com.casic.dcms.ui.UrgentCaseActivity; +import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.StringHelper; import com.qmuiteam.qmui.widget.QMUIRadiusImageView; @@ -69,62 +70,12 @@ @Override protected void initEvent() { - HomeRecycleAdapter adapter = new HomeRecycleAdapter(context); - homeRecyclerView.setLayoutManager(new GridLayoutManager(context, 3)); - homeRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - Intent intent = new Intent(); - switch (position) { - case 0: - intent.setClass(context, CaseUploadActivity.class); - break; - case 1: - intent.setClass(context, CaseUploadQuicklyActivity.class); - break; - case 2: - intent.setClass(context, FivePackageUploadActivity.class); - break; - case 3: - intent.setClass(context, CaseVerifyActivity.class); - break; - case 4: - intent.setClass(context, CaseCheckActivity.class); - break; - case 5: - intent.setClass(context, CaseHandleActivity.class); - break; - case 6: - intent.setClass(context, UrgentCaseActivity.class); - break; - case 7: - intent.setClass(context, OvertimeCaseActivity.class); - break; - case 8: - intent.setClass(context, DataAnalysisActivity.class); - break; - case 9: - intent.setClass(context, PersonOnlineActivity.class); - break; - case 10: - intent.setClass(context, CaseSearchActivity.class); - break; - case 11: - intent.setClass(context, MapWatchViewActivity.class); - break; - default: - break; - } - startActivity(intent); - } - }); + } @SuppressLint("SetTextI18n") @Override public void obtainUserData(UserBean userBean) { -// Log.d(TAG, "obtainUserData: " + new Gson().toJson(userBean)); if (userBean.isSuccess()) { //QMUIRadiusImageView无法动态设置圆形头像,借助Glide实现圆形头像 Glide.with(this).load(R.mipmap.app_logo).apply(RequestOptions.circleCropTransform()).into(userIconView); @@ -137,6 +88,121 @@ StringHelper.saveUserPhone(data.getPhone()); StringHelper.saveUserDept(data.getDeptName()); StringHelper.saveUserDeptId(data.getDeptId()); + + //权限控制 + String roleTip = data.getRoleTips().get(0); + HomeRecycleAdapter adapter = new HomeRecycleAdapter(context); + homeRecyclerView.setLayoutManager(new GridLayoutManager(context, 3)); + switch (roleTip) { + case "supervisor": + //All + adapter.setItemData(Constant.ALL_ICONS, Constant.ALL_ITEMS); + adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { + @Override + public void onClick(int position) { + Intent intent = new Intent(); + switch (position) { + case 0: + intent.setClass(context, CaseUploadActivity.class); + break; + case 1: + intent.setClass(context, CaseUploadQuicklyActivity.class); + break; + case 2: + intent.setClass(context, FivePackageUploadActivity.class); + break; + case 3: + intent.setClass(context, CaseVerifyActivity.class); + break; + case 4: + intent.setClass(context, CaseCheckActivity.class); + break; + case 5: + intent.setClass(context, CaseHandleActivity.class); + break; + case 6: + intent.setClass(context, UrgentCaseActivity.class); + break; + case 7: + intent.setClass(context, OvertimeCaseActivity.class); + break; + case 8: + intent.setClass(context, DataAnalysisActivity.class); + break; + case 9: + intent.setClass(context, PersonOnlineActivity.class); + break; + case 10: + intent.setClass(context, CaseSearchActivity.class); + break; + case 11: + intent.setClass(context, MapWatchViewActivity.class); + break; + default: + break; + } + startActivity(intent); + } + }); + break; +// case "process": +// //案卷处理、案卷查询 +// adapter.setItemData(Constant.PROCESS_ICONS, Constant.PROCESS_ITEMS); +// adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { +// @Override +// public void onClick(int position) { +// Intent intent = new Intent(); +// switch (position) { +// case 0: +// intent.setClass(context, CaseHandleActivity.class); +// break; +// case 1: +// intent.setClass(context, CaseSearchActivity.class); +// break; +// default: +// break; +// } +// startActivity(intent); +// } +// }); +// break; +// case "leader": +// //案卷上报、紧急要件、超时督办、统计分析、在岗人员、案卷查询 +// adapter.setItemData(Constant.LEADER_ICONS, Constant.LEADER_ITEMS); +// adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { +// @Override +// public void onClick(int position) { +// Intent intent = new Intent(); +// switch (position) { +// case 0: +// intent.setClass(context, CaseUploadActivity.class); +// break; +// case 1: +// intent.setClass(context, UrgentCaseActivity.class); +// break; +// case 2: +// intent.setClass(context, OvertimeCaseActivity.class); +// break; +// case 3: +// intent.setClass(context, DataAnalysisActivity.class); +// break; +// case 4: +// intent.setClass(context, PersonOnlineActivity.class); +// break; +// case 5: +// intent.setClass(context, CaseSearchActivity.class); +// break; +// default: +// break; +// } +// startActivity(intent); +// } +// }); +// break; + default: + break; + } + homeRecyclerView.setAdapter(adapter); } } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java index 430f8be..fa2df7a 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandledBean; import com.casic.dcms.mvp.presenter.CaseHandledListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandledListView; +import com.casic.dcms.ui.CaseHandledDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -128,10 +130,9 @@ adapter.setOnItemClickListener(new CaseHandledAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandledDetailActivity.class); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java index 502c288..05306fe 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -130,10 +132,10 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "待办案卷"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java index 25877de..743a092 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java @@ -17,7 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; -import com.casic.dcms.ui.CaseHandleOvertimeDetailActivity; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -133,7 +133,8 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { - Intent intent = new Intent(context, CaseHandleOvertimeDetailActivity.class); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "超时案卷"); intent.putExtra("id", dataBeans.get(position).getId()); startActivity(intent); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java index f957e26..ae0b3e5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -131,10 +133,10 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "紧急案卷"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java index 18178eb..5d51969 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.OvertimeCaseBean; import com.casic.dcms.mvp.presenter.OvertimeCaseListPresenterImpl; import com.casic.dcms.mvp.view.IOvertimeCaseListView; +import com.casic.dcms.ui.CaseTodoDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -128,10 +130,10 @@ adapter.setOnItemClickListener(new OvertimeCaseAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseTodoDetailActivity.class); + intent.putExtra("title", "超时督办"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java index 19c6766..51bdbd0 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.mvp.presenter.UrgentCaseListPresenterImpl; import com.casic.dcms.mvp.view.IUrgentCaseListView; +import com.casic.dcms.ui.CaseTodoDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -129,10 +131,10 @@ adapter.setOnItemClickListener(new UrgentCaseAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseTodoDetailActivity.class); + intent.putExtra("title", "紧急要件"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } 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 233b5d1..2e68d04 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -9,18 +9,38 @@ import java.util.List; public class Constant { - public static final List ICONS = Arrays.asList( + public static final String[] USER_PERMISSIONS = { + Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION, + Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO, + Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE, + Manifest.permission.CALL_PHONE}; + + public static final List ALL_ICONS = Arrays.asList( R.mipmap.ajsb, R.mipmap.kssb, R.mipmap.sbsb, R.mipmap.ajhs, R.mipmap.ajhc, R.mipmap.ajcl, R.mipmap.jjyj, R.mipmap.csdb, R.mipmap.tjfx, R.mipmap.zgry, R.mipmap.ajcx, R.mipmap.dtck); - public static final List ITEMS = Arrays.asList( + public static final List ALL_ITEMS = Arrays.asList( "案卷上报", "快速上报", "五包上报", "案卷核实", "案卷核查", "案卷处理", "紧急要件", "超时督办", "统计分析", "在岗人员", "案卷查询", "地图查看"); + public static final List PROCESS_ICONS = Arrays.asList( + R.mipmap.ajcl, R.mipmap.ajcx); + + public static final List PROCESS_ITEMS = Arrays.asList( + "案卷处理", "案卷查询"); + + public static final List LEADER_ICONS = Arrays.asList( + R.mipmap.ajsb, R.mipmap.jjyj, R.mipmap.csdb, + R.mipmap.tjfx, R.mipmap.zgry, R.mipmap.ajcx); + + public static final List LEADER_ITEMS = Arrays.asList( + "案卷上报", "紧急要件", "超时督办", + "统计分析", "在岗人员", "案卷查询"); + public static final List ANALYSIS_ICONS = Arrays.asList( R.mipmap.sbsb, R.mipmap.jjyj, R.mipmap.csdb, R.mipmap.ajcl, R.mipmap.tjfx, R.mipmap.ajhc); @@ -29,17 +49,6 @@ "问题来源", "案卷状态", "高发问题", "街道统计", "处理统计", "趋势分析"); - public static final List CATEGORY = Arrays.asList("请选择", "情况属实", "情况不属实"); - - public static final String[] USER_PERMISSIONS = { - Manifest.permission.ACCESS_COARSE_LOCATION, - Manifest.permission.ACCESS_FINE_LOCATION, - Manifest.permission.CAMERA, - Manifest.permission.READ_EXTERNAL_STORAGE, - Manifest.permission.WRITE_EXTERNAL_STORAGE, - Manifest.permission.RECORD_AUDIO, - Manifest.permission.CALL_PHONE}; - //先预置8种颜色 public static final int[] PIE_COLORS = {Color.rgb(28, 197, 220), Color.rgb(255, 223, 107), Color.rgb(242, 17, 112), diff --git a/app/src/main/java/com/casic/dcms/utils/StringHelper.java b/app/src/main/java/com/casic/dcms/utils/StringHelper.java index 1201063..5aeb8f6 100644 --- a/app/src/main/java/com/casic/dcms/utils/StringHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/StringHelper.java @@ -60,7 +60,9 @@ return ""; } String data = url.replace("\\", "/"); - return SaveKeyValues.getValue(Constant.IP_KEY, "http://111.198.10.15:11409") + "/static/" + data; + String imagePath = SaveKeyValues.getValue(Constant.IP_KEY, "http://111.198.10.15:11409") + "/static/" + data; + Log.d(TAG, "appendCompleteURL: "+imagePath); + return imagePath; } public static String reformatURL(List urls) { 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 ec230dd..16bafa1 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 @@ -14,6 +14,7 @@ import com.casic.dcms.bean.CaseStatusBean; import com.casic.dcms.bean.CaseVerifiedBean; import com.casic.dcms.bean.CaseVerifyBean; +import com.casic.dcms.bean.CommonSentenceBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; import com.casic.dcms.bean.LoginResultBean; @@ -345,6 +346,12 @@ @Query("caseState") String caseState); /** + * 获取常见语句 + */ + @GET("/dict/code/commonApproval") + Observable obtainCommonSentence(@Header("token") String token); + + /** * 案卷处理 *

* 案卷核实-仅添加核实意见/核实情况/核实图片 @@ -401,4 +408,12 @@ @Field("communityCode") String communityCode, @Field("gridId") String gridId, @Field("fieldintro") String fieldintro); + + /** + * 紧急要件-超时督办 + */ + @GET("/casedetail/updateSuperviseRemarks") + Observable updateSuperviseRemarks(@Header("token") String token, + @Query("id") String id, + @Query("superviseRemarks") String superviseRemarks); } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f6ac20a..2070c95 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -67,12 +67,14 @@ - + - + + + { private Context context; + private List iconData = new ArrayList<>(); + private List itemData = new ArrayList<>(); public HomeRecycleAdapter(Context context) { this.context = context; } + public void setItemData(@Nullable List icons, @Nullable List items) { + this.iconData = icons; + this.itemData = items; + } + @NonNull @Override public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -30,7 +40,7 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - holder.bindView(context, position); + holder.bindView(position); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override @@ -43,7 +53,7 @@ @Override public int getItemCount() { - return Constant.ITEMS.size(); + return itemData.size(); } private OnGridItemClickListener clickListener; @@ -56,7 +66,7 @@ this.clickListener = onGridItemClickListener; } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { private ImageView imageView; private TextView textView; @@ -67,9 +77,9 @@ textView = itemView.findViewById(R.id.textView); } - void bindView(Context context, int position) { - imageView.setBackgroundResource(Constant.ICONS.get(position)); - textView.setText(Constant.ITEMS.get(position)); + void bindView(int position) { + imageView.setBackgroundResource(iconData.get(position)); + textView.setText(itemData.get(position)); } } } diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index b9c4615..d9b10e0 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; import java.util.ArrayList; @@ -62,7 +63,10 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - Glide.with(context).load(mediaList.get(position)).into(holder.imageView); + Glide.with(context) + .load(mediaList.get(position)) + .apply(new RequestOptions().error(R.drawable.ic_load_error)) + .into(holder.imageView); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/casic/dcms/base/BaseActivity.java b/app/src/main/java/com/casic/dcms/base/BaseActivity.java index caf0356..2ca87fe 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseActivity.java +++ b/app/src/main/java/com/casic/dcms/base/BaseActivity.java @@ -17,8 +17,8 @@ setContentView(initLayoutView()); ButterKnife.bind(this); QMUIStatusBarHelper.translucent(this);//沉浸式状态栏 - setupTopBarLayout(); initData(); + setupTopBarLayout(); initEvent(); } diff --git a/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java new file mode 100644 index 0000000..8de58a4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java @@ -0,0 +1,78 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CommonSentenceBean { + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 请及时处理 + * id : 156 + * value : 请及时处理 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java new file mode 100644 index 0000000..5258d89 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CommonSentenceBean; +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 CaseCommonSentenceModelImpl implements ICaseCommonSentenceModel { + + private OnGetCommonSentenceListener sentenceListener; + + public CaseCommonSentenceModelImpl(OnGetCommonSentenceListener commonSentenceListener) { + this.sentenceListener = commonSentenceListener; + } + + public interface OnGetCommonSentenceListener { + void onSuccess(CommonSentenceBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCommonSentenceResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (sentenceListener != null) { + sentenceListener.onFailure(e); + } + } + + @Override + public void onNext(CommonSentenceBean resultBean) { + if (resultBean != null) { + sentenceListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java new file mode 100644 index 0000000..a8cb3fc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java @@ -0,0 +1,53 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseUpdateSuperviseModelImpl implements ICaseUpdateSuperviseModel { + + private OnUpdateSuperviseListener listener; + + public CaseUpdateSuperviseModelImpl(OnUpdateSuperviseListener updateSuperviseListener) { + this.listener = updateSuperviseListener; + } + + /** + * 数据回调接口 + */ + public interface OnUpdateSuperviseListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String superviseRemarks) { + Observable observable = RetrofitServiceManager.getUpdateSuperviseResult(id, superviseRemarks); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java new file mode 100644 index 0000000..263ef6c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseCommonSentenceModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java new file mode 100644 index 0000000..518d602 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseUpdateSuperviseModel { + Subscription sendRetrofitRequest(String id, String superviseRemarks); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java new file mode 100644 index 0000000..6b65f13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseCommonSentenceModelImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; + +public class CaseCommonSentencePresenterImpl extends BasePresenter implements ICaseCommonSentencePresenter, + CaseCommonSentenceModelImpl.OnGetCommonSentenceListener { + + private ICaseCommonSentenceView view; + private CaseCommonSentenceModelImpl actionModel; + + public CaseCommonSentencePresenterImpl(ICaseCommonSentenceView commonSentenceView) { + this.view = commonSentenceView; + actionModel = new CaseCommonSentenceModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CommonSentenceBean resultBean) { + view.obtainCommonSentenceData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java new file mode 100644 index 0000000..66e1f44 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseUpdateSuperviseModelImpl; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; + +public class CaseUpdateSupervisePresenterImpl extends BasePresenter implements ICaseUpdateSupervisePresenter, + CaseUpdateSuperviseModelImpl.OnUpdateSuperviseListener { + + private ICaseUpdateSuperviseView view; + private CaseUpdateSuperviseModelImpl actionModel; + + public CaseUpdateSupervisePresenterImpl(ICaseUpdateSuperviseView updateSuperviseView) { + this.view = updateSuperviseView; + actionModel = new CaseUpdateSuperviseModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String superviseRemarks) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, superviseRemarks)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainUpdateSuperviseData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java new file mode 100644 index 0000000..1f8bd09 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseCommonSentencePresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java new file mode 100644 index 0000000..f61f9b2 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseUpdateSupervisePresenter { + void onReadyRetrofitRequest(String id, String superviseRemarks); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java new file mode 100644 index 0000000..9c7b08b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CommonSentenceBean; + +public interface ICaseCommonSentenceView { + void obtainCommonSentenceData(CommonSentenceBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java new file mode 100644 index 0000000..10bcf5a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICaseUpdateSuperviseView { + void showProgress(); + + void hideProgress(); + + void obtainUpdateSuperviseData(ActionResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java index ad70b7a..9143db8 100644 --- a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.ui; +import android.view.View; + +import androidx.core.content.ContextCompat; + import com.bumptech.glide.Glide; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.luck.picture.lib.photoview.PhotoView; -import com.qmuiteam.qmui.util.QMUIStatusBarHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; import butterknife.BindView; @@ -15,6 +19,8 @@ **/ public class BigPictureActivity extends BaseActivity { + @BindView(R.id.imageTopLayout) + QMUITopBarLayout imageTopLayout; @BindView(R.id.photoView) PhotoView photoView; @@ -25,37 +31,24 @@ @Override protected void setupTopBarLayout() { - QMUIStatusBarHelper.setStatusBarLightMode(this); + imageTopLayout.setTitle("查看大图").setTextColor(ContextCompat.getColor(this, R.color.white)); + imageTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + imageTopLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); } @Override public void initData() { -// String mediaJson = getIntent().getStringExtra("mediaJson"); -// -// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() { -// }.getType()); -// -// list = new ArrayList<>(); -// assert mediaList != null; -// for (LocalMedia media : mediaList) { -// list.add(media.getRealPath()); -// } String path = getIntent().getStringExtra("path"); Glide.with(this).load(path).into(photoView); } @Override public void initEvent() { -// //轮播图 -// bigImageBanner.setImageLoader(new ImageLoader() { -// -// @Override -// public void displayImage(Context context, Object path, ImageView imageView) { -// Glide.with(context).load(path).into(imageView); -// } -// }); -// bigImageBanner.isAutoPlay(false); -// bigImageBanner.setImages(list); -// bigImageBanner.start(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index 01a3807..7548cfc 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -329,7 +329,7 @@ caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java new file mode 100644 index 0000000..d4dba38 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -0,0 +1,505 @@ +package com.casic.dcms.ui; + +import android.content.DialogInterface; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseNextNodeBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseHandleView; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseNextNodeView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.IUploadFileView; +import com.casic.dcms.utils.FileUtils; +import com.casic.dcms.utils.GlideLoadEngine; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.luck.picture.lib.PictureSelector; +import com.luck.picture.lib.config.PictureConfig; +import com.luck.picture.lib.config.PictureMimeType; +import com.luck.picture.lib.entity.LocalMedia; +import com.luck.picture.lib.tools.PictureFileUtils; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, + ICaseHandleView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @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) + EditText casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.caseHandleView) + TextView caseHandleView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseStartTimeView) + TextView caseStartTimeView; + @BindView(R.id.caseEndTimeView) + TextView caseEndTimeView; + @BindView(R.id.caseHandleResultView) + TextView caseHandleResultView; + @BindView(R.id.caseHandleRecyclerView) + RecyclerView caseHandleRecyclerView; + @BindView(R.id.addImageView) + ImageView addImageView; + @BindView(R.id.caseReasonView) + EditText caseReasonView; + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private String changeState; + private String caseReason; + private String approvalResult; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private List largeClassBeans = new ArrayList<>(); + private List smallClassBeans = new ArrayList<>(); + private List realPaths = new ArrayList<>();//真实图片路径 + private List mediaList = new ArrayList<>();//上传到服务器的数据集 + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private CaseNextNodePresenterImpl caseNextNodePresenter; + private UploadImagePresenterImpl uploadImagePresenter; + private CaseHandlePresenterImpl caseHandlePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handle_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseNextNodePresenter = new CaseNextNodePresenterImpl(this); + uploadImagePresenter = new UploadImagePresenterImpl(this); + caseHandlePresenter = new CaseHandlePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @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()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + caseStartTimeView.setText(data.getCreateTime()); + caseEndTimeView.setText(data.getNodeLimittime()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeTypeView.setText("无小类"); + } else { + caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 + } + caseSmallTypeView.setText("请选择"); + } + } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallTypeView.setText("无小类"); + } else { + caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 + } + } + } + + @Override + public void obtainNextNodeData(CaseNextNodeBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处理结果"); + for (CaseNextNodeBean.DataBean dataBean : dataBeans) { + 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(); + + CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); + caseHandleResultView.setText(dataBean.getNextOperation()); + changeState = String.valueOf(dataBean.getNextState()); + approvalResult = dataBean.getApprovalResult(); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseClassLayout: + 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(); + + caseTypeView.setText(tag); + //获取案卷大类 + caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseLargeTypeView.setText(tag); + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseSmallTypeView.setText(tag); + } + }).build().show(); + } + } + break; + case R.id.caseHandleResultLayout: + caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); + break; + case R.id.addImageView: + new QMUIDialog.MenuDialogBuilder(this) + .addItem("相册中选取", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //选图 + selectPicture(); + } + }) + .addItem("相机拍照", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //拍照 + takePicture(); + } + }) + .create().show(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String handleResult = caseHandleResultView.getText().toString(); + if (handleResult.equals("请选择")) { + ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); + return; + } + if (handleResult.equals("处理完成")) { + //选择处理完成时,处理图片必传。至少一张,最多两张 + if (mediaList.size() < 1 || mediaList.size() > 2) { + ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); + return; + } + } + if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { + caseReason = caseReasonView.getText().toString(); + if (TextUtils.isEmpty(caseReason)) { + ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); + return; + } + } + caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), + changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); + } + + private void selectPicture() { + PictureSelector.create(this) + .openGallery(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(2) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.CHOOSE_REQUEST); + } + + private void takePicture() { + PictureSelector.create(this) + .openCamera(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(1) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.REQUEST_CAMERA); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == RESULT_OK) { + switch (requestCode) { + case PictureConfig.CHOOSE_REQUEST: + List selectList = PictureSelector.obtainMultipleResult(data); + for (LocalMedia media : selectList) { + String mediaCompressPath = media.getCompressPath(); + uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); + } + break; + case PictureConfig.REQUEST_CAMERA: + LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); + uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); + break; + default: + break; + } + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUploadAudioResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainUploadImageResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + PictureFileUtils.deleteAllCacheDirFile(this); + /** + * 系统路径static拼接图片返回路径 + * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg + */ + //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg + String url = resultBean.getData(); + mediaList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(realPaths); + caseHandleRecyclerView.setVisibility(View.VISIBLE); + caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); + caseHandleRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(realPaths.get(position)); + } + }); + //删除按钮点击事件 + imageAdapter.setDeleteView(true); + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } + } + + @Override + public void obtainUploadVideoResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainCaseHandleResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseNextNodePresenter != null) { + caseNextNodePresenter.disposeRetrofitRequest(); + } + if (uploadImagePresenter != null) { + uploadImagePresenter.disposeRetrofitRequest(); + } + if (caseHandlePresenter != null) { + caseHandlePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java deleted file mode 100644 index bd187c5..0000000 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java +++ /dev/null @@ -1,500 +0,0 @@ -package com.casic.dcms.ui; - -import android.content.DialogInterface; -import android.content.Intent; -import android.text.TextUtils; -import android.view.View; -import android.widget.EditText; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.Nullable; -import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.adapter.ImageRecycleViewAdapter; -import com.casic.dcms.base.BaseCaseActivity; -import com.casic.dcms.bean.ActionResultBean; -import com.casic.dcms.bean.CaseDetailBean; -import com.casic.dcms.bean.CaseLargeClassBean; -import com.casic.dcms.bean.CaseNextNodeBean; -import com.casic.dcms.bean.CaseSmallClassBean; -import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; -import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; -import com.casic.dcms.mvp.view.ICaseDetailView; -import com.casic.dcms.mvp.view.ICaseHandleView; -import com.casic.dcms.mvp.view.ICaseLargeClassView; -import com.casic.dcms.mvp.view.ICaseNextNodeView; -import com.casic.dcms.mvp.view.ICaseSmallClassView; -import com.casic.dcms.mvp.view.IUploadFileView; -import com.casic.dcms.utils.FileUtils; -import com.casic.dcms.utils.GlideLoadEngine; -import com.casic.dcms.utils.ItemDecorationSpace; -import com.casic.dcms.utils.StringHelper; -import com.casic.dcms.utils.ToastHelper; -import com.luck.picture.lib.PictureSelector; -import com.luck.picture.lib.config.PictureConfig; -import com.luck.picture.lib.config.PictureMimeType; -import com.luck.picture.lib.entity.LocalMedia; -import com.luck.picture.lib.tools.PictureFileUtils; -import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; -import com.qmuiteam.qmui.widget.dialog.QMUIDialog; -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; - -import butterknife.BindView; -import butterknife.OnClick; - -public class CaseHandleOvertimeDetailActivity extends BaseCaseActivity implements View.OnClickListener, - ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, - ICaseHandleView { - - @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) - EditText casePlaceView; - @BindView(R.id.caseSituationView) - TextView caseSituationView; - @BindView(R.id.caseHandleView) - TextView caseHandleView; - @BindView(R.id.casePicRecyclerView) - RecyclerView casePicRecyclerView; - @BindView(R.id.caseStartTimeView) - TextView caseStartTimeView; - @BindView(R.id.caseEndTimeView) - TextView caseEndTimeView; - @BindView(R.id.caseHandleResultView) - TextView caseHandleResultView; - @BindView(R.id.caseHandleRecyclerView) - RecyclerView caseHandleRecyclerView; - @BindView(R.id.addImageView) - ImageView addImageView; - @BindView(R.id.caseReasonView) - EditText caseReasonView; - @BindView(R.id.submitButton) - QMUIRoundButton submitButton; - - private String id; - private String changeState; - private String caseReason; - private String approvalResult; - private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); - private List largeClassBeans = new ArrayList<>(); - private List smallClassBeans = new ArrayList<>(); - private List realPaths = new ArrayList<>();//真实图片路径 - private List mediaList = new ArrayList<>();//上传到服务器的数据集 - - private CaseDetailPresenterImpl caseDetailPresenter; - private CaseLargeClassPresenterImpl caseLargeClassPresenter; - private CaseSmallClassPresenterImpl caseSmallClassPresenter; - private CaseNextNodePresenterImpl caseNextNodePresenter; - private UploadImagePresenterImpl uploadImagePresenter; - private CaseHandlePresenterImpl caseHandlePresenter; - - private QMUITipDialog submitDialog; - - @Override - public int initLayoutView() { - return R.layout.activity_case_handle_overtime; - } - - @Override - protected String setTitleName() { - return "超时案卷"; - } - - @Override - public void initData() { - id = getIntent().getStringExtra("id"); - caseDetailPresenter = new CaseDetailPresenterImpl(this); - caseDetailPresenter.onReadyRetrofitRequest(id); - - caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); - caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); - caseNextNodePresenter = new CaseNextNodePresenterImpl(this); - uploadImagePresenter = new UploadImagePresenterImpl(this); - caseHandlePresenter = new CaseHandlePresenterImpl(this); - - submitDialog = new QMUITipDialog.Builder(this) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord("提交中,请稍后") - .create(); - } - - @Override - public void initEvent() { - submitButton.setChangeAlphaWhenPress(true); - } - - @Override - public void obtainCaseDetailData(CaseDetailBean resultBean) { - if (resultBean.isSuccess()) { - this.data = resultBean.getData().get(0); - caseTypeView.setText(data.getEorcName()); - caseLargeTypeView.setText(data.getCasetypeName()); - caseSmallTypeView.setText(data.getCasetypeDetailName()); - caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro()); - caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); - caseStartTimeView.setText(data.getCreateTime()); - caseEndTimeView.setText(data.getNodeLimittime()); - - String verifyImages = data.getFileIdVerify(); - if (!TextUtils.isEmpty(verifyImages)) { - List urls = new ArrayList<>(); - String[] split = verifyImages.split(","); - for (String s : split) { - urls.add(StringHelper.appendCompleteURL(s)); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(urls); - casePicRecyclerView.setVisibility(View.VISIBLE); - casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); - casePicRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(urls.get(position)); - } - }); - imageAdapter.setDeleteView(false); - } - } - } - - private void showBigImage(String path) { - Intent intent = new Intent(this, BigPictureActivity.class); - intent.putExtra("path", path); - startActivity(intent); - } - - @Override - public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { - if (largeClassBean.isSuccess()) { - //设置大类数据 - this.largeClassBeans = largeClassBean.getData(); - if (largeClassBeans.size() == 0) { - caseLargeTypeView.setText("无小类"); - } else { - caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 - } - caseSmallTypeView.setText("请选择"); - } - } - - @Override - public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { - if (smallClassBean.isSuccess()) { - //设置大类数据 - this.smallClassBeans = smallClassBean.getData(); - if (smallClassBeans.size() == 0) { - caseSmallTypeView.setText("无小类"); - } else { - caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 - } - } - } - - @Override - public void obtainNextNodeData(CaseNextNodeBean resultBean) { - if (resultBean.isSuccess()) { - List dataBeans = resultBean.getData(); - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("处理结果"); - for (CaseNextNodeBean.DataBean dataBean : dataBeans) { - 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(); - - CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); - caseHandleResultView.setText(dataBean.getNextOperation()); - changeState = String.valueOf(dataBean.getNextState()); - approvalResult = dataBean.getApprovalResult(); - } - }).build().show(); - } else { - ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); - } - } - - @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) - @Override - public void onClick(View v) { - switch (v.getId()) { - case R.id.caseClassLayout: - 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(); - - caseTypeView.setText(tag); - //获取案卷大类 - caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); - } - }).build().show(); - break; - case R.id.caseLargeClassLayout: - if (largeClassBeans != null) { - if (largeClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷大类"); - for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { - sheetBuilder.addItem(dataBean.getTypeName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseLargeTypeView.setText(tag); - //获取案卷小类 - CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); - String typeId = dataBean.getId(); - caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); - } - }).build().show(); - } - } - break; - case R.id.caseSmallClassLayout: - if (smallClassBeans != null) { - if (smallClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷小类"); - for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { - sheetBuilder.addItem(dataBean.getTypeDetailName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseSmallTypeView.setText(tag); - } - }).build().show(); - } - } - break; - case R.id.caseHandleResultLayout: - caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); - break; - case R.id.addImageView: - new QMUIDialog.MenuDialogBuilder(this) - .addItem("相册中选取", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //选图 - selectPicture(); - } - }) - .addItem("相机拍照", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //拍照 - takePicture(); - } - }) - .create().show(); - break; - case R.id.submitButton: - submitCase();//案卷提交 - break; - default: - break; - } - } - - private void submitCase() { - String handleResult = caseHandleResultView.getText().toString(); - if (handleResult.equals("请选择")) { - ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); - return; - } - if (handleResult.equals("处理完成")) { - //选择处理完成时,处理图片必传。至少一张,最多两张 - if (mediaList.size() < 1 || mediaList.size() > 2) { - ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); - return; - } - } - if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { - caseReason = caseReasonView.getText().toString(); - if (TextUtils.isEmpty(caseReason)) { - ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); - return; - } - } - caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), - changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); - } - - private void selectPicture() { - PictureSelector.create(this) - .openGallery(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(2) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.CHOOSE_REQUEST); - } - - private void takePicture() { - PictureSelector.create(this) - .openCamera(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(1) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.REQUEST_CAMERA); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if (resultCode == RESULT_OK) { - switch (requestCode) { - case PictureConfig.CHOOSE_REQUEST: - List selectList = PictureSelector.obtainMultipleResult(data); - for (LocalMedia media : selectList) { - String mediaCompressPath = media.getCompressPath(); - uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); - } - break; - case PictureConfig.REQUEST_CAMERA: - LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); - uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); - break; - default: - break; - } - } - } - - @Override - public void showProgress() { - submitDialog.show(); - } - - @Override - public void hideProgress() { - submitDialog.hide(); - } - - @Override - public void obtainUploadAudioResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainUploadImageResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - PictureFileUtils.deleteAllCacheDirFile(this); - /** - * 系统路径static拼接图片返回路径 - * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg - */ - //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String url = resultBean.getData(); - mediaList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(realPaths); - caseHandleRecyclerView.setVisibility(View.VISIBLE); - caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); - caseHandleRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(realPaths.get(position)); - } - }); - //删除按钮点击事件 - imageAdapter.setDeleteView(true); - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); - } - } - }); - } - } - - @Override - public void obtainUploadVideoResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainCaseHandleResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); - finish(); - } else { - ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); - } - } - - @Override - protected void onDestroy() { - super.onDestroy(); - if (caseDetailPresenter != null) { - caseDetailPresenter.disposeRetrofitRequest(); - } - if (caseLargeClassPresenter != null) { - caseLargeClassPresenter.disposeRetrofitRequest(); - } - if (caseSmallClassPresenter != null) { - caseSmallClassPresenter.disposeRetrofitRequest(); - } - if (caseNextNodePresenter != null) { - caseNextNodePresenter.disposeRetrofitRequest(); - } - if (uploadImagePresenter != null) { - uploadImagePresenter.disposeRetrofitRequest(); - } - if (caseHandlePresenter != null) { - caseHandlePresenter.disposeRetrofitRequest(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java new file mode 100644 index 0000000..5ea5403 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -0,0 +1,145 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { + + @BindView(R.id.detailTopLayout) + QMUITopBarLayout detailTopLayout; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @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; + + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private CaseDetailPresenterImpl caseDetailPresenter; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handled_detail; + } + + @Override + protected void setupTopBarLayout() { + detailTopLayout.setTitle("已办案卷").setTextColor(ContextCompat.getColor(this, R.color.white)); + detailTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + detailTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + String id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + } + + @Override + public void initEvent() { + + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseHandleStatusView.setText(data.getCaseStateName()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @OnClick(R.id.handleLayout) + @Override + public void onClick(View v) { + if (v.getId() == R.id.handleLayout) { + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java new file mode 100644 index 0000000..3b2d3d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -0,0 +1,228 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.TextView; + +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.presenter.CaseCommonSentencePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseUpdateSupervisePresenterImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseOverTimeView) + TextView caseOverTimeView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @BindView(R.id.casePlaceView) + EditText casePlaceView; + @BindView(R.id.caseDescriptionView) + TextView caseDescriptionView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseHandleResultView) + EditText caseHandleResultView; + @BindView(R.id.caseCommonSentenceView) + TextView caseCommonSentenceView; + + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseCommonSentencePresenterImpl commonSentencePresenter; + private CaseUpdateSupervisePresenterImpl updateSupervisePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_todo_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + commonSentencePresenter = new CaseCommonSentencePresenterImpl(this); + updateSupervisePresenter = new CaseUpdateSupervisePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @Override + public void initEvent() { + + } + + @OnClick({R.id.caseHandleLayout, R.id.caseCommonSentenceLayout, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseHandleLayout: + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + break; + case R.id.caseCommonSentenceLayout: + commonSentencePresenter.onReadyRetrofitRequest(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String remarks = caseHandleResultView.getText().toString(); + if (TextUtils.isEmpty(remarks)) { + ToastHelper.showToast("督办意见不能为空", ToastHelper.WARING); + return; + } + updateSupervisePresenter.onReadyRetrofitRequest(id, remarks); + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseOverTimeView.setText(data.getNodeLimittime()); + caseHandleStatusView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + casePlaceView.setText(data.getFieldintro()); + caseDescriptionView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainCommonSentenceData(CommonSentenceBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("常用语句"); + for (CommonSentenceBean.DataBean dataBean : dataBeans) { + 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(); + + CommonSentenceBean.DataBean dataBean = dataBeans.get(position); + caseCommonSentenceView.setText(dataBean.getName()); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUpdateSuperviseData(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷督办提交成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷督办提交失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (commonSentencePresenter != null) { + commonSentencePresenter.disposeRetrofitRequest(); + } + if (updateSupervisePresenter != null) { + updateSupervisePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 3060e1b..af6a9fe 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -191,7 +191,7 @@ caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); - caseHandleView.setText(data.getUrgeRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); caseSituationView.setText(data.getDescription()); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index 7816221..3989633 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -28,6 +28,7 @@ import com.casic.dcms.ui.OvertimeCaseActivity; import com.casic.dcms.ui.PersonOnlineActivity; import com.casic.dcms.ui.UrgentCaseActivity; +import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.StringHelper; import com.qmuiteam.qmui.widget.QMUIRadiusImageView; @@ -69,62 +70,12 @@ @Override protected void initEvent() { - HomeRecycleAdapter adapter = new HomeRecycleAdapter(context); - homeRecyclerView.setLayoutManager(new GridLayoutManager(context, 3)); - homeRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - Intent intent = new Intent(); - switch (position) { - case 0: - intent.setClass(context, CaseUploadActivity.class); - break; - case 1: - intent.setClass(context, CaseUploadQuicklyActivity.class); - break; - case 2: - intent.setClass(context, FivePackageUploadActivity.class); - break; - case 3: - intent.setClass(context, CaseVerifyActivity.class); - break; - case 4: - intent.setClass(context, CaseCheckActivity.class); - break; - case 5: - intent.setClass(context, CaseHandleActivity.class); - break; - case 6: - intent.setClass(context, UrgentCaseActivity.class); - break; - case 7: - intent.setClass(context, OvertimeCaseActivity.class); - break; - case 8: - intent.setClass(context, DataAnalysisActivity.class); - break; - case 9: - intent.setClass(context, PersonOnlineActivity.class); - break; - case 10: - intent.setClass(context, CaseSearchActivity.class); - break; - case 11: - intent.setClass(context, MapWatchViewActivity.class); - break; - default: - break; - } - startActivity(intent); - } - }); + } @SuppressLint("SetTextI18n") @Override public void obtainUserData(UserBean userBean) { -// Log.d(TAG, "obtainUserData: " + new Gson().toJson(userBean)); if (userBean.isSuccess()) { //QMUIRadiusImageView无法动态设置圆形头像,借助Glide实现圆形头像 Glide.with(this).load(R.mipmap.app_logo).apply(RequestOptions.circleCropTransform()).into(userIconView); @@ -137,6 +88,121 @@ StringHelper.saveUserPhone(data.getPhone()); StringHelper.saveUserDept(data.getDeptName()); StringHelper.saveUserDeptId(data.getDeptId()); + + //权限控制 + String roleTip = data.getRoleTips().get(0); + HomeRecycleAdapter adapter = new HomeRecycleAdapter(context); + homeRecyclerView.setLayoutManager(new GridLayoutManager(context, 3)); + switch (roleTip) { + case "supervisor": + //All + adapter.setItemData(Constant.ALL_ICONS, Constant.ALL_ITEMS); + adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { + @Override + public void onClick(int position) { + Intent intent = new Intent(); + switch (position) { + case 0: + intent.setClass(context, CaseUploadActivity.class); + break; + case 1: + intent.setClass(context, CaseUploadQuicklyActivity.class); + break; + case 2: + intent.setClass(context, FivePackageUploadActivity.class); + break; + case 3: + intent.setClass(context, CaseVerifyActivity.class); + break; + case 4: + intent.setClass(context, CaseCheckActivity.class); + break; + case 5: + intent.setClass(context, CaseHandleActivity.class); + break; + case 6: + intent.setClass(context, UrgentCaseActivity.class); + break; + case 7: + intent.setClass(context, OvertimeCaseActivity.class); + break; + case 8: + intent.setClass(context, DataAnalysisActivity.class); + break; + case 9: + intent.setClass(context, PersonOnlineActivity.class); + break; + case 10: + intent.setClass(context, CaseSearchActivity.class); + break; + case 11: + intent.setClass(context, MapWatchViewActivity.class); + break; + default: + break; + } + startActivity(intent); + } + }); + break; +// case "process": +// //案卷处理、案卷查询 +// adapter.setItemData(Constant.PROCESS_ICONS, Constant.PROCESS_ITEMS); +// adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { +// @Override +// public void onClick(int position) { +// Intent intent = new Intent(); +// switch (position) { +// case 0: +// intent.setClass(context, CaseHandleActivity.class); +// break; +// case 1: +// intent.setClass(context, CaseSearchActivity.class); +// break; +// default: +// break; +// } +// startActivity(intent); +// } +// }); +// break; +// case "leader": +// //案卷上报、紧急要件、超时督办、统计分析、在岗人员、案卷查询 +// adapter.setItemData(Constant.LEADER_ICONS, Constant.LEADER_ITEMS); +// adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { +// @Override +// public void onClick(int position) { +// Intent intent = new Intent(); +// switch (position) { +// case 0: +// intent.setClass(context, CaseUploadActivity.class); +// break; +// case 1: +// intent.setClass(context, UrgentCaseActivity.class); +// break; +// case 2: +// intent.setClass(context, OvertimeCaseActivity.class); +// break; +// case 3: +// intent.setClass(context, DataAnalysisActivity.class); +// break; +// case 4: +// intent.setClass(context, PersonOnlineActivity.class); +// break; +// case 5: +// intent.setClass(context, CaseSearchActivity.class); +// break; +// default: +// break; +// } +// startActivity(intent); +// } +// }); +// break; + default: + break; + } + homeRecyclerView.setAdapter(adapter); } } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java index 430f8be..fa2df7a 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandledBean; import com.casic.dcms.mvp.presenter.CaseHandledListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandledListView; +import com.casic.dcms.ui.CaseHandledDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -128,10 +130,9 @@ adapter.setOnItemClickListener(new CaseHandledAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandledDetailActivity.class); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java index 502c288..05306fe 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -130,10 +132,10 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "待办案卷"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java index 25877de..743a092 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java @@ -17,7 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; -import com.casic.dcms.ui.CaseHandleOvertimeDetailActivity; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -133,7 +133,8 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { - Intent intent = new Intent(context, CaseHandleOvertimeDetailActivity.class); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "超时案卷"); intent.putExtra("id", dataBeans.get(position).getId()); startActivity(intent); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java index f957e26..ae0b3e5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -131,10 +133,10 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "紧急案卷"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java index 18178eb..5d51969 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.OvertimeCaseBean; import com.casic.dcms.mvp.presenter.OvertimeCaseListPresenterImpl; import com.casic.dcms.mvp.view.IOvertimeCaseListView; +import com.casic.dcms.ui.CaseTodoDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -128,10 +130,10 @@ adapter.setOnItemClickListener(new OvertimeCaseAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseTodoDetailActivity.class); + intent.putExtra("title", "超时督办"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java index 19c6766..51bdbd0 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.mvp.presenter.UrgentCaseListPresenterImpl; import com.casic.dcms.mvp.view.IUrgentCaseListView; +import com.casic.dcms.ui.CaseTodoDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -129,10 +131,10 @@ adapter.setOnItemClickListener(new UrgentCaseAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseTodoDetailActivity.class); + intent.putExtra("title", "紧急要件"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } 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 233b5d1..2e68d04 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -9,18 +9,38 @@ import java.util.List; public class Constant { - public static final List ICONS = Arrays.asList( + public static final String[] USER_PERMISSIONS = { + Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION, + Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO, + Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE, + Manifest.permission.CALL_PHONE}; + + public static final List ALL_ICONS = Arrays.asList( R.mipmap.ajsb, R.mipmap.kssb, R.mipmap.sbsb, R.mipmap.ajhs, R.mipmap.ajhc, R.mipmap.ajcl, R.mipmap.jjyj, R.mipmap.csdb, R.mipmap.tjfx, R.mipmap.zgry, R.mipmap.ajcx, R.mipmap.dtck); - public static final List ITEMS = Arrays.asList( + public static final List ALL_ITEMS = Arrays.asList( "案卷上报", "快速上报", "五包上报", "案卷核实", "案卷核查", "案卷处理", "紧急要件", "超时督办", "统计分析", "在岗人员", "案卷查询", "地图查看"); + public static final List PROCESS_ICONS = Arrays.asList( + R.mipmap.ajcl, R.mipmap.ajcx); + + public static final List PROCESS_ITEMS = Arrays.asList( + "案卷处理", "案卷查询"); + + public static final List LEADER_ICONS = Arrays.asList( + R.mipmap.ajsb, R.mipmap.jjyj, R.mipmap.csdb, + R.mipmap.tjfx, R.mipmap.zgry, R.mipmap.ajcx); + + public static final List LEADER_ITEMS = Arrays.asList( + "案卷上报", "紧急要件", "超时督办", + "统计分析", "在岗人员", "案卷查询"); + public static final List ANALYSIS_ICONS = Arrays.asList( R.mipmap.sbsb, R.mipmap.jjyj, R.mipmap.csdb, R.mipmap.ajcl, R.mipmap.tjfx, R.mipmap.ajhc); @@ -29,17 +49,6 @@ "问题来源", "案卷状态", "高发问题", "街道统计", "处理统计", "趋势分析"); - public static final List CATEGORY = Arrays.asList("请选择", "情况属实", "情况不属实"); - - public static final String[] USER_PERMISSIONS = { - Manifest.permission.ACCESS_COARSE_LOCATION, - Manifest.permission.ACCESS_FINE_LOCATION, - Manifest.permission.CAMERA, - Manifest.permission.READ_EXTERNAL_STORAGE, - Manifest.permission.WRITE_EXTERNAL_STORAGE, - Manifest.permission.RECORD_AUDIO, - Manifest.permission.CALL_PHONE}; - //先预置8种颜色 public static final int[] PIE_COLORS = {Color.rgb(28, 197, 220), Color.rgb(255, 223, 107), Color.rgb(242, 17, 112), diff --git a/app/src/main/java/com/casic/dcms/utils/StringHelper.java b/app/src/main/java/com/casic/dcms/utils/StringHelper.java index 1201063..5aeb8f6 100644 --- a/app/src/main/java/com/casic/dcms/utils/StringHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/StringHelper.java @@ -60,7 +60,9 @@ return ""; } String data = url.replace("\\", "/"); - return SaveKeyValues.getValue(Constant.IP_KEY, "http://111.198.10.15:11409") + "/static/" + data; + String imagePath = SaveKeyValues.getValue(Constant.IP_KEY, "http://111.198.10.15:11409") + "/static/" + data; + Log.d(TAG, "appendCompleteURL: "+imagePath); + return imagePath; } public static String reformatURL(List urls) { 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 ec230dd..16bafa1 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 @@ -14,6 +14,7 @@ import com.casic.dcms.bean.CaseStatusBean; import com.casic.dcms.bean.CaseVerifiedBean; import com.casic.dcms.bean.CaseVerifyBean; +import com.casic.dcms.bean.CommonSentenceBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; import com.casic.dcms.bean.LoginResultBean; @@ -345,6 +346,12 @@ @Query("caseState") String caseState); /** + * 获取常见语句 + */ + @GET("/dict/code/commonApproval") + Observable obtainCommonSentence(@Header("token") String token); + + /** * 案卷处理 *

* 案卷核实-仅添加核实意见/核实情况/核实图片 @@ -401,4 +408,12 @@ @Field("communityCode") String communityCode, @Field("gridId") String gridId, @Field("fieldintro") String fieldintro); + + /** + * 紧急要件-超时督办 + */ + @GET("/casedetail/updateSuperviseRemarks") + Observable updateSuperviseRemarks(@Header("token") String token, + @Query("id") String id, + @Query("superviseRemarks") String superviseRemarks); } 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 0c77b61..226b287 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 @@ -16,6 +16,7 @@ import com.casic.dcms.bean.CaseStatusBean; import com.casic.dcms.bean.CaseVerifiedBean; import com.casic.dcms.bean.CaseVerifyBean; +import com.casic.dcms.bean.CommonSentenceBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; import com.casic.dcms.bean.LoginResultBean; @@ -397,6 +398,15 @@ } /** + * 获取常见语句 + */ + public static Observable getCommonSentenceResult() { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainCommonSentence(TokenHelper.getToken()); + } + + /** * 案卷处理 *

* 案卷核实-仅添加核实意见/核实情况/核实图片 @@ -445,4 +455,13 @@ remarks, fileId, eorc, casetypeCode, casetypeDetailCode, lng, lat, caseLevel, areaCode, streetCode, communityCode, gridId, fieldintro); } + + /** + * 紧急要件-超时督办 + */ + public static Observable getUpdateSuperviseResult(String id, String superviseRemarks) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.updateSuperviseRemarks(TokenHelper.getToken(), id, superviseRemarks); + } } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f6ac20a..2070c95 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -67,12 +67,14 @@ - + - + + + { private Context context; + private List iconData = new ArrayList<>(); + private List itemData = new ArrayList<>(); public HomeRecycleAdapter(Context context) { this.context = context; } + public void setItemData(@Nullable List icons, @Nullable List items) { + this.iconData = icons; + this.itemData = items; + } + @NonNull @Override public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -30,7 +40,7 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - holder.bindView(context, position); + holder.bindView(position); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override @@ -43,7 +53,7 @@ @Override public int getItemCount() { - return Constant.ITEMS.size(); + return itemData.size(); } private OnGridItemClickListener clickListener; @@ -56,7 +66,7 @@ this.clickListener = onGridItemClickListener; } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { private ImageView imageView; private TextView textView; @@ -67,9 +77,9 @@ textView = itemView.findViewById(R.id.textView); } - void bindView(Context context, int position) { - imageView.setBackgroundResource(Constant.ICONS.get(position)); - textView.setText(Constant.ITEMS.get(position)); + void bindView(int position) { + imageView.setBackgroundResource(iconData.get(position)); + textView.setText(itemData.get(position)); } } } diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index b9c4615..d9b10e0 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; import java.util.ArrayList; @@ -62,7 +63,10 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - Glide.with(context).load(mediaList.get(position)).into(holder.imageView); + Glide.with(context) + .load(mediaList.get(position)) + .apply(new RequestOptions().error(R.drawable.ic_load_error)) + .into(holder.imageView); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/casic/dcms/base/BaseActivity.java b/app/src/main/java/com/casic/dcms/base/BaseActivity.java index caf0356..2ca87fe 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseActivity.java +++ b/app/src/main/java/com/casic/dcms/base/BaseActivity.java @@ -17,8 +17,8 @@ setContentView(initLayoutView()); ButterKnife.bind(this); QMUIStatusBarHelper.translucent(this);//沉浸式状态栏 - setupTopBarLayout(); initData(); + setupTopBarLayout(); initEvent(); } diff --git a/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java new file mode 100644 index 0000000..8de58a4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java @@ -0,0 +1,78 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CommonSentenceBean { + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 请及时处理 + * id : 156 + * value : 请及时处理 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java new file mode 100644 index 0000000..5258d89 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CommonSentenceBean; +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 CaseCommonSentenceModelImpl implements ICaseCommonSentenceModel { + + private OnGetCommonSentenceListener sentenceListener; + + public CaseCommonSentenceModelImpl(OnGetCommonSentenceListener commonSentenceListener) { + this.sentenceListener = commonSentenceListener; + } + + public interface OnGetCommonSentenceListener { + void onSuccess(CommonSentenceBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCommonSentenceResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (sentenceListener != null) { + sentenceListener.onFailure(e); + } + } + + @Override + public void onNext(CommonSentenceBean resultBean) { + if (resultBean != null) { + sentenceListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java new file mode 100644 index 0000000..a8cb3fc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java @@ -0,0 +1,53 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseUpdateSuperviseModelImpl implements ICaseUpdateSuperviseModel { + + private OnUpdateSuperviseListener listener; + + public CaseUpdateSuperviseModelImpl(OnUpdateSuperviseListener updateSuperviseListener) { + this.listener = updateSuperviseListener; + } + + /** + * 数据回调接口 + */ + public interface OnUpdateSuperviseListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String superviseRemarks) { + Observable observable = RetrofitServiceManager.getUpdateSuperviseResult(id, superviseRemarks); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java new file mode 100644 index 0000000..263ef6c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseCommonSentenceModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java new file mode 100644 index 0000000..518d602 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseUpdateSuperviseModel { + Subscription sendRetrofitRequest(String id, String superviseRemarks); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java new file mode 100644 index 0000000..6b65f13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseCommonSentenceModelImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; + +public class CaseCommonSentencePresenterImpl extends BasePresenter implements ICaseCommonSentencePresenter, + CaseCommonSentenceModelImpl.OnGetCommonSentenceListener { + + private ICaseCommonSentenceView view; + private CaseCommonSentenceModelImpl actionModel; + + public CaseCommonSentencePresenterImpl(ICaseCommonSentenceView commonSentenceView) { + this.view = commonSentenceView; + actionModel = new CaseCommonSentenceModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CommonSentenceBean resultBean) { + view.obtainCommonSentenceData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java new file mode 100644 index 0000000..66e1f44 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseUpdateSuperviseModelImpl; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; + +public class CaseUpdateSupervisePresenterImpl extends BasePresenter implements ICaseUpdateSupervisePresenter, + CaseUpdateSuperviseModelImpl.OnUpdateSuperviseListener { + + private ICaseUpdateSuperviseView view; + private CaseUpdateSuperviseModelImpl actionModel; + + public CaseUpdateSupervisePresenterImpl(ICaseUpdateSuperviseView updateSuperviseView) { + this.view = updateSuperviseView; + actionModel = new CaseUpdateSuperviseModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String superviseRemarks) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, superviseRemarks)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainUpdateSuperviseData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java new file mode 100644 index 0000000..1f8bd09 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseCommonSentencePresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java new file mode 100644 index 0000000..f61f9b2 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseUpdateSupervisePresenter { + void onReadyRetrofitRequest(String id, String superviseRemarks); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java new file mode 100644 index 0000000..9c7b08b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CommonSentenceBean; + +public interface ICaseCommonSentenceView { + void obtainCommonSentenceData(CommonSentenceBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java new file mode 100644 index 0000000..10bcf5a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICaseUpdateSuperviseView { + void showProgress(); + + void hideProgress(); + + void obtainUpdateSuperviseData(ActionResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java index ad70b7a..9143db8 100644 --- a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.ui; +import android.view.View; + +import androidx.core.content.ContextCompat; + import com.bumptech.glide.Glide; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.luck.picture.lib.photoview.PhotoView; -import com.qmuiteam.qmui.util.QMUIStatusBarHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; import butterknife.BindView; @@ -15,6 +19,8 @@ **/ public class BigPictureActivity extends BaseActivity { + @BindView(R.id.imageTopLayout) + QMUITopBarLayout imageTopLayout; @BindView(R.id.photoView) PhotoView photoView; @@ -25,37 +31,24 @@ @Override protected void setupTopBarLayout() { - QMUIStatusBarHelper.setStatusBarLightMode(this); + imageTopLayout.setTitle("查看大图").setTextColor(ContextCompat.getColor(this, R.color.white)); + imageTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + imageTopLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); } @Override public void initData() { -// String mediaJson = getIntent().getStringExtra("mediaJson"); -// -// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() { -// }.getType()); -// -// list = new ArrayList<>(); -// assert mediaList != null; -// for (LocalMedia media : mediaList) { -// list.add(media.getRealPath()); -// } String path = getIntent().getStringExtra("path"); Glide.with(this).load(path).into(photoView); } @Override public void initEvent() { -// //轮播图 -// bigImageBanner.setImageLoader(new ImageLoader() { -// -// @Override -// public void displayImage(Context context, Object path, ImageView imageView) { -// Glide.with(context).load(path).into(imageView); -// } -// }); -// bigImageBanner.isAutoPlay(false); -// bigImageBanner.setImages(list); -// bigImageBanner.start(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index 01a3807..7548cfc 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -329,7 +329,7 @@ caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java new file mode 100644 index 0000000..d4dba38 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -0,0 +1,505 @@ +package com.casic.dcms.ui; + +import android.content.DialogInterface; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseNextNodeBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseHandleView; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseNextNodeView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.IUploadFileView; +import com.casic.dcms.utils.FileUtils; +import com.casic.dcms.utils.GlideLoadEngine; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.luck.picture.lib.PictureSelector; +import com.luck.picture.lib.config.PictureConfig; +import com.luck.picture.lib.config.PictureMimeType; +import com.luck.picture.lib.entity.LocalMedia; +import com.luck.picture.lib.tools.PictureFileUtils; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, + ICaseHandleView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @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) + EditText casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.caseHandleView) + TextView caseHandleView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseStartTimeView) + TextView caseStartTimeView; + @BindView(R.id.caseEndTimeView) + TextView caseEndTimeView; + @BindView(R.id.caseHandleResultView) + TextView caseHandleResultView; + @BindView(R.id.caseHandleRecyclerView) + RecyclerView caseHandleRecyclerView; + @BindView(R.id.addImageView) + ImageView addImageView; + @BindView(R.id.caseReasonView) + EditText caseReasonView; + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private String changeState; + private String caseReason; + private String approvalResult; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private List largeClassBeans = new ArrayList<>(); + private List smallClassBeans = new ArrayList<>(); + private List realPaths = new ArrayList<>();//真实图片路径 + private List mediaList = new ArrayList<>();//上传到服务器的数据集 + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private CaseNextNodePresenterImpl caseNextNodePresenter; + private UploadImagePresenterImpl uploadImagePresenter; + private CaseHandlePresenterImpl caseHandlePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handle_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseNextNodePresenter = new CaseNextNodePresenterImpl(this); + uploadImagePresenter = new UploadImagePresenterImpl(this); + caseHandlePresenter = new CaseHandlePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @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()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + caseStartTimeView.setText(data.getCreateTime()); + caseEndTimeView.setText(data.getNodeLimittime()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeTypeView.setText("无小类"); + } else { + caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 + } + caseSmallTypeView.setText("请选择"); + } + } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallTypeView.setText("无小类"); + } else { + caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 + } + } + } + + @Override + public void obtainNextNodeData(CaseNextNodeBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处理结果"); + for (CaseNextNodeBean.DataBean dataBean : dataBeans) { + 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(); + + CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); + caseHandleResultView.setText(dataBean.getNextOperation()); + changeState = String.valueOf(dataBean.getNextState()); + approvalResult = dataBean.getApprovalResult(); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseClassLayout: + 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(); + + caseTypeView.setText(tag); + //获取案卷大类 + caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseLargeTypeView.setText(tag); + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseSmallTypeView.setText(tag); + } + }).build().show(); + } + } + break; + case R.id.caseHandleResultLayout: + caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); + break; + case R.id.addImageView: + new QMUIDialog.MenuDialogBuilder(this) + .addItem("相册中选取", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //选图 + selectPicture(); + } + }) + .addItem("相机拍照", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //拍照 + takePicture(); + } + }) + .create().show(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String handleResult = caseHandleResultView.getText().toString(); + if (handleResult.equals("请选择")) { + ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); + return; + } + if (handleResult.equals("处理完成")) { + //选择处理完成时,处理图片必传。至少一张,最多两张 + if (mediaList.size() < 1 || mediaList.size() > 2) { + ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); + return; + } + } + if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { + caseReason = caseReasonView.getText().toString(); + if (TextUtils.isEmpty(caseReason)) { + ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); + return; + } + } + caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), + changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); + } + + private void selectPicture() { + PictureSelector.create(this) + .openGallery(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(2) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.CHOOSE_REQUEST); + } + + private void takePicture() { + PictureSelector.create(this) + .openCamera(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(1) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.REQUEST_CAMERA); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == RESULT_OK) { + switch (requestCode) { + case PictureConfig.CHOOSE_REQUEST: + List selectList = PictureSelector.obtainMultipleResult(data); + for (LocalMedia media : selectList) { + String mediaCompressPath = media.getCompressPath(); + uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); + } + break; + case PictureConfig.REQUEST_CAMERA: + LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); + uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); + break; + default: + break; + } + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUploadAudioResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainUploadImageResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + PictureFileUtils.deleteAllCacheDirFile(this); + /** + * 系统路径static拼接图片返回路径 + * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg + */ + //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg + String url = resultBean.getData(); + mediaList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(realPaths); + caseHandleRecyclerView.setVisibility(View.VISIBLE); + caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); + caseHandleRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(realPaths.get(position)); + } + }); + //删除按钮点击事件 + imageAdapter.setDeleteView(true); + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } + } + + @Override + public void obtainUploadVideoResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainCaseHandleResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseNextNodePresenter != null) { + caseNextNodePresenter.disposeRetrofitRequest(); + } + if (uploadImagePresenter != null) { + uploadImagePresenter.disposeRetrofitRequest(); + } + if (caseHandlePresenter != null) { + caseHandlePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java deleted file mode 100644 index bd187c5..0000000 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java +++ /dev/null @@ -1,500 +0,0 @@ -package com.casic.dcms.ui; - -import android.content.DialogInterface; -import android.content.Intent; -import android.text.TextUtils; -import android.view.View; -import android.widget.EditText; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.Nullable; -import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.adapter.ImageRecycleViewAdapter; -import com.casic.dcms.base.BaseCaseActivity; -import com.casic.dcms.bean.ActionResultBean; -import com.casic.dcms.bean.CaseDetailBean; -import com.casic.dcms.bean.CaseLargeClassBean; -import com.casic.dcms.bean.CaseNextNodeBean; -import com.casic.dcms.bean.CaseSmallClassBean; -import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; -import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; -import com.casic.dcms.mvp.view.ICaseDetailView; -import com.casic.dcms.mvp.view.ICaseHandleView; -import com.casic.dcms.mvp.view.ICaseLargeClassView; -import com.casic.dcms.mvp.view.ICaseNextNodeView; -import com.casic.dcms.mvp.view.ICaseSmallClassView; -import com.casic.dcms.mvp.view.IUploadFileView; -import com.casic.dcms.utils.FileUtils; -import com.casic.dcms.utils.GlideLoadEngine; -import com.casic.dcms.utils.ItemDecorationSpace; -import com.casic.dcms.utils.StringHelper; -import com.casic.dcms.utils.ToastHelper; -import com.luck.picture.lib.PictureSelector; -import com.luck.picture.lib.config.PictureConfig; -import com.luck.picture.lib.config.PictureMimeType; -import com.luck.picture.lib.entity.LocalMedia; -import com.luck.picture.lib.tools.PictureFileUtils; -import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; -import com.qmuiteam.qmui.widget.dialog.QMUIDialog; -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; - -import butterknife.BindView; -import butterknife.OnClick; - -public class CaseHandleOvertimeDetailActivity extends BaseCaseActivity implements View.OnClickListener, - ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, - ICaseHandleView { - - @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) - EditText casePlaceView; - @BindView(R.id.caseSituationView) - TextView caseSituationView; - @BindView(R.id.caseHandleView) - TextView caseHandleView; - @BindView(R.id.casePicRecyclerView) - RecyclerView casePicRecyclerView; - @BindView(R.id.caseStartTimeView) - TextView caseStartTimeView; - @BindView(R.id.caseEndTimeView) - TextView caseEndTimeView; - @BindView(R.id.caseHandleResultView) - TextView caseHandleResultView; - @BindView(R.id.caseHandleRecyclerView) - RecyclerView caseHandleRecyclerView; - @BindView(R.id.addImageView) - ImageView addImageView; - @BindView(R.id.caseReasonView) - EditText caseReasonView; - @BindView(R.id.submitButton) - QMUIRoundButton submitButton; - - private String id; - private String changeState; - private String caseReason; - private String approvalResult; - private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); - private List largeClassBeans = new ArrayList<>(); - private List smallClassBeans = new ArrayList<>(); - private List realPaths = new ArrayList<>();//真实图片路径 - private List mediaList = new ArrayList<>();//上传到服务器的数据集 - - private CaseDetailPresenterImpl caseDetailPresenter; - private CaseLargeClassPresenterImpl caseLargeClassPresenter; - private CaseSmallClassPresenterImpl caseSmallClassPresenter; - private CaseNextNodePresenterImpl caseNextNodePresenter; - private UploadImagePresenterImpl uploadImagePresenter; - private CaseHandlePresenterImpl caseHandlePresenter; - - private QMUITipDialog submitDialog; - - @Override - public int initLayoutView() { - return R.layout.activity_case_handle_overtime; - } - - @Override - protected String setTitleName() { - return "超时案卷"; - } - - @Override - public void initData() { - id = getIntent().getStringExtra("id"); - caseDetailPresenter = new CaseDetailPresenterImpl(this); - caseDetailPresenter.onReadyRetrofitRequest(id); - - caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); - caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); - caseNextNodePresenter = new CaseNextNodePresenterImpl(this); - uploadImagePresenter = new UploadImagePresenterImpl(this); - caseHandlePresenter = new CaseHandlePresenterImpl(this); - - submitDialog = new QMUITipDialog.Builder(this) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord("提交中,请稍后") - .create(); - } - - @Override - public void initEvent() { - submitButton.setChangeAlphaWhenPress(true); - } - - @Override - public void obtainCaseDetailData(CaseDetailBean resultBean) { - if (resultBean.isSuccess()) { - this.data = resultBean.getData().get(0); - caseTypeView.setText(data.getEorcName()); - caseLargeTypeView.setText(data.getCasetypeName()); - caseSmallTypeView.setText(data.getCasetypeDetailName()); - caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro()); - caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); - caseStartTimeView.setText(data.getCreateTime()); - caseEndTimeView.setText(data.getNodeLimittime()); - - String verifyImages = data.getFileIdVerify(); - if (!TextUtils.isEmpty(verifyImages)) { - List urls = new ArrayList<>(); - String[] split = verifyImages.split(","); - for (String s : split) { - urls.add(StringHelper.appendCompleteURL(s)); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(urls); - casePicRecyclerView.setVisibility(View.VISIBLE); - casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); - casePicRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(urls.get(position)); - } - }); - imageAdapter.setDeleteView(false); - } - } - } - - private void showBigImage(String path) { - Intent intent = new Intent(this, BigPictureActivity.class); - intent.putExtra("path", path); - startActivity(intent); - } - - @Override - public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { - if (largeClassBean.isSuccess()) { - //设置大类数据 - this.largeClassBeans = largeClassBean.getData(); - if (largeClassBeans.size() == 0) { - caseLargeTypeView.setText("无小类"); - } else { - caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 - } - caseSmallTypeView.setText("请选择"); - } - } - - @Override - public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { - if (smallClassBean.isSuccess()) { - //设置大类数据 - this.smallClassBeans = smallClassBean.getData(); - if (smallClassBeans.size() == 0) { - caseSmallTypeView.setText("无小类"); - } else { - caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 - } - } - } - - @Override - public void obtainNextNodeData(CaseNextNodeBean resultBean) { - if (resultBean.isSuccess()) { - List dataBeans = resultBean.getData(); - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("处理结果"); - for (CaseNextNodeBean.DataBean dataBean : dataBeans) { - 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(); - - CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); - caseHandleResultView.setText(dataBean.getNextOperation()); - changeState = String.valueOf(dataBean.getNextState()); - approvalResult = dataBean.getApprovalResult(); - } - }).build().show(); - } else { - ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); - } - } - - @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) - @Override - public void onClick(View v) { - switch (v.getId()) { - case R.id.caseClassLayout: - 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(); - - caseTypeView.setText(tag); - //获取案卷大类 - caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); - } - }).build().show(); - break; - case R.id.caseLargeClassLayout: - if (largeClassBeans != null) { - if (largeClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷大类"); - for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { - sheetBuilder.addItem(dataBean.getTypeName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseLargeTypeView.setText(tag); - //获取案卷小类 - CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); - String typeId = dataBean.getId(); - caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); - } - }).build().show(); - } - } - break; - case R.id.caseSmallClassLayout: - if (smallClassBeans != null) { - if (smallClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷小类"); - for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { - sheetBuilder.addItem(dataBean.getTypeDetailName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseSmallTypeView.setText(tag); - } - }).build().show(); - } - } - break; - case R.id.caseHandleResultLayout: - caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); - break; - case R.id.addImageView: - new QMUIDialog.MenuDialogBuilder(this) - .addItem("相册中选取", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //选图 - selectPicture(); - } - }) - .addItem("相机拍照", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //拍照 - takePicture(); - } - }) - .create().show(); - break; - case R.id.submitButton: - submitCase();//案卷提交 - break; - default: - break; - } - } - - private void submitCase() { - String handleResult = caseHandleResultView.getText().toString(); - if (handleResult.equals("请选择")) { - ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); - return; - } - if (handleResult.equals("处理完成")) { - //选择处理完成时,处理图片必传。至少一张,最多两张 - if (mediaList.size() < 1 || mediaList.size() > 2) { - ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); - return; - } - } - if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { - caseReason = caseReasonView.getText().toString(); - if (TextUtils.isEmpty(caseReason)) { - ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); - return; - } - } - caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), - changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); - } - - private void selectPicture() { - PictureSelector.create(this) - .openGallery(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(2) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.CHOOSE_REQUEST); - } - - private void takePicture() { - PictureSelector.create(this) - .openCamera(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(1) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.REQUEST_CAMERA); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if (resultCode == RESULT_OK) { - switch (requestCode) { - case PictureConfig.CHOOSE_REQUEST: - List selectList = PictureSelector.obtainMultipleResult(data); - for (LocalMedia media : selectList) { - String mediaCompressPath = media.getCompressPath(); - uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); - } - break; - case PictureConfig.REQUEST_CAMERA: - LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); - uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); - break; - default: - break; - } - } - } - - @Override - public void showProgress() { - submitDialog.show(); - } - - @Override - public void hideProgress() { - submitDialog.hide(); - } - - @Override - public void obtainUploadAudioResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainUploadImageResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - PictureFileUtils.deleteAllCacheDirFile(this); - /** - * 系统路径static拼接图片返回路径 - * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg - */ - //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String url = resultBean.getData(); - mediaList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(realPaths); - caseHandleRecyclerView.setVisibility(View.VISIBLE); - caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); - caseHandleRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(realPaths.get(position)); - } - }); - //删除按钮点击事件 - imageAdapter.setDeleteView(true); - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); - } - } - }); - } - } - - @Override - public void obtainUploadVideoResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainCaseHandleResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); - finish(); - } else { - ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); - } - } - - @Override - protected void onDestroy() { - super.onDestroy(); - if (caseDetailPresenter != null) { - caseDetailPresenter.disposeRetrofitRequest(); - } - if (caseLargeClassPresenter != null) { - caseLargeClassPresenter.disposeRetrofitRequest(); - } - if (caseSmallClassPresenter != null) { - caseSmallClassPresenter.disposeRetrofitRequest(); - } - if (caseNextNodePresenter != null) { - caseNextNodePresenter.disposeRetrofitRequest(); - } - if (uploadImagePresenter != null) { - uploadImagePresenter.disposeRetrofitRequest(); - } - if (caseHandlePresenter != null) { - caseHandlePresenter.disposeRetrofitRequest(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java new file mode 100644 index 0000000..5ea5403 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -0,0 +1,145 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { + + @BindView(R.id.detailTopLayout) + QMUITopBarLayout detailTopLayout; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @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; + + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private CaseDetailPresenterImpl caseDetailPresenter; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handled_detail; + } + + @Override + protected void setupTopBarLayout() { + detailTopLayout.setTitle("已办案卷").setTextColor(ContextCompat.getColor(this, R.color.white)); + detailTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + detailTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + String id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + } + + @Override + public void initEvent() { + + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseHandleStatusView.setText(data.getCaseStateName()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @OnClick(R.id.handleLayout) + @Override + public void onClick(View v) { + if (v.getId() == R.id.handleLayout) { + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java new file mode 100644 index 0000000..3b2d3d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -0,0 +1,228 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.TextView; + +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.presenter.CaseCommonSentencePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseUpdateSupervisePresenterImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseOverTimeView) + TextView caseOverTimeView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @BindView(R.id.casePlaceView) + EditText casePlaceView; + @BindView(R.id.caseDescriptionView) + TextView caseDescriptionView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseHandleResultView) + EditText caseHandleResultView; + @BindView(R.id.caseCommonSentenceView) + TextView caseCommonSentenceView; + + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseCommonSentencePresenterImpl commonSentencePresenter; + private CaseUpdateSupervisePresenterImpl updateSupervisePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_todo_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + commonSentencePresenter = new CaseCommonSentencePresenterImpl(this); + updateSupervisePresenter = new CaseUpdateSupervisePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @Override + public void initEvent() { + + } + + @OnClick({R.id.caseHandleLayout, R.id.caseCommonSentenceLayout, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseHandleLayout: + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + break; + case R.id.caseCommonSentenceLayout: + commonSentencePresenter.onReadyRetrofitRequest(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String remarks = caseHandleResultView.getText().toString(); + if (TextUtils.isEmpty(remarks)) { + ToastHelper.showToast("督办意见不能为空", ToastHelper.WARING); + return; + } + updateSupervisePresenter.onReadyRetrofitRequest(id, remarks); + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseOverTimeView.setText(data.getNodeLimittime()); + caseHandleStatusView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + casePlaceView.setText(data.getFieldintro()); + caseDescriptionView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainCommonSentenceData(CommonSentenceBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("常用语句"); + for (CommonSentenceBean.DataBean dataBean : dataBeans) { + 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(); + + CommonSentenceBean.DataBean dataBean = dataBeans.get(position); + caseCommonSentenceView.setText(dataBean.getName()); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUpdateSuperviseData(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷督办提交成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷督办提交失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (commonSentencePresenter != null) { + commonSentencePresenter.disposeRetrofitRequest(); + } + if (updateSupervisePresenter != null) { + updateSupervisePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 3060e1b..af6a9fe 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -191,7 +191,7 @@ caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); - caseHandleView.setText(data.getUrgeRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); caseSituationView.setText(data.getDescription()); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index 7816221..3989633 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -28,6 +28,7 @@ import com.casic.dcms.ui.OvertimeCaseActivity; import com.casic.dcms.ui.PersonOnlineActivity; import com.casic.dcms.ui.UrgentCaseActivity; +import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.StringHelper; import com.qmuiteam.qmui.widget.QMUIRadiusImageView; @@ -69,62 +70,12 @@ @Override protected void initEvent() { - HomeRecycleAdapter adapter = new HomeRecycleAdapter(context); - homeRecyclerView.setLayoutManager(new GridLayoutManager(context, 3)); - homeRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - Intent intent = new Intent(); - switch (position) { - case 0: - intent.setClass(context, CaseUploadActivity.class); - break; - case 1: - intent.setClass(context, CaseUploadQuicklyActivity.class); - break; - case 2: - intent.setClass(context, FivePackageUploadActivity.class); - break; - case 3: - intent.setClass(context, CaseVerifyActivity.class); - break; - case 4: - intent.setClass(context, CaseCheckActivity.class); - break; - case 5: - intent.setClass(context, CaseHandleActivity.class); - break; - case 6: - intent.setClass(context, UrgentCaseActivity.class); - break; - case 7: - intent.setClass(context, OvertimeCaseActivity.class); - break; - case 8: - intent.setClass(context, DataAnalysisActivity.class); - break; - case 9: - intent.setClass(context, PersonOnlineActivity.class); - break; - case 10: - intent.setClass(context, CaseSearchActivity.class); - break; - case 11: - intent.setClass(context, MapWatchViewActivity.class); - break; - default: - break; - } - startActivity(intent); - } - }); + } @SuppressLint("SetTextI18n") @Override public void obtainUserData(UserBean userBean) { -// Log.d(TAG, "obtainUserData: " + new Gson().toJson(userBean)); if (userBean.isSuccess()) { //QMUIRadiusImageView无法动态设置圆形头像,借助Glide实现圆形头像 Glide.with(this).load(R.mipmap.app_logo).apply(RequestOptions.circleCropTransform()).into(userIconView); @@ -137,6 +88,121 @@ StringHelper.saveUserPhone(data.getPhone()); StringHelper.saveUserDept(data.getDeptName()); StringHelper.saveUserDeptId(data.getDeptId()); + + //权限控制 + String roleTip = data.getRoleTips().get(0); + HomeRecycleAdapter adapter = new HomeRecycleAdapter(context); + homeRecyclerView.setLayoutManager(new GridLayoutManager(context, 3)); + switch (roleTip) { + case "supervisor": + //All + adapter.setItemData(Constant.ALL_ICONS, Constant.ALL_ITEMS); + adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { + @Override + public void onClick(int position) { + Intent intent = new Intent(); + switch (position) { + case 0: + intent.setClass(context, CaseUploadActivity.class); + break; + case 1: + intent.setClass(context, CaseUploadQuicklyActivity.class); + break; + case 2: + intent.setClass(context, FivePackageUploadActivity.class); + break; + case 3: + intent.setClass(context, CaseVerifyActivity.class); + break; + case 4: + intent.setClass(context, CaseCheckActivity.class); + break; + case 5: + intent.setClass(context, CaseHandleActivity.class); + break; + case 6: + intent.setClass(context, UrgentCaseActivity.class); + break; + case 7: + intent.setClass(context, OvertimeCaseActivity.class); + break; + case 8: + intent.setClass(context, DataAnalysisActivity.class); + break; + case 9: + intent.setClass(context, PersonOnlineActivity.class); + break; + case 10: + intent.setClass(context, CaseSearchActivity.class); + break; + case 11: + intent.setClass(context, MapWatchViewActivity.class); + break; + default: + break; + } + startActivity(intent); + } + }); + break; +// case "process": +// //案卷处理、案卷查询 +// adapter.setItemData(Constant.PROCESS_ICONS, Constant.PROCESS_ITEMS); +// adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { +// @Override +// public void onClick(int position) { +// Intent intent = new Intent(); +// switch (position) { +// case 0: +// intent.setClass(context, CaseHandleActivity.class); +// break; +// case 1: +// intent.setClass(context, CaseSearchActivity.class); +// break; +// default: +// break; +// } +// startActivity(intent); +// } +// }); +// break; +// case "leader": +// //案卷上报、紧急要件、超时督办、统计分析、在岗人员、案卷查询 +// adapter.setItemData(Constant.LEADER_ICONS, Constant.LEADER_ITEMS); +// adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { +// @Override +// public void onClick(int position) { +// Intent intent = new Intent(); +// switch (position) { +// case 0: +// intent.setClass(context, CaseUploadActivity.class); +// break; +// case 1: +// intent.setClass(context, UrgentCaseActivity.class); +// break; +// case 2: +// intent.setClass(context, OvertimeCaseActivity.class); +// break; +// case 3: +// intent.setClass(context, DataAnalysisActivity.class); +// break; +// case 4: +// intent.setClass(context, PersonOnlineActivity.class); +// break; +// case 5: +// intent.setClass(context, CaseSearchActivity.class); +// break; +// default: +// break; +// } +// startActivity(intent); +// } +// }); +// break; + default: + break; + } + homeRecyclerView.setAdapter(adapter); } } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java index 430f8be..fa2df7a 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandledBean; import com.casic.dcms.mvp.presenter.CaseHandledListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandledListView; +import com.casic.dcms.ui.CaseHandledDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -128,10 +130,9 @@ adapter.setOnItemClickListener(new CaseHandledAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandledDetailActivity.class); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java index 502c288..05306fe 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -130,10 +132,10 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "待办案卷"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java index 25877de..743a092 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java @@ -17,7 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; -import com.casic.dcms.ui.CaseHandleOvertimeDetailActivity; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -133,7 +133,8 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { - Intent intent = new Intent(context, CaseHandleOvertimeDetailActivity.class); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "超时案卷"); intent.putExtra("id", dataBeans.get(position).getId()); startActivity(intent); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java index f957e26..ae0b3e5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -131,10 +133,10 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "紧急案卷"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java index 18178eb..5d51969 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.OvertimeCaseBean; import com.casic.dcms.mvp.presenter.OvertimeCaseListPresenterImpl; import com.casic.dcms.mvp.view.IOvertimeCaseListView; +import com.casic.dcms.ui.CaseTodoDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -128,10 +130,10 @@ adapter.setOnItemClickListener(new OvertimeCaseAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseTodoDetailActivity.class); + intent.putExtra("title", "超时督办"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java index 19c6766..51bdbd0 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.mvp.presenter.UrgentCaseListPresenterImpl; import com.casic.dcms.mvp.view.IUrgentCaseListView; +import com.casic.dcms.ui.CaseTodoDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -129,10 +131,10 @@ adapter.setOnItemClickListener(new UrgentCaseAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseTodoDetailActivity.class); + intent.putExtra("title", "紧急要件"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } 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 233b5d1..2e68d04 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -9,18 +9,38 @@ import java.util.List; public class Constant { - public static final List ICONS = Arrays.asList( + public static final String[] USER_PERMISSIONS = { + Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION, + Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO, + Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE, + Manifest.permission.CALL_PHONE}; + + public static final List ALL_ICONS = Arrays.asList( R.mipmap.ajsb, R.mipmap.kssb, R.mipmap.sbsb, R.mipmap.ajhs, R.mipmap.ajhc, R.mipmap.ajcl, R.mipmap.jjyj, R.mipmap.csdb, R.mipmap.tjfx, R.mipmap.zgry, R.mipmap.ajcx, R.mipmap.dtck); - public static final List ITEMS = Arrays.asList( + public static final List ALL_ITEMS = Arrays.asList( "案卷上报", "快速上报", "五包上报", "案卷核实", "案卷核查", "案卷处理", "紧急要件", "超时督办", "统计分析", "在岗人员", "案卷查询", "地图查看"); + public static final List PROCESS_ICONS = Arrays.asList( + R.mipmap.ajcl, R.mipmap.ajcx); + + public static final List PROCESS_ITEMS = Arrays.asList( + "案卷处理", "案卷查询"); + + public static final List LEADER_ICONS = Arrays.asList( + R.mipmap.ajsb, R.mipmap.jjyj, R.mipmap.csdb, + R.mipmap.tjfx, R.mipmap.zgry, R.mipmap.ajcx); + + public static final List LEADER_ITEMS = Arrays.asList( + "案卷上报", "紧急要件", "超时督办", + "统计分析", "在岗人员", "案卷查询"); + public static final List ANALYSIS_ICONS = Arrays.asList( R.mipmap.sbsb, R.mipmap.jjyj, R.mipmap.csdb, R.mipmap.ajcl, R.mipmap.tjfx, R.mipmap.ajhc); @@ -29,17 +49,6 @@ "问题来源", "案卷状态", "高发问题", "街道统计", "处理统计", "趋势分析"); - public static final List CATEGORY = Arrays.asList("请选择", "情况属实", "情况不属实"); - - public static final String[] USER_PERMISSIONS = { - Manifest.permission.ACCESS_COARSE_LOCATION, - Manifest.permission.ACCESS_FINE_LOCATION, - Manifest.permission.CAMERA, - Manifest.permission.READ_EXTERNAL_STORAGE, - Manifest.permission.WRITE_EXTERNAL_STORAGE, - Manifest.permission.RECORD_AUDIO, - Manifest.permission.CALL_PHONE}; - //先预置8种颜色 public static final int[] PIE_COLORS = {Color.rgb(28, 197, 220), Color.rgb(255, 223, 107), Color.rgb(242, 17, 112), diff --git a/app/src/main/java/com/casic/dcms/utils/StringHelper.java b/app/src/main/java/com/casic/dcms/utils/StringHelper.java index 1201063..5aeb8f6 100644 --- a/app/src/main/java/com/casic/dcms/utils/StringHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/StringHelper.java @@ -60,7 +60,9 @@ return ""; } String data = url.replace("\\", "/"); - return SaveKeyValues.getValue(Constant.IP_KEY, "http://111.198.10.15:11409") + "/static/" + data; + String imagePath = SaveKeyValues.getValue(Constant.IP_KEY, "http://111.198.10.15:11409") + "/static/" + data; + Log.d(TAG, "appendCompleteURL: "+imagePath); + return imagePath; } public static String reformatURL(List urls) { 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 ec230dd..16bafa1 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 @@ -14,6 +14,7 @@ import com.casic.dcms.bean.CaseStatusBean; import com.casic.dcms.bean.CaseVerifiedBean; import com.casic.dcms.bean.CaseVerifyBean; +import com.casic.dcms.bean.CommonSentenceBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; import com.casic.dcms.bean.LoginResultBean; @@ -345,6 +346,12 @@ @Query("caseState") String caseState); /** + * 获取常见语句 + */ + @GET("/dict/code/commonApproval") + Observable obtainCommonSentence(@Header("token") String token); + + /** * 案卷处理 *

* 案卷核实-仅添加核实意见/核实情况/核实图片 @@ -401,4 +408,12 @@ @Field("communityCode") String communityCode, @Field("gridId") String gridId, @Field("fieldintro") String fieldintro); + + /** + * 紧急要件-超时督办 + */ + @GET("/casedetail/updateSuperviseRemarks") + Observable updateSuperviseRemarks(@Header("token") String token, + @Query("id") String id, + @Query("superviseRemarks") String superviseRemarks); } 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 0c77b61..226b287 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 @@ -16,6 +16,7 @@ import com.casic.dcms.bean.CaseStatusBean; import com.casic.dcms.bean.CaseVerifiedBean; import com.casic.dcms.bean.CaseVerifyBean; +import com.casic.dcms.bean.CommonSentenceBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; import com.casic.dcms.bean.LoginResultBean; @@ -397,6 +398,15 @@ } /** + * 获取常见语句 + */ + public static Observable getCommonSentenceResult() { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainCommonSentence(TokenHelper.getToken()); + } + + /** * 案卷处理 *

* 案卷核实-仅添加核实意见/核实情况/核实图片 @@ -445,4 +455,13 @@ remarks, fileId, eorc, casetypeCode, casetypeDetailCode, lng, lat, caseLevel, areaCode, streetCode, communityCode, gridId, fieldintro); } + + /** + * 紧急要件-超时督办 + */ + public static Observable getUpdateSuperviseResult(String id, String superviseRemarks) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.updateSuperviseRemarks(TokenHelper.getToken(), id, superviseRemarks); + } } diff --git a/app/src/main/res/drawable/ic_load_error.xml b/app/src/main/res/drawable/ic_load_error.xml new file mode 100644 index 0000000..5ad71a1 --- /dev/null +++ b/app/src/main/res/drawable/ic_load_error.xml @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f6ac20a..2070c95 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -67,12 +67,14 @@ - + - + + + { private Context context; + private List iconData = new ArrayList<>(); + private List itemData = new ArrayList<>(); public HomeRecycleAdapter(Context context) { this.context = context; } + public void setItemData(@Nullable List icons, @Nullable List items) { + this.iconData = icons; + this.itemData = items; + } + @NonNull @Override public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -30,7 +40,7 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - holder.bindView(context, position); + holder.bindView(position); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override @@ -43,7 +53,7 @@ @Override public int getItemCount() { - return Constant.ITEMS.size(); + return itemData.size(); } private OnGridItemClickListener clickListener; @@ -56,7 +66,7 @@ this.clickListener = onGridItemClickListener; } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { private ImageView imageView; private TextView textView; @@ -67,9 +77,9 @@ textView = itemView.findViewById(R.id.textView); } - void bindView(Context context, int position) { - imageView.setBackgroundResource(Constant.ICONS.get(position)); - textView.setText(Constant.ITEMS.get(position)); + void bindView(int position) { + imageView.setBackgroundResource(iconData.get(position)); + textView.setText(itemData.get(position)); } } } diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index b9c4615..d9b10e0 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; import java.util.ArrayList; @@ -62,7 +63,10 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - Glide.with(context).load(mediaList.get(position)).into(holder.imageView); + Glide.with(context) + .load(mediaList.get(position)) + .apply(new RequestOptions().error(R.drawable.ic_load_error)) + .into(holder.imageView); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/casic/dcms/base/BaseActivity.java b/app/src/main/java/com/casic/dcms/base/BaseActivity.java index caf0356..2ca87fe 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseActivity.java +++ b/app/src/main/java/com/casic/dcms/base/BaseActivity.java @@ -17,8 +17,8 @@ setContentView(initLayoutView()); ButterKnife.bind(this); QMUIStatusBarHelper.translucent(this);//沉浸式状态栏 - setupTopBarLayout(); initData(); + setupTopBarLayout(); initEvent(); } diff --git a/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java new file mode 100644 index 0000000..8de58a4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java @@ -0,0 +1,78 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CommonSentenceBean { + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 请及时处理 + * id : 156 + * value : 请及时处理 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java new file mode 100644 index 0000000..5258d89 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CommonSentenceBean; +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 CaseCommonSentenceModelImpl implements ICaseCommonSentenceModel { + + private OnGetCommonSentenceListener sentenceListener; + + public CaseCommonSentenceModelImpl(OnGetCommonSentenceListener commonSentenceListener) { + this.sentenceListener = commonSentenceListener; + } + + public interface OnGetCommonSentenceListener { + void onSuccess(CommonSentenceBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCommonSentenceResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (sentenceListener != null) { + sentenceListener.onFailure(e); + } + } + + @Override + public void onNext(CommonSentenceBean resultBean) { + if (resultBean != null) { + sentenceListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java new file mode 100644 index 0000000..a8cb3fc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java @@ -0,0 +1,53 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseUpdateSuperviseModelImpl implements ICaseUpdateSuperviseModel { + + private OnUpdateSuperviseListener listener; + + public CaseUpdateSuperviseModelImpl(OnUpdateSuperviseListener updateSuperviseListener) { + this.listener = updateSuperviseListener; + } + + /** + * 数据回调接口 + */ + public interface OnUpdateSuperviseListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String superviseRemarks) { + Observable observable = RetrofitServiceManager.getUpdateSuperviseResult(id, superviseRemarks); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java new file mode 100644 index 0000000..263ef6c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseCommonSentenceModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java new file mode 100644 index 0000000..518d602 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseUpdateSuperviseModel { + Subscription sendRetrofitRequest(String id, String superviseRemarks); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java new file mode 100644 index 0000000..6b65f13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseCommonSentenceModelImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; + +public class CaseCommonSentencePresenterImpl extends BasePresenter implements ICaseCommonSentencePresenter, + CaseCommonSentenceModelImpl.OnGetCommonSentenceListener { + + private ICaseCommonSentenceView view; + private CaseCommonSentenceModelImpl actionModel; + + public CaseCommonSentencePresenterImpl(ICaseCommonSentenceView commonSentenceView) { + this.view = commonSentenceView; + actionModel = new CaseCommonSentenceModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CommonSentenceBean resultBean) { + view.obtainCommonSentenceData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java new file mode 100644 index 0000000..66e1f44 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseUpdateSuperviseModelImpl; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; + +public class CaseUpdateSupervisePresenterImpl extends BasePresenter implements ICaseUpdateSupervisePresenter, + CaseUpdateSuperviseModelImpl.OnUpdateSuperviseListener { + + private ICaseUpdateSuperviseView view; + private CaseUpdateSuperviseModelImpl actionModel; + + public CaseUpdateSupervisePresenterImpl(ICaseUpdateSuperviseView updateSuperviseView) { + this.view = updateSuperviseView; + actionModel = new CaseUpdateSuperviseModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String superviseRemarks) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, superviseRemarks)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainUpdateSuperviseData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java new file mode 100644 index 0000000..1f8bd09 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseCommonSentencePresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java new file mode 100644 index 0000000..f61f9b2 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseUpdateSupervisePresenter { + void onReadyRetrofitRequest(String id, String superviseRemarks); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java new file mode 100644 index 0000000..9c7b08b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CommonSentenceBean; + +public interface ICaseCommonSentenceView { + void obtainCommonSentenceData(CommonSentenceBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java new file mode 100644 index 0000000..10bcf5a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICaseUpdateSuperviseView { + void showProgress(); + + void hideProgress(); + + void obtainUpdateSuperviseData(ActionResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java index ad70b7a..9143db8 100644 --- a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.ui; +import android.view.View; + +import androidx.core.content.ContextCompat; + import com.bumptech.glide.Glide; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.luck.picture.lib.photoview.PhotoView; -import com.qmuiteam.qmui.util.QMUIStatusBarHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; import butterknife.BindView; @@ -15,6 +19,8 @@ **/ public class BigPictureActivity extends BaseActivity { + @BindView(R.id.imageTopLayout) + QMUITopBarLayout imageTopLayout; @BindView(R.id.photoView) PhotoView photoView; @@ -25,37 +31,24 @@ @Override protected void setupTopBarLayout() { - QMUIStatusBarHelper.setStatusBarLightMode(this); + imageTopLayout.setTitle("查看大图").setTextColor(ContextCompat.getColor(this, R.color.white)); + imageTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + imageTopLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); } @Override public void initData() { -// String mediaJson = getIntent().getStringExtra("mediaJson"); -// -// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() { -// }.getType()); -// -// list = new ArrayList<>(); -// assert mediaList != null; -// for (LocalMedia media : mediaList) { -// list.add(media.getRealPath()); -// } String path = getIntent().getStringExtra("path"); Glide.with(this).load(path).into(photoView); } @Override public void initEvent() { -// //轮播图 -// bigImageBanner.setImageLoader(new ImageLoader() { -// -// @Override -// public void displayImage(Context context, Object path, ImageView imageView) { -// Glide.with(context).load(path).into(imageView); -// } -// }); -// bigImageBanner.isAutoPlay(false); -// bigImageBanner.setImages(list); -// bigImageBanner.start(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index 01a3807..7548cfc 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -329,7 +329,7 @@ caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java new file mode 100644 index 0000000..d4dba38 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -0,0 +1,505 @@ +package com.casic.dcms.ui; + +import android.content.DialogInterface; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseNextNodeBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseHandleView; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseNextNodeView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.IUploadFileView; +import com.casic.dcms.utils.FileUtils; +import com.casic.dcms.utils.GlideLoadEngine; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.luck.picture.lib.PictureSelector; +import com.luck.picture.lib.config.PictureConfig; +import com.luck.picture.lib.config.PictureMimeType; +import com.luck.picture.lib.entity.LocalMedia; +import com.luck.picture.lib.tools.PictureFileUtils; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, + ICaseHandleView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @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) + EditText casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.caseHandleView) + TextView caseHandleView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseStartTimeView) + TextView caseStartTimeView; + @BindView(R.id.caseEndTimeView) + TextView caseEndTimeView; + @BindView(R.id.caseHandleResultView) + TextView caseHandleResultView; + @BindView(R.id.caseHandleRecyclerView) + RecyclerView caseHandleRecyclerView; + @BindView(R.id.addImageView) + ImageView addImageView; + @BindView(R.id.caseReasonView) + EditText caseReasonView; + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private String changeState; + private String caseReason; + private String approvalResult; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private List largeClassBeans = new ArrayList<>(); + private List smallClassBeans = new ArrayList<>(); + private List realPaths = new ArrayList<>();//真实图片路径 + private List mediaList = new ArrayList<>();//上传到服务器的数据集 + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private CaseNextNodePresenterImpl caseNextNodePresenter; + private UploadImagePresenterImpl uploadImagePresenter; + private CaseHandlePresenterImpl caseHandlePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handle_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseNextNodePresenter = new CaseNextNodePresenterImpl(this); + uploadImagePresenter = new UploadImagePresenterImpl(this); + caseHandlePresenter = new CaseHandlePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @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()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + caseStartTimeView.setText(data.getCreateTime()); + caseEndTimeView.setText(data.getNodeLimittime()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeTypeView.setText("无小类"); + } else { + caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 + } + caseSmallTypeView.setText("请选择"); + } + } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallTypeView.setText("无小类"); + } else { + caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 + } + } + } + + @Override + public void obtainNextNodeData(CaseNextNodeBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处理结果"); + for (CaseNextNodeBean.DataBean dataBean : dataBeans) { + 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(); + + CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); + caseHandleResultView.setText(dataBean.getNextOperation()); + changeState = String.valueOf(dataBean.getNextState()); + approvalResult = dataBean.getApprovalResult(); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseClassLayout: + 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(); + + caseTypeView.setText(tag); + //获取案卷大类 + caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseLargeTypeView.setText(tag); + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseSmallTypeView.setText(tag); + } + }).build().show(); + } + } + break; + case R.id.caseHandleResultLayout: + caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); + break; + case R.id.addImageView: + new QMUIDialog.MenuDialogBuilder(this) + .addItem("相册中选取", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //选图 + selectPicture(); + } + }) + .addItem("相机拍照", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //拍照 + takePicture(); + } + }) + .create().show(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String handleResult = caseHandleResultView.getText().toString(); + if (handleResult.equals("请选择")) { + ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); + return; + } + if (handleResult.equals("处理完成")) { + //选择处理完成时,处理图片必传。至少一张,最多两张 + if (mediaList.size() < 1 || mediaList.size() > 2) { + ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); + return; + } + } + if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { + caseReason = caseReasonView.getText().toString(); + if (TextUtils.isEmpty(caseReason)) { + ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); + return; + } + } + caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), + changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); + } + + private void selectPicture() { + PictureSelector.create(this) + .openGallery(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(2) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.CHOOSE_REQUEST); + } + + private void takePicture() { + PictureSelector.create(this) + .openCamera(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(1) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.REQUEST_CAMERA); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == RESULT_OK) { + switch (requestCode) { + case PictureConfig.CHOOSE_REQUEST: + List selectList = PictureSelector.obtainMultipleResult(data); + for (LocalMedia media : selectList) { + String mediaCompressPath = media.getCompressPath(); + uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); + } + break; + case PictureConfig.REQUEST_CAMERA: + LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); + uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); + break; + default: + break; + } + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUploadAudioResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainUploadImageResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + PictureFileUtils.deleteAllCacheDirFile(this); + /** + * 系统路径static拼接图片返回路径 + * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg + */ + //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg + String url = resultBean.getData(); + mediaList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(realPaths); + caseHandleRecyclerView.setVisibility(View.VISIBLE); + caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); + caseHandleRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(realPaths.get(position)); + } + }); + //删除按钮点击事件 + imageAdapter.setDeleteView(true); + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } + } + + @Override + public void obtainUploadVideoResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainCaseHandleResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseNextNodePresenter != null) { + caseNextNodePresenter.disposeRetrofitRequest(); + } + if (uploadImagePresenter != null) { + uploadImagePresenter.disposeRetrofitRequest(); + } + if (caseHandlePresenter != null) { + caseHandlePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java deleted file mode 100644 index bd187c5..0000000 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java +++ /dev/null @@ -1,500 +0,0 @@ -package com.casic.dcms.ui; - -import android.content.DialogInterface; -import android.content.Intent; -import android.text.TextUtils; -import android.view.View; -import android.widget.EditText; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.Nullable; -import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.adapter.ImageRecycleViewAdapter; -import com.casic.dcms.base.BaseCaseActivity; -import com.casic.dcms.bean.ActionResultBean; -import com.casic.dcms.bean.CaseDetailBean; -import com.casic.dcms.bean.CaseLargeClassBean; -import com.casic.dcms.bean.CaseNextNodeBean; -import com.casic.dcms.bean.CaseSmallClassBean; -import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; -import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; -import com.casic.dcms.mvp.view.ICaseDetailView; -import com.casic.dcms.mvp.view.ICaseHandleView; -import com.casic.dcms.mvp.view.ICaseLargeClassView; -import com.casic.dcms.mvp.view.ICaseNextNodeView; -import com.casic.dcms.mvp.view.ICaseSmallClassView; -import com.casic.dcms.mvp.view.IUploadFileView; -import com.casic.dcms.utils.FileUtils; -import com.casic.dcms.utils.GlideLoadEngine; -import com.casic.dcms.utils.ItemDecorationSpace; -import com.casic.dcms.utils.StringHelper; -import com.casic.dcms.utils.ToastHelper; -import com.luck.picture.lib.PictureSelector; -import com.luck.picture.lib.config.PictureConfig; -import com.luck.picture.lib.config.PictureMimeType; -import com.luck.picture.lib.entity.LocalMedia; -import com.luck.picture.lib.tools.PictureFileUtils; -import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; -import com.qmuiteam.qmui.widget.dialog.QMUIDialog; -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; - -import butterknife.BindView; -import butterknife.OnClick; - -public class CaseHandleOvertimeDetailActivity extends BaseCaseActivity implements View.OnClickListener, - ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, - ICaseHandleView { - - @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) - EditText casePlaceView; - @BindView(R.id.caseSituationView) - TextView caseSituationView; - @BindView(R.id.caseHandleView) - TextView caseHandleView; - @BindView(R.id.casePicRecyclerView) - RecyclerView casePicRecyclerView; - @BindView(R.id.caseStartTimeView) - TextView caseStartTimeView; - @BindView(R.id.caseEndTimeView) - TextView caseEndTimeView; - @BindView(R.id.caseHandleResultView) - TextView caseHandleResultView; - @BindView(R.id.caseHandleRecyclerView) - RecyclerView caseHandleRecyclerView; - @BindView(R.id.addImageView) - ImageView addImageView; - @BindView(R.id.caseReasonView) - EditText caseReasonView; - @BindView(R.id.submitButton) - QMUIRoundButton submitButton; - - private String id; - private String changeState; - private String caseReason; - private String approvalResult; - private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); - private List largeClassBeans = new ArrayList<>(); - private List smallClassBeans = new ArrayList<>(); - private List realPaths = new ArrayList<>();//真实图片路径 - private List mediaList = new ArrayList<>();//上传到服务器的数据集 - - private CaseDetailPresenterImpl caseDetailPresenter; - private CaseLargeClassPresenterImpl caseLargeClassPresenter; - private CaseSmallClassPresenterImpl caseSmallClassPresenter; - private CaseNextNodePresenterImpl caseNextNodePresenter; - private UploadImagePresenterImpl uploadImagePresenter; - private CaseHandlePresenterImpl caseHandlePresenter; - - private QMUITipDialog submitDialog; - - @Override - public int initLayoutView() { - return R.layout.activity_case_handle_overtime; - } - - @Override - protected String setTitleName() { - return "超时案卷"; - } - - @Override - public void initData() { - id = getIntent().getStringExtra("id"); - caseDetailPresenter = new CaseDetailPresenterImpl(this); - caseDetailPresenter.onReadyRetrofitRequest(id); - - caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); - caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); - caseNextNodePresenter = new CaseNextNodePresenterImpl(this); - uploadImagePresenter = new UploadImagePresenterImpl(this); - caseHandlePresenter = new CaseHandlePresenterImpl(this); - - submitDialog = new QMUITipDialog.Builder(this) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord("提交中,请稍后") - .create(); - } - - @Override - public void initEvent() { - submitButton.setChangeAlphaWhenPress(true); - } - - @Override - public void obtainCaseDetailData(CaseDetailBean resultBean) { - if (resultBean.isSuccess()) { - this.data = resultBean.getData().get(0); - caseTypeView.setText(data.getEorcName()); - caseLargeTypeView.setText(data.getCasetypeName()); - caseSmallTypeView.setText(data.getCasetypeDetailName()); - caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro()); - caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); - caseStartTimeView.setText(data.getCreateTime()); - caseEndTimeView.setText(data.getNodeLimittime()); - - String verifyImages = data.getFileIdVerify(); - if (!TextUtils.isEmpty(verifyImages)) { - List urls = new ArrayList<>(); - String[] split = verifyImages.split(","); - for (String s : split) { - urls.add(StringHelper.appendCompleteURL(s)); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(urls); - casePicRecyclerView.setVisibility(View.VISIBLE); - casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); - casePicRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(urls.get(position)); - } - }); - imageAdapter.setDeleteView(false); - } - } - } - - private void showBigImage(String path) { - Intent intent = new Intent(this, BigPictureActivity.class); - intent.putExtra("path", path); - startActivity(intent); - } - - @Override - public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { - if (largeClassBean.isSuccess()) { - //设置大类数据 - this.largeClassBeans = largeClassBean.getData(); - if (largeClassBeans.size() == 0) { - caseLargeTypeView.setText("无小类"); - } else { - caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 - } - caseSmallTypeView.setText("请选择"); - } - } - - @Override - public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { - if (smallClassBean.isSuccess()) { - //设置大类数据 - this.smallClassBeans = smallClassBean.getData(); - if (smallClassBeans.size() == 0) { - caseSmallTypeView.setText("无小类"); - } else { - caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 - } - } - } - - @Override - public void obtainNextNodeData(CaseNextNodeBean resultBean) { - if (resultBean.isSuccess()) { - List dataBeans = resultBean.getData(); - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("处理结果"); - for (CaseNextNodeBean.DataBean dataBean : dataBeans) { - 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(); - - CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); - caseHandleResultView.setText(dataBean.getNextOperation()); - changeState = String.valueOf(dataBean.getNextState()); - approvalResult = dataBean.getApprovalResult(); - } - }).build().show(); - } else { - ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); - } - } - - @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) - @Override - public void onClick(View v) { - switch (v.getId()) { - case R.id.caseClassLayout: - 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(); - - caseTypeView.setText(tag); - //获取案卷大类 - caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); - } - }).build().show(); - break; - case R.id.caseLargeClassLayout: - if (largeClassBeans != null) { - if (largeClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷大类"); - for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { - sheetBuilder.addItem(dataBean.getTypeName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseLargeTypeView.setText(tag); - //获取案卷小类 - CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); - String typeId = dataBean.getId(); - caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); - } - }).build().show(); - } - } - break; - case R.id.caseSmallClassLayout: - if (smallClassBeans != null) { - if (smallClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷小类"); - for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { - sheetBuilder.addItem(dataBean.getTypeDetailName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseSmallTypeView.setText(tag); - } - }).build().show(); - } - } - break; - case R.id.caseHandleResultLayout: - caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); - break; - case R.id.addImageView: - new QMUIDialog.MenuDialogBuilder(this) - .addItem("相册中选取", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //选图 - selectPicture(); - } - }) - .addItem("相机拍照", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //拍照 - takePicture(); - } - }) - .create().show(); - break; - case R.id.submitButton: - submitCase();//案卷提交 - break; - default: - break; - } - } - - private void submitCase() { - String handleResult = caseHandleResultView.getText().toString(); - if (handleResult.equals("请选择")) { - ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); - return; - } - if (handleResult.equals("处理完成")) { - //选择处理完成时,处理图片必传。至少一张,最多两张 - if (mediaList.size() < 1 || mediaList.size() > 2) { - ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); - return; - } - } - if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { - caseReason = caseReasonView.getText().toString(); - if (TextUtils.isEmpty(caseReason)) { - ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); - return; - } - } - caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), - changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); - } - - private void selectPicture() { - PictureSelector.create(this) - .openGallery(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(2) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.CHOOSE_REQUEST); - } - - private void takePicture() { - PictureSelector.create(this) - .openCamera(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(1) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.REQUEST_CAMERA); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if (resultCode == RESULT_OK) { - switch (requestCode) { - case PictureConfig.CHOOSE_REQUEST: - List selectList = PictureSelector.obtainMultipleResult(data); - for (LocalMedia media : selectList) { - String mediaCompressPath = media.getCompressPath(); - uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); - } - break; - case PictureConfig.REQUEST_CAMERA: - LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); - uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); - break; - default: - break; - } - } - } - - @Override - public void showProgress() { - submitDialog.show(); - } - - @Override - public void hideProgress() { - submitDialog.hide(); - } - - @Override - public void obtainUploadAudioResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainUploadImageResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - PictureFileUtils.deleteAllCacheDirFile(this); - /** - * 系统路径static拼接图片返回路径 - * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg - */ - //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String url = resultBean.getData(); - mediaList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(realPaths); - caseHandleRecyclerView.setVisibility(View.VISIBLE); - caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); - caseHandleRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(realPaths.get(position)); - } - }); - //删除按钮点击事件 - imageAdapter.setDeleteView(true); - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); - } - } - }); - } - } - - @Override - public void obtainUploadVideoResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainCaseHandleResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); - finish(); - } else { - ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); - } - } - - @Override - protected void onDestroy() { - super.onDestroy(); - if (caseDetailPresenter != null) { - caseDetailPresenter.disposeRetrofitRequest(); - } - if (caseLargeClassPresenter != null) { - caseLargeClassPresenter.disposeRetrofitRequest(); - } - if (caseSmallClassPresenter != null) { - caseSmallClassPresenter.disposeRetrofitRequest(); - } - if (caseNextNodePresenter != null) { - caseNextNodePresenter.disposeRetrofitRequest(); - } - if (uploadImagePresenter != null) { - uploadImagePresenter.disposeRetrofitRequest(); - } - if (caseHandlePresenter != null) { - caseHandlePresenter.disposeRetrofitRequest(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java new file mode 100644 index 0000000..5ea5403 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -0,0 +1,145 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { + + @BindView(R.id.detailTopLayout) + QMUITopBarLayout detailTopLayout; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @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; + + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private CaseDetailPresenterImpl caseDetailPresenter; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handled_detail; + } + + @Override + protected void setupTopBarLayout() { + detailTopLayout.setTitle("已办案卷").setTextColor(ContextCompat.getColor(this, R.color.white)); + detailTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + detailTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + String id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + } + + @Override + public void initEvent() { + + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseHandleStatusView.setText(data.getCaseStateName()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @OnClick(R.id.handleLayout) + @Override + public void onClick(View v) { + if (v.getId() == R.id.handleLayout) { + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java new file mode 100644 index 0000000..3b2d3d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -0,0 +1,228 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.TextView; + +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.presenter.CaseCommonSentencePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseUpdateSupervisePresenterImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseOverTimeView) + TextView caseOverTimeView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @BindView(R.id.casePlaceView) + EditText casePlaceView; + @BindView(R.id.caseDescriptionView) + TextView caseDescriptionView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseHandleResultView) + EditText caseHandleResultView; + @BindView(R.id.caseCommonSentenceView) + TextView caseCommonSentenceView; + + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseCommonSentencePresenterImpl commonSentencePresenter; + private CaseUpdateSupervisePresenterImpl updateSupervisePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_todo_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + commonSentencePresenter = new CaseCommonSentencePresenterImpl(this); + updateSupervisePresenter = new CaseUpdateSupervisePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @Override + public void initEvent() { + + } + + @OnClick({R.id.caseHandleLayout, R.id.caseCommonSentenceLayout, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseHandleLayout: + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + break; + case R.id.caseCommonSentenceLayout: + commonSentencePresenter.onReadyRetrofitRequest(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String remarks = caseHandleResultView.getText().toString(); + if (TextUtils.isEmpty(remarks)) { + ToastHelper.showToast("督办意见不能为空", ToastHelper.WARING); + return; + } + updateSupervisePresenter.onReadyRetrofitRequest(id, remarks); + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseOverTimeView.setText(data.getNodeLimittime()); + caseHandleStatusView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + casePlaceView.setText(data.getFieldintro()); + caseDescriptionView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainCommonSentenceData(CommonSentenceBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("常用语句"); + for (CommonSentenceBean.DataBean dataBean : dataBeans) { + 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(); + + CommonSentenceBean.DataBean dataBean = dataBeans.get(position); + caseCommonSentenceView.setText(dataBean.getName()); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUpdateSuperviseData(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷督办提交成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷督办提交失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (commonSentencePresenter != null) { + commonSentencePresenter.disposeRetrofitRequest(); + } + if (updateSupervisePresenter != null) { + updateSupervisePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 3060e1b..af6a9fe 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -191,7 +191,7 @@ caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); - caseHandleView.setText(data.getUrgeRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); caseSituationView.setText(data.getDescription()); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index 7816221..3989633 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -28,6 +28,7 @@ import com.casic.dcms.ui.OvertimeCaseActivity; import com.casic.dcms.ui.PersonOnlineActivity; import com.casic.dcms.ui.UrgentCaseActivity; +import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.StringHelper; import com.qmuiteam.qmui.widget.QMUIRadiusImageView; @@ -69,62 +70,12 @@ @Override protected void initEvent() { - HomeRecycleAdapter adapter = new HomeRecycleAdapter(context); - homeRecyclerView.setLayoutManager(new GridLayoutManager(context, 3)); - homeRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - Intent intent = new Intent(); - switch (position) { - case 0: - intent.setClass(context, CaseUploadActivity.class); - break; - case 1: - intent.setClass(context, CaseUploadQuicklyActivity.class); - break; - case 2: - intent.setClass(context, FivePackageUploadActivity.class); - break; - case 3: - intent.setClass(context, CaseVerifyActivity.class); - break; - case 4: - intent.setClass(context, CaseCheckActivity.class); - break; - case 5: - intent.setClass(context, CaseHandleActivity.class); - break; - case 6: - intent.setClass(context, UrgentCaseActivity.class); - break; - case 7: - intent.setClass(context, OvertimeCaseActivity.class); - break; - case 8: - intent.setClass(context, DataAnalysisActivity.class); - break; - case 9: - intent.setClass(context, PersonOnlineActivity.class); - break; - case 10: - intent.setClass(context, CaseSearchActivity.class); - break; - case 11: - intent.setClass(context, MapWatchViewActivity.class); - break; - default: - break; - } - startActivity(intent); - } - }); + } @SuppressLint("SetTextI18n") @Override public void obtainUserData(UserBean userBean) { -// Log.d(TAG, "obtainUserData: " + new Gson().toJson(userBean)); if (userBean.isSuccess()) { //QMUIRadiusImageView无法动态设置圆形头像,借助Glide实现圆形头像 Glide.with(this).load(R.mipmap.app_logo).apply(RequestOptions.circleCropTransform()).into(userIconView); @@ -137,6 +88,121 @@ StringHelper.saveUserPhone(data.getPhone()); StringHelper.saveUserDept(data.getDeptName()); StringHelper.saveUserDeptId(data.getDeptId()); + + //权限控制 + String roleTip = data.getRoleTips().get(0); + HomeRecycleAdapter adapter = new HomeRecycleAdapter(context); + homeRecyclerView.setLayoutManager(new GridLayoutManager(context, 3)); + switch (roleTip) { + case "supervisor": + //All + adapter.setItemData(Constant.ALL_ICONS, Constant.ALL_ITEMS); + adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { + @Override + public void onClick(int position) { + Intent intent = new Intent(); + switch (position) { + case 0: + intent.setClass(context, CaseUploadActivity.class); + break; + case 1: + intent.setClass(context, CaseUploadQuicklyActivity.class); + break; + case 2: + intent.setClass(context, FivePackageUploadActivity.class); + break; + case 3: + intent.setClass(context, CaseVerifyActivity.class); + break; + case 4: + intent.setClass(context, CaseCheckActivity.class); + break; + case 5: + intent.setClass(context, CaseHandleActivity.class); + break; + case 6: + intent.setClass(context, UrgentCaseActivity.class); + break; + case 7: + intent.setClass(context, OvertimeCaseActivity.class); + break; + case 8: + intent.setClass(context, DataAnalysisActivity.class); + break; + case 9: + intent.setClass(context, PersonOnlineActivity.class); + break; + case 10: + intent.setClass(context, CaseSearchActivity.class); + break; + case 11: + intent.setClass(context, MapWatchViewActivity.class); + break; + default: + break; + } + startActivity(intent); + } + }); + break; +// case "process": +// //案卷处理、案卷查询 +// adapter.setItemData(Constant.PROCESS_ICONS, Constant.PROCESS_ITEMS); +// adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { +// @Override +// public void onClick(int position) { +// Intent intent = new Intent(); +// switch (position) { +// case 0: +// intent.setClass(context, CaseHandleActivity.class); +// break; +// case 1: +// intent.setClass(context, CaseSearchActivity.class); +// break; +// default: +// break; +// } +// startActivity(intent); +// } +// }); +// break; +// case "leader": +// //案卷上报、紧急要件、超时督办、统计分析、在岗人员、案卷查询 +// adapter.setItemData(Constant.LEADER_ICONS, Constant.LEADER_ITEMS); +// adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { +// @Override +// public void onClick(int position) { +// Intent intent = new Intent(); +// switch (position) { +// case 0: +// intent.setClass(context, CaseUploadActivity.class); +// break; +// case 1: +// intent.setClass(context, UrgentCaseActivity.class); +// break; +// case 2: +// intent.setClass(context, OvertimeCaseActivity.class); +// break; +// case 3: +// intent.setClass(context, DataAnalysisActivity.class); +// break; +// case 4: +// intent.setClass(context, PersonOnlineActivity.class); +// break; +// case 5: +// intent.setClass(context, CaseSearchActivity.class); +// break; +// default: +// break; +// } +// startActivity(intent); +// } +// }); +// break; + default: + break; + } + homeRecyclerView.setAdapter(adapter); } } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java index 430f8be..fa2df7a 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandledBean; import com.casic.dcms.mvp.presenter.CaseHandledListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandledListView; +import com.casic.dcms.ui.CaseHandledDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -128,10 +130,9 @@ adapter.setOnItemClickListener(new CaseHandledAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandledDetailActivity.class); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java index 502c288..05306fe 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -130,10 +132,10 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "待办案卷"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java index 25877de..743a092 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java @@ -17,7 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; -import com.casic.dcms.ui.CaseHandleOvertimeDetailActivity; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -133,7 +133,8 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { - Intent intent = new Intent(context, CaseHandleOvertimeDetailActivity.class); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "超时案卷"); intent.putExtra("id", dataBeans.get(position).getId()); startActivity(intent); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java index f957e26..ae0b3e5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -131,10 +133,10 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "紧急案卷"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java index 18178eb..5d51969 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.OvertimeCaseBean; import com.casic.dcms.mvp.presenter.OvertimeCaseListPresenterImpl; import com.casic.dcms.mvp.view.IOvertimeCaseListView; +import com.casic.dcms.ui.CaseTodoDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -128,10 +130,10 @@ adapter.setOnItemClickListener(new OvertimeCaseAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseTodoDetailActivity.class); + intent.putExtra("title", "超时督办"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java index 19c6766..51bdbd0 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.mvp.presenter.UrgentCaseListPresenterImpl; import com.casic.dcms.mvp.view.IUrgentCaseListView; +import com.casic.dcms.ui.CaseTodoDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -129,10 +131,10 @@ adapter.setOnItemClickListener(new UrgentCaseAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseTodoDetailActivity.class); + intent.putExtra("title", "紧急要件"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } 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 233b5d1..2e68d04 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -9,18 +9,38 @@ import java.util.List; public class Constant { - public static final List ICONS = Arrays.asList( + public static final String[] USER_PERMISSIONS = { + Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION, + Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO, + Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE, + Manifest.permission.CALL_PHONE}; + + public static final List ALL_ICONS = Arrays.asList( R.mipmap.ajsb, R.mipmap.kssb, R.mipmap.sbsb, R.mipmap.ajhs, R.mipmap.ajhc, R.mipmap.ajcl, R.mipmap.jjyj, R.mipmap.csdb, R.mipmap.tjfx, R.mipmap.zgry, R.mipmap.ajcx, R.mipmap.dtck); - public static final List ITEMS = Arrays.asList( + public static final List ALL_ITEMS = Arrays.asList( "案卷上报", "快速上报", "五包上报", "案卷核实", "案卷核查", "案卷处理", "紧急要件", "超时督办", "统计分析", "在岗人员", "案卷查询", "地图查看"); + public static final List PROCESS_ICONS = Arrays.asList( + R.mipmap.ajcl, R.mipmap.ajcx); + + public static final List PROCESS_ITEMS = Arrays.asList( + "案卷处理", "案卷查询"); + + public static final List LEADER_ICONS = Arrays.asList( + R.mipmap.ajsb, R.mipmap.jjyj, R.mipmap.csdb, + R.mipmap.tjfx, R.mipmap.zgry, R.mipmap.ajcx); + + public static final List LEADER_ITEMS = Arrays.asList( + "案卷上报", "紧急要件", "超时督办", + "统计分析", "在岗人员", "案卷查询"); + public static final List ANALYSIS_ICONS = Arrays.asList( R.mipmap.sbsb, R.mipmap.jjyj, R.mipmap.csdb, R.mipmap.ajcl, R.mipmap.tjfx, R.mipmap.ajhc); @@ -29,17 +49,6 @@ "问题来源", "案卷状态", "高发问题", "街道统计", "处理统计", "趋势分析"); - public static final List CATEGORY = Arrays.asList("请选择", "情况属实", "情况不属实"); - - public static final String[] USER_PERMISSIONS = { - Manifest.permission.ACCESS_COARSE_LOCATION, - Manifest.permission.ACCESS_FINE_LOCATION, - Manifest.permission.CAMERA, - Manifest.permission.READ_EXTERNAL_STORAGE, - Manifest.permission.WRITE_EXTERNAL_STORAGE, - Manifest.permission.RECORD_AUDIO, - Manifest.permission.CALL_PHONE}; - //先预置8种颜色 public static final int[] PIE_COLORS = {Color.rgb(28, 197, 220), Color.rgb(255, 223, 107), Color.rgb(242, 17, 112), diff --git a/app/src/main/java/com/casic/dcms/utils/StringHelper.java b/app/src/main/java/com/casic/dcms/utils/StringHelper.java index 1201063..5aeb8f6 100644 --- a/app/src/main/java/com/casic/dcms/utils/StringHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/StringHelper.java @@ -60,7 +60,9 @@ return ""; } String data = url.replace("\\", "/"); - return SaveKeyValues.getValue(Constant.IP_KEY, "http://111.198.10.15:11409") + "/static/" + data; + String imagePath = SaveKeyValues.getValue(Constant.IP_KEY, "http://111.198.10.15:11409") + "/static/" + data; + Log.d(TAG, "appendCompleteURL: "+imagePath); + return imagePath; } public static String reformatURL(List urls) { 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 ec230dd..16bafa1 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 @@ -14,6 +14,7 @@ import com.casic.dcms.bean.CaseStatusBean; import com.casic.dcms.bean.CaseVerifiedBean; import com.casic.dcms.bean.CaseVerifyBean; +import com.casic.dcms.bean.CommonSentenceBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; import com.casic.dcms.bean.LoginResultBean; @@ -345,6 +346,12 @@ @Query("caseState") String caseState); /** + * 获取常见语句 + */ + @GET("/dict/code/commonApproval") + Observable obtainCommonSentence(@Header("token") String token); + + /** * 案卷处理 *

* 案卷核实-仅添加核实意见/核实情况/核实图片 @@ -401,4 +408,12 @@ @Field("communityCode") String communityCode, @Field("gridId") String gridId, @Field("fieldintro") String fieldintro); + + /** + * 紧急要件-超时督办 + */ + @GET("/casedetail/updateSuperviseRemarks") + Observable updateSuperviseRemarks(@Header("token") String token, + @Query("id") String id, + @Query("superviseRemarks") String superviseRemarks); } 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 0c77b61..226b287 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 @@ -16,6 +16,7 @@ import com.casic.dcms.bean.CaseStatusBean; import com.casic.dcms.bean.CaseVerifiedBean; import com.casic.dcms.bean.CaseVerifyBean; +import com.casic.dcms.bean.CommonSentenceBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; import com.casic.dcms.bean.LoginResultBean; @@ -397,6 +398,15 @@ } /** + * 获取常见语句 + */ + public static Observable getCommonSentenceResult() { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainCommonSentence(TokenHelper.getToken()); + } + + /** * 案卷处理 *

* 案卷核实-仅添加核实意见/核实情况/核实图片 @@ -445,4 +455,13 @@ remarks, fileId, eorc, casetypeCode, casetypeDetailCode, lng, lat, caseLevel, areaCode, streetCode, communityCode, gridId, fieldintro); } + + /** + * 紧急要件-超时督办 + */ + public static Observable getUpdateSuperviseResult(String id, String superviseRemarks) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.updateSuperviseRemarks(TokenHelper.getToken(), id, superviseRemarks); + } } diff --git a/app/src/main/res/drawable/ic_load_error.xml b/app/src/main/res/drawable/ic_load_error.xml new file mode 100644 index 0000000..5ad71a1 --- /dev/null +++ b/app/src/main/res/drawable/ic_load_error.xml @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/activity_big_pic.xml b/app/src/main/res/layout/activity_big_pic.xml index 551ed62..bc09ace 100644 --- a/app/src/main/res/layout/activity_big_pic.xml +++ b/app/src/main/res/layout/activity_big_pic.xml @@ -1,16 +1,17 @@ - - + android:layout_height="wrap_content" + android:fitsSystemWindows="true" /> + - \ No newline at end of file + android:layout_height="wrap_content" /> + \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f6ac20a..2070c95 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -67,12 +67,14 @@ - + - + + + { private Context context; + private List iconData = new ArrayList<>(); + private List itemData = new ArrayList<>(); public HomeRecycleAdapter(Context context) { this.context = context; } + public void setItemData(@Nullable List icons, @Nullable List items) { + this.iconData = icons; + this.itemData = items; + } + @NonNull @Override public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -30,7 +40,7 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - holder.bindView(context, position); + holder.bindView(position); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override @@ -43,7 +53,7 @@ @Override public int getItemCount() { - return Constant.ITEMS.size(); + return itemData.size(); } private OnGridItemClickListener clickListener; @@ -56,7 +66,7 @@ this.clickListener = onGridItemClickListener; } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { private ImageView imageView; private TextView textView; @@ -67,9 +77,9 @@ textView = itemView.findViewById(R.id.textView); } - void bindView(Context context, int position) { - imageView.setBackgroundResource(Constant.ICONS.get(position)); - textView.setText(Constant.ITEMS.get(position)); + void bindView(int position) { + imageView.setBackgroundResource(iconData.get(position)); + textView.setText(itemData.get(position)); } } } diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index b9c4615..d9b10e0 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; import java.util.ArrayList; @@ -62,7 +63,10 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - Glide.with(context).load(mediaList.get(position)).into(holder.imageView); + Glide.with(context) + .load(mediaList.get(position)) + .apply(new RequestOptions().error(R.drawable.ic_load_error)) + .into(holder.imageView); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/casic/dcms/base/BaseActivity.java b/app/src/main/java/com/casic/dcms/base/BaseActivity.java index caf0356..2ca87fe 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseActivity.java +++ b/app/src/main/java/com/casic/dcms/base/BaseActivity.java @@ -17,8 +17,8 @@ setContentView(initLayoutView()); ButterKnife.bind(this); QMUIStatusBarHelper.translucent(this);//沉浸式状态栏 - setupTopBarLayout(); initData(); + setupTopBarLayout(); initEvent(); } diff --git a/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java new file mode 100644 index 0000000..8de58a4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java @@ -0,0 +1,78 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CommonSentenceBean { + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 请及时处理 + * id : 156 + * value : 请及时处理 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java new file mode 100644 index 0000000..5258d89 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CommonSentenceBean; +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 CaseCommonSentenceModelImpl implements ICaseCommonSentenceModel { + + private OnGetCommonSentenceListener sentenceListener; + + public CaseCommonSentenceModelImpl(OnGetCommonSentenceListener commonSentenceListener) { + this.sentenceListener = commonSentenceListener; + } + + public interface OnGetCommonSentenceListener { + void onSuccess(CommonSentenceBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCommonSentenceResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (sentenceListener != null) { + sentenceListener.onFailure(e); + } + } + + @Override + public void onNext(CommonSentenceBean resultBean) { + if (resultBean != null) { + sentenceListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java new file mode 100644 index 0000000..a8cb3fc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java @@ -0,0 +1,53 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseUpdateSuperviseModelImpl implements ICaseUpdateSuperviseModel { + + private OnUpdateSuperviseListener listener; + + public CaseUpdateSuperviseModelImpl(OnUpdateSuperviseListener updateSuperviseListener) { + this.listener = updateSuperviseListener; + } + + /** + * 数据回调接口 + */ + public interface OnUpdateSuperviseListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String superviseRemarks) { + Observable observable = RetrofitServiceManager.getUpdateSuperviseResult(id, superviseRemarks); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java new file mode 100644 index 0000000..263ef6c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseCommonSentenceModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java new file mode 100644 index 0000000..518d602 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseUpdateSuperviseModel { + Subscription sendRetrofitRequest(String id, String superviseRemarks); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java new file mode 100644 index 0000000..6b65f13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseCommonSentenceModelImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; + +public class CaseCommonSentencePresenterImpl extends BasePresenter implements ICaseCommonSentencePresenter, + CaseCommonSentenceModelImpl.OnGetCommonSentenceListener { + + private ICaseCommonSentenceView view; + private CaseCommonSentenceModelImpl actionModel; + + public CaseCommonSentencePresenterImpl(ICaseCommonSentenceView commonSentenceView) { + this.view = commonSentenceView; + actionModel = new CaseCommonSentenceModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CommonSentenceBean resultBean) { + view.obtainCommonSentenceData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java new file mode 100644 index 0000000..66e1f44 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseUpdateSuperviseModelImpl; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; + +public class CaseUpdateSupervisePresenterImpl extends BasePresenter implements ICaseUpdateSupervisePresenter, + CaseUpdateSuperviseModelImpl.OnUpdateSuperviseListener { + + private ICaseUpdateSuperviseView view; + private CaseUpdateSuperviseModelImpl actionModel; + + public CaseUpdateSupervisePresenterImpl(ICaseUpdateSuperviseView updateSuperviseView) { + this.view = updateSuperviseView; + actionModel = new CaseUpdateSuperviseModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String superviseRemarks) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, superviseRemarks)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainUpdateSuperviseData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java new file mode 100644 index 0000000..1f8bd09 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseCommonSentencePresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java new file mode 100644 index 0000000..f61f9b2 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseUpdateSupervisePresenter { + void onReadyRetrofitRequest(String id, String superviseRemarks); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java new file mode 100644 index 0000000..9c7b08b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CommonSentenceBean; + +public interface ICaseCommonSentenceView { + void obtainCommonSentenceData(CommonSentenceBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java new file mode 100644 index 0000000..10bcf5a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICaseUpdateSuperviseView { + void showProgress(); + + void hideProgress(); + + void obtainUpdateSuperviseData(ActionResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java index ad70b7a..9143db8 100644 --- a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.ui; +import android.view.View; + +import androidx.core.content.ContextCompat; + import com.bumptech.glide.Glide; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.luck.picture.lib.photoview.PhotoView; -import com.qmuiteam.qmui.util.QMUIStatusBarHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; import butterknife.BindView; @@ -15,6 +19,8 @@ **/ public class BigPictureActivity extends BaseActivity { + @BindView(R.id.imageTopLayout) + QMUITopBarLayout imageTopLayout; @BindView(R.id.photoView) PhotoView photoView; @@ -25,37 +31,24 @@ @Override protected void setupTopBarLayout() { - QMUIStatusBarHelper.setStatusBarLightMode(this); + imageTopLayout.setTitle("查看大图").setTextColor(ContextCompat.getColor(this, R.color.white)); + imageTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + imageTopLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); } @Override public void initData() { -// String mediaJson = getIntent().getStringExtra("mediaJson"); -// -// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() { -// }.getType()); -// -// list = new ArrayList<>(); -// assert mediaList != null; -// for (LocalMedia media : mediaList) { -// list.add(media.getRealPath()); -// } String path = getIntent().getStringExtra("path"); Glide.with(this).load(path).into(photoView); } @Override public void initEvent() { -// //轮播图 -// bigImageBanner.setImageLoader(new ImageLoader() { -// -// @Override -// public void displayImage(Context context, Object path, ImageView imageView) { -// Glide.with(context).load(path).into(imageView); -// } -// }); -// bigImageBanner.isAutoPlay(false); -// bigImageBanner.setImages(list); -// bigImageBanner.start(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index 01a3807..7548cfc 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -329,7 +329,7 @@ caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java new file mode 100644 index 0000000..d4dba38 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -0,0 +1,505 @@ +package com.casic.dcms.ui; + +import android.content.DialogInterface; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseNextNodeBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseHandleView; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseNextNodeView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.IUploadFileView; +import com.casic.dcms.utils.FileUtils; +import com.casic.dcms.utils.GlideLoadEngine; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.luck.picture.lib.PictureSelector; +import com.luck.picture.lib.config.PictureConfig; +import com.luck.picture.lib.config.PictureMimeType; +import com.luck.picture.lib.entity.LocalMedia; +import com.luck.picture.lib.tools.PictureFileUtils; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, + ICaseHandleView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @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) + EditText casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.caseHandleView) + TextView caseHandleView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseStartTimeView) + TextView caseStartTimeView; + @BindView(R.id.caseEndTimeView) + TextView caseEndTimeView; + @BindView(R.id.caseHandleResultView) + TextView caseHandleResultView; + @BindView(R.id.caseHandleRecyclerView) + RecyclerView caseHandleRecyclerView; + @BindView(R.id.addImageView) + ImageView addImageView; + @BindView(R.id.caseReasonView) + EditText caseReasonView; + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private String changeState; + private String caseReason; + private String approvalResult; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private List largeClassBeans = new ArrayList<>(); + private List smallClassBeans = new ArrayList<>(); + private List realPaths = new ArrayList<>();//真实图片路径 + private List mediaList = new ArrayList<>();//上传到服务器的数据集 + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private CaseNextNodePresenterImpl caseNextNodePresenter; + private UploadImagePresenterImpl uploadImagePresenter; + private CaseHandlePresenterImpl caseHandlePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handle_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseNextNodePresenter = new CaseNextNodePresenterImpl(this); + uploadImagePresenter = new UploadImagePresenterImpl(this); + caseHandlePresenter = new CaseHandlePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @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()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + caseStartTimeView.setText(data.getCreateTime()); + caseEndTimeView.setText(data.getNodeLimittime()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeTypeView.setText("无小类"); + } else { + caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 + } + caseSmallTypeView.setText("请选择"); + } + } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallTypeView.setText("无小类"); + } else { + caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 + } + } + } + + @Override + public void obtainNextNodeData(CaseNextNodeBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处理结果"); + for (CaseNextNodeBean.DataBean dataBean : dataBeans) { + 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(); + + CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); + caseHandleResultView.setText(dataBean.getNextOperation()); + changeState = String.valueOf(dataBean.getNextState()); + approvalResult = dataBean.getApprovalResult(); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseClassLayout: + 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(); + + caseTypeView.setText(tag); + //获取案卷大类 + caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseLargeTypeView.setText(tag); + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseSmallTypeView.setText(tag); + } + }).build().show(); + } + } + break; + case R.id.caseHandleResultLayout: + caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); + break; + case R.id.addImageView: + new QMUIDialog.MenuDialogBuilder(this) + .addItem("相册中选取", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //选图 + selectPicture(); + } + }) + .addItem("相机拍照", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //拍照 + takePicture(); + } + }) + .create().show(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String handleResult = caseHandleResultView.getText().toString(); + if (handleResult.equals("请选择")) { + ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); + return; + } + if (handleResult.equals("处理完成")) { + //选择处理完成时,处理图片必传。至少一张,最多两张 + if (mediaList.size() < 1 || mediaList.size() > 2) { + ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); + return; + } + } + if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { + caseReason = caseReasonView.getText().toString(); + if (TextUtils.isEmpty(caseReason)) { + ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); + return; + } + } + caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), + changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); + } + + private void selectPicture() { + PictureSelector.create(this) + .openGallery(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(2) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.CHOOSE_REQUEST); + } + + private void takePicture() { + PictureSelector.create(this) + .openCamera(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(1) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.REQUEST_CAMERA); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == RESULT_OK) { + switch (requestCode) { + case PictureConfig.CHOOSE_REQUEST: + List selectList = PictureSelector.obtainMultipleResult(data); + for (LocalMedia media : selectList) { + String mediaCompressPath = media.getCompressPath(); + uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); + } + break; + case PictureConfig.REQUEST_CAMERA: + LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); + uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); + break; + default: + break; + } + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUploadAudioResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainUploadImageResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + PictureFileUtils.deleteAllCacheDirFile(this); + /** + * 系统路径static拼接图片返回路径 + * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg + */ + //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg + String url = resultBean.getData(); + mediaList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(realPaths); + caseHandleRecyclerView.setVisibility(View.VISIBLE); + caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); + caseHandleRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(realPaths.get(position)); + } + }); + //删除按钮点击事件 + imageAdapter.setDeleteView(true); + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } + } + + @Override + public void obtainUploadVideoResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainCaseHandleResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseNextNodePresenter != null) { + caseNextNodePresenter.disposeRetrofitRequest(); + } + if (uploadImagePresenter != null) { + uploadImagePresenter.disposeRetrofitRequest(); + } + if (caseHandlePresenter != null) { + caseHandlePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java deleted file mode 100644 index bd187c5..0000000 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java +++ /dev/null @@ -1,500 +0,0 @@ -package com.casic.dcms.ui; - -import android.content.DialogInterface; -import android.content.Intent; -import android.text.TextUtils; -import android.view.View; -import android.widget.EditText; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.Nullable; -import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.adapter.ImageRecycleViewAdapter; -import com.casic.dcms.base.BaseCaseActivity; -import com.casic.dcms.bean.ActionResultBean; -import com.casic.dcms.bean.CaseDetailBean; -import com.casic.dcms.bean.CaseLargeClassBean; -import com.casic.dcms.bean.CaseNextNodeBean; -import com.casic.dcms.bean.CaseSmallClassBean; -import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; -import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; -import com.casic.dcms.mvp.view.ICaseDetailView; -import com.casic.dcms.mvp.view.ICaseHandleView; -import com.casic.dcms.mvp.view.ICaseLargeClassView; -import com.casic.dcms.mvp.view.ICaseNextNodeView; -import com.casic.dcms.mvp.view.ICaseSmallClassView; -import com.casic.dcms.mvp.view.IUploadFileView; -import com.casic.dcms.utils.FileUtils; -import com.casic.dcms.utils.GlideLoadEngine; -import com.casic.dcms.utils.ItemDecorationSpace; -import com.casic.dcms.utils.StringHelper; -import com.casic.dcms.utils.ToastHelper; -import com.luck.picture.lib.PictureSelector; -import com.luck.picture.lib.config.PictureConfig; -import com.luck.picture.lib.config.PictureMimeType; -import com.luck.picture.lib.entity.LocalMedia; -import com.luck.picture.lib.tools.PictureFileUtils; -import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; -import com.qmuiteam.qmui.widget.dialog.QMUIDialog; -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; - -import butterknife.BindView; -import butterknife.OnClick; - -public class CaseHandleOvertimeDetailActivity extends BaseCaseActivity implements View.OnClickListener, - ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, - ICaseHandleView { - - @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) - EditText casePlaceView; - @BindView(R.id.caseSituationView) - TextView caseSituationView; - @BindView(R.id.caseHandleView) - TextView caseHandleView; - @BindView(R.id.casePicRecyclerView) - RecyclerView casePicRecyclerView; - @BindView(R.id.caseStartTimeView) - TextView caseStartTimeView; - @BindView(R.id.caseEndTimeView) - TextView caseEndTimeView; - @BindView(R.id.caseHandleResultView) - TextView caseHandleResultView; - @BindView(R.id.caseHandleRecyclerView) - RecyclerView caseHandleRecyclerView; - @BindView(R.id.addImageView) - ImageView addImageView; - @BindView(R.id.caseReasonView) - EditText caseReasonView; - @BindView(R.id.submitButton) - QMUIRoundButton submitButton; - - private String id; - private String changeState; - private String caseReason; - private String approvalResult; - private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); - private List largeClassBeans = new ArrayList<>(); - private List smallClassBeans = new ArrayList<>(); - private List realPaths = new ArrayList<>();//真实图片路径 - private List mediaList = new ArrayList<>();//上传到服务器的数据集 - - private CaseDetailPresenterImpl caseDetailPresenter; - private CaseLargeClassPresenterImpl caseLargeClassPresenter; - private CaseSmallClassPresenterImpl caseSmallClassPresenter; - private CaseNextNodePresenterImpl caseNextNodePresenter; - private UploadImagePresenterImpl uploadImagePresenter; - private CaseHandlePresenterImpl caseHandlePresenter; - - private QMUITipDialog submitDialog; - - @Override - public int initLayoutView() { - return R.layout.activity_case_handle_overtime; - } - - @Override - protected String setTitleName() { - return "超时案卷"; - } - - @Override - public void initData() { - id = getIntent().getStringExtra("id"); - caseDetailPresenter = new CaseDetailPresenterImpl(this); - caseDetailPresenter.onReadyRetrofitRequest(id); - - caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); - caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); - caseNextNodePresenter = new CaseNextNodePresenterImpl(this); - uploadImagePresenter = new UploadImagePresenterImpl(this); - caseHandlePresenter = new CaseHandlePresenterImpl(this); - - submitDialog = new QMUITipDialog.Builder(this) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord("提交中,请稍后") - .create(); - } - - @Override - public void initEvent() { - submitButton.setChangeAlphaWhenPress(true); - } - - @Override - public void obtainCaseDetailData(CaseDetailBean resultBean) { - if (resultBean.isSuccess()) { - this.data = resultBean.getData().get(0); - caseTypeView.setText(data.getEorcName()); - caseLargeTypeView.setText(data.getCasetypeName()); - caseSmallTypeView.setText(data.getCasetypeDetailName()); - caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro()); - caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); - caseStartTimeView.setText(data.getCreateTime()); - caseEndTimeView.setText(data.getNodeLimittime()); - - String verifyImages = data.getFileIdVerify(); - if (!TextUtils.isEmpty(verifyImages)) { - List urls = new ArrayList<>(); - String[] split = verifyImages.split(","); - for (String s : split) { - urls.add(StringHelper.appendCompleteURL(s)); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(urls); - casePicRecyclerView.setVisibility(View.VISIBLE); - casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); - casePicRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(urls.get(position)); - } - }); - imageAdapter.setDeleteView(false); - } - } - } - - private void showBigImage(String path) { - Intent intent = new Intent(this, BigPictureActivity.class); - intent.putExtra("path", path); - startActivity(intent); - } - - @Override - public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { - if (largeClassBean.isSuccess()) { - //设置大类数据 - this.largeClassBeans = largeClassBean.getData(); - if (largeClassBeans.size() == 0) { - caseLargeTypeView.setText("无小类"); - } else { - caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 - } - caseSmallTypeView.setText("请选择"); - } - } - - @Override - public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { - if (smallClassBean.isSuccess()) { - //设置大类数据 - this.smallClassBeans = smallClassBean.getData(); - if (smallClassBeans.size() == 0) { - caseSmallTypeView.setText("无小类"); - } else { - caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 - } - } - } - - @Override - public void obtainNextNodeData(CaseNextNodeBean resultBean) { - if (resultBean.isSuccess()) { - List dataBeans = resultBean.getData(); - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("处理结果"); - for (CaseNextNodeBean.DataBean dataBean : dataBeans) { - 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(); - - CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); - caseHandleResultView.setText(dataBean.getNextOperation()); - changeState = String.valueOf(dataBean.getNextState()); - approvalResult = dataBean.getApprovalResult(); - } - }).build().show(); - } else { - ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); - } - } - - @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) - @Override - public void onClick(View v) { - switch (v.getId()) { - case R.id.caseClassLayout: - 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(); - - caseTypeView.setText(tag); - //获取案卷大类 - caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); - } - }).build().show(); - break; - case R.id.caseLargeClassLayout: - if (largeClassBeans != null) { - if (largeClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷大类"); - for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { - sheetBuilder.addItem(dataBean.getTypeName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseLargeTypeView.setText(tag); - //获取案卷小类 - CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); - String typeId = dataBean.getId(); - caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); - } - }).build().show(); - } - } - break; - case R.id.caseSmallClassLayout: - if (smallClassBeans != null) { - if (smallClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷小类"); - for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { - sheetBuilder.addItem(dataBean.getTypeDetailName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseSmallTypeView.setText(tag); - } - }).build().show(); - } - } - break; - case R.id.caseHandleResultLayout: - caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); - break; - case R.id.addImageView: - new QMUIDialog.MenuDialogBuilder(this) - .addItem("相册中选取", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //选图 - selectPicture(); - } - }) - .addItem("相机拍照", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //拍照 - takePicture(); - } - }) - .create().show(); - break; - case R.id.submitButton: - submitCase();//案卷提交 - break; - default: - break; - } - } - - private void submitCase() { - String handleResult = caseHandleResultView.getText().toString(); - if (handleResult.equals("请选择")) { - ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); - return; - } - if (handleResult.equals("处理完成")) { - //选择处理完成时,处理图片必传。至少一张,最多两张 - if (mediaList.size() < 1 || mediaList.size() > 2) { - ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); - return; - } - } - if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { - caseReason = caseReasonView.getText().toString(); - if (TextUtils.isEmpty(caseReason)) { - ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); - return; - } - } - caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), - changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); - } - - private void selectPicture() { - PictureSelector.create(this) - .openGallery(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(2) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.CHOOSE_REQUEST); - } - - private void takePicture() { - PictureSelector.create(this) - .openCamera(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(1) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.REQUEST_CAMERA); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if (resultCode == RESULT_OK) { - switch (requestCode) { - case PictureConfig.CHOOSE_REQUEST: - List selectList = PictureSelector.obtainMultipleResult(data); - for (LocalMedia media : selectList) { - String mediaCompressPath = media.getCompressPath(); - uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); - } - break; - case PictureConfig.REQUEST_CAMERA: - LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); - uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); - break; - default: - break; - } - } - } - - @Override - public void showProgress() { - submitDialog.show(); - } - - @Override - public void hideProgress() { - submitDialog.hide(); - } - - @Override - public void obtainUploadAudioResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainUploadImageResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - PictureFileUtils.deleteAllCacheDirFile(this); - /** - * 系统路径static拼接图片返回路径 - * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg - */ - //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String url = resultBean.getData(); - mediaList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(realPaths); - caseHandleRecyclerView.setVisibility(View.VISIBLE); - caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); - caseHandleRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(realPaths.get(position)); - } - }); - //删除按钮点击事件 - imageAdapter.setDeleteView(true); - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); - } - } - }); - } - } - - @Override - public void obtainUploadVideoResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainCaseHandleResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); - finish(); - } else { - ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); - } - } - - @Override - protected void onDestroy() { - super.onDestroy(); - if (caseDetailPresenter != null) { - caseDetailPresenter.disposeRetrofitRequest(); - } - if (caseLargeClassPresenter != null) { - caseLargeClassPresenter.disposeRetrofitRequest(); - } - if (caseSmallClassPresenter != null) { - caseSmallClassPresenter.disposeRetrofitRequest(); - } - if (caseNextNodePresenter != null) { - caseNextNodePresenter.disposeRetrofitRequest(); - } - if (uploadImagePresenter != null) { - uploadImagePresenter.disposeRetrofitRequest(); - } - if (caseHandlePresenter != null) { - caseHandlePresenter.disposeRetrofitRequest(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java new file mode 100644 index 0000000..5ea5403 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -0,0 +1,145 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { + + @BindView(R.id.detailTopLayout) + QMUITopBarLayout detailTopLayout; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @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; + + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private CaseDetailPresenterImpl caseDetailPresenter; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handled_detail; + } + + @Override + protected void setupTopBarLayout() { + detailTopLayout.setTitle("已办案卷").setTextColor(ContextCompat.getColor(this, R.color.white)); + detailTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + detailTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + String id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + } + + @Override + public void initEvent() { + + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseHandleStatusView.setText(data.getCaseStateName()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @OnClick(R.id.handleLayout) + @Override + public void onClick(View v) { + if (v.getId() == R.id.handleLayout) { + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java new file mode 100644 index 0000000..3b2d3d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -0,0 +1,228 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.TextView; + +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.presenter.CaseCommonSentencePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseUpdateSupervisePresenterImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseOverTimeView) + TextView caseOverTimeView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @BindView(R.id.casePlaceView) + EditText casePlaceView; + @BindView(R.id.caseDescriptionView) + TextView caseDescriptionView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseHandleResultView) + EditText caseHandleResultView; + @BindView(R.id.caseCommonSentenceView) + TextView caseCommonSentenceView; + + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseCommonSentencePresenterImpl commonSentencePresenter; + private CaseUpdateSupervisePresenterImpl updateSupervisePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_todo_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + commonSentencePresenter = new CaseCommonSentencePresenterImpl(this); + updateSupervisePresenter = new CaseUpdateSupervisePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @Override + public void initEvent() { + + } + + @OnClick({R.id.caseHandleLayout, R.id.caseCommonSentenceLayout, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseHandleLayout: + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + break; + case R.id.caseCommonSentenceLayout: + commonSentencePresenter.onReadyRetrofitRequest(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String remarks = caseHandleResultView.getText().toString(); + if (TextUtils.isEmpty(remarks)) { + ToastHelper.showToast("督办意见不能为空", ToastHelper.WARING); + return; + } + updateSupervisePresenter.onReadyRetrofitRequest(id, remarks); + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseOverTimeView.setText(data.getNodeLimittime()); + caseHandleStatusView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + casePlaceView.setText(data.getFieldintro()); + caseDescriptionView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainCommonSentenceData(CommonSentenceBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("常用语句"); + for (CommonSentenceBean.DataBean dataBean : dataBeans) { + 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(); + + CommonSentenceBean.DataBean dataBean = dataBeans.get(position); + caseCommonSentenceView.setText(dataBean.getName()); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUpdateSuperviseData(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷督办提交成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷督办提交失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (commonSentencePresenter != null) { + commonSentencePresenter.disposeRetrofitRequest(); + } + if (updateSupervisePresenter != null) { + updateSupervisePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 3060e1b..af6a9fe 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -191,7 +191,7 @@ caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); - caseHandleView.setText(data.getUrgeRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); caseSituationView.setText(data.getDescription()); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index 7816221..3989633 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -28,6 +28,7 @@ import com.casic.dcms.ui.OvertimeCaseActivity; import com.casic.dcms.ui.PersonOnlineActivity; import com.casic.dcms.ui.UrgentCaseActivity; +import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.StringHelper; import com.qmuiteam.qmui.widget.QMUIRadiusImageView; @@ -69,62 +70,12 @@ @Override protected void initEvent() { - HomeRecycleAdapter adapter = new HomeRecycleAdapter(context); - homeRecyclerView.setLayoutManager(new GridLayoutManager(context, 3)); - homeRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - Intent intent = new Intent(); - switch (position) { - case 0: - intent.setClass(context, CaseUploadActivity.class); - break; - case 1: - intent.setClass(context, CaseUploadQuicklyActivity.class); - break; - case 2: - intent.setClass(context, FivePackageUploadActivity.class); - break; - case 3: - intent.setClass(context, CaseVerifyActivity.class); - break; - case 4: - intent.setClass(context, CaseCheckActivity.class); - break; - case 5: - intent.setClass(context, CaseHandleActivity.class); - break; - case 6: - intent.setClass(context, UrgentCaseActivity.class); - break; - case 7: - intent.setClass(context, OvertimeCaseActivity.class); - break; - case 8: - intent.setClass(context, DataAnalysisActivity.class); - break; - case 9: - intent.setClass(context, PersonOnlineActivity.class); - break; - case 10: - intent.setClass(context, CaseSearchActivity.class); - break; - case 11: - intent.setClass(context, MapWatchViewActivity.class); - break; - default: - break; - } - startActivity(intent); - } - }); + } @SuppressLint("SetTextI18n") @Override public void obtainUserData(UserBean userBean) { -// Log.d(TAG, "obtainUserData: " + new Gson().toJson(userBean)); if (userBean.isSuccess()) { //QMUIRadiusImageView无法动态设置圆形头像,借助Glide实现圆形头像 Glide.with(this).load(R.mipmap.app_logo).apply(RequestOptions.circleCropTransform()).into(userIconView); @@ -137,6 +88,121 @@ StringHelper.saveUserPhone(data.getPhone()); StringHelper.saveUserDept(data.getDeptName()); StringHelper.saveUserDeptId(data.getDeptId()); + + //权限控制 + String roleTip = data.getRoleTips().get(0); + HomeRecycleAdapter adapter = new HomeRecycleAdapter(context); + homeRecyclerView.setLayoutManager(new GridLayoutManager(context, 3)); + switch (roleTip) { + case "supervisor": + //All + adapter.setItemData(Constant.ALL_ICONS, Constant.ALL_ITEMS); + adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { + @Override + public void onClick(int position) { + Intent intent = new Intent(); + switch (position) { + case 0: + intent.setClass(context, CaseUploadActivity.class); + break; + case 1: + intent.setClass(context, CaseUploadQuicklyActivity.class); + break; + case 2: + intent.setClass(context, FivePackageUploadActivity.class); + break; + case 3: + intent.setClass(context, CaseVerifyActivity.class); + break; + case 4: + intent.setClass(context, CaseCheckActivity.class); + break; + case 5: + intent.setClass(context, CaseHandleActivity.class); + break; + case 6: + intent.setClass(context, UrgentCaseActivity.class); + break; + case 7: + intent.setClass(context, OvertimeCaseActivity.class); + break; + case 8: + intent.setClass(context, DataAnalysisActivity.class); + break; + case 9: + intent.setClass(context, PersonOnlineActivity.class); + break; + case 10: + intent.setClass(context, CaseSearchActivity.class); + break; + case 11: + intent.setClass(context, MapWatchViewActivity.class); + break; + default: + break; + } + startActivity(intent); + } + }); + break; +// case "process": +// //案卷处理、案卷查询 +// adapter.setItemData(Constant.PROCESS_ICONS, Constant.PROCESS_ITEMS); +// adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { +// @Override +// public void onClick(int position) { +// Intent intent = new Intent(); +// switch (position) { +// case 0: +// intent.setClass(context, CaseHandleActivity.class); +// break; +// case 1: +// intent.setClass(context, CaseSearchActivity.class); +// break; +// default: +// break; +// } +// startActivity(intent); +// } +// }); +// break; +// case "leader": +// //案卷上报、紧急要件、超时督办、统计分析、在岗人员、案卷查询 +// adapter.setItemData(Constant.LEADER_ICONS, Constant.LEADER_ITEMS); +// adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { +// @Override +// public void onClick(int position) { +// Intent intent = new Intent(); +// switch (position) { +// case 0: +// intent.setClass(context, CaseUploadActivity.class); +// break; +// case 1: +// intent.setClass(context, UrgentCaseActivity.class); +// break; +// case 2: +// intent.setClass(context, OvertimeCaseActivity.class); +// break; +// case 3: +// intent.setClass(context, DataAnalysisActivity.class); +// break; +// case 4: +// intent.setClass(context, PersonOnlineActivity.class); +// break; +// case 5: +// intent.setClass(context, CaseSearchActivity.class); +// break; +// default: +// break; +// } +// startActivity(intent); +// } +// }); +// break; + default: + break; + } + homeRecyclerView.setAdapter(adapter); } } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java index 430f8be..fa2df7a 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandledBean; import com.casic.dcms.mvp.presenter.CaseHandledListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandledListView; +import com.casic.dcms.ui.CaseHandledDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -128,10 +130,9 @@ adapter.setOnItemClickListener(new CaseHandledAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandledDetailActivity.class); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java index 502c288..05306fe 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -130,10 +132,10 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "待办案卷"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java index 25877de..743a092 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java @@ -17,7 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; -import com.casic.dcms.ui.CaseHandleOvertimeDetailActivity; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -133,7 +133,8 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { - Intent intent = new Intent(context, CaseHandleOvertimeDetailActivity.class); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "超时案卷"); intent.putExtra("id", dataBeans.get(position).getId()); startActivity(intent); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java index f957e26..ae0b3e5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -131,10 +133,10 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "紧急案卷"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java index 18178eb..5d51969 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.OvertimeCaseBean; import com.casic.dcms.mvp.presenter.OvertimeCaseListPresenterImpl; import com.casic.dcms.mvp.view.IOvertimeCaseListView; +import com.casic.dcms.ui.CaseTodoDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -128,10 +130,10 @@ adapter.setOnItemClickListener(new OvertimeCaseAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseTodoDetailActivity.class); + intent.putExtra("title", "超时督办"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java index 19c6766..51bdbd0 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.mvp.presenter.UrgentCaseListPresenterImpl; import com.casic.dcms.mvp.view.IUrgentCaseListView; +import com.casic.dcms.ui.CaseTodoDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -129,10 +131,10 @@ adapter.setOnItemClickListener(new UrgentCaseAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseTodoDetailActivity.class); + intent.putExtra("title", "紧急要件"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } 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 233b5d1..2e68d04 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -9,18 +9,38 @@ import java.util.List; public class Constant { - public static final List ICONS = Arrays.asList( + public static final String[] USER_PERMISSIONS = { + Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION, + Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO, + Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE, + Manifest.permission.CALL_PHONE}; + + public static final List ALL_ICONS = Arrays.asList( R.mipmap.ajsb, R.mipmap.kssb, R.mipmap.sbsb, R.mipmap.ajhs, R.mipmap.ajhc, R.mipmap.ajcl, R.mipmap.jjyj, R.mipmap.csdb, R.mipmap.tjfx, R.mipmap.zgry, R.mipmap.ajcx, R.mipmap.dtck); - public static final List ITEMS = Arrays.asList( + public static final List ALL_ITEMS = Arrays.asList( "案卷上报", "快速上报", "五包上报", "案卷核实", "案卷核查", "案卷处理", "紧急要件", "超时督办", "统计分析", "在岗人员", "案卷查询", "地图查看"); + public static final List PROCESS_ICONS = Arrays.asList( + R.mipmap.ajcl, R.mipmap.ajcx); + + public static final List PROCESS_ITEMS = Arrays.asList( + "案卷处理", "案卷查询"); + + public static final List LEADER_ICONS = Arrays.asList( + R.mipmap.ajsb, R.mipmap.jjyj, R.mipmap.csdb, + R.mipmap.tjfx, R.mipmap.zgry, R.mipmap.ajcx); + + public static final List LEADER_ITEMS = Arrays.asList( + "案卷上报", "紧急要件", "超时督办", + "统计分析", "在岗人员", "案卷查询"); + public static final List ANALYSIS_ICONS = Arrays.asList( R.mipmap.sbsb, R.mipmap.jjyj, R.mipmap.csdb, R.mipmap.ajcl, R.mipmap.tjfx, R.mipmap.ajhc); @@ -29,17 +49,6 @@ "问题来源", "案卷状态", "高发问题", "街道统计", "处理统计", "趋势分析"); - public static final List CATEGORY = Arrays.asList("请选择", "情况属实", "情况不属实"); - - public static final String[] USER_PERMISSIONS = { - Manifest.permission.ACCESS_COARSE_LOCATION, - Manifest.permission.ACCESS_FINE_LOCATION, - Manifest.permission.CAMERA, - Manifest.permission.READ_EXTERNAL_STORAGE, - Manifest.permission.WRITE_EXTERNAL_STORAGE, - Manifest.permission.RECORD_AUDIO, - Manifest.permission.CALL_PHONE}; - //先预置8种颜色 public static final int[] PIE_COLORS = {Color.rgb(28, 197, 220), Color.rgb(255, 223, 107), Color.rgb(242, 17, 112), diff --git a/app/src/main/java/com/casic/dcms/utils/StringHelper.java b/app/src/main/java/com/casic/dcms/utils/StringHelper.java index 1201063..5aeb8f6 100644 --- a/app/src/main/java/com/casic/dcms/utils/StringHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/StringHelper.java @@ -60,7 +60,9 @@ return ""; } String data = url.replace("\\", "/"); - return SaveKeyValues.getValue(Constant.IP_KEY, "http://111.198.10.15:11409") + "/static/" + data; + String imagePath = SaveKeyValues.getValue(Constant.IP_KEY, "http://111.198.10.15:11409") + "/static/" + data; + Log.d(TAG, "appendCompleteURL: "+imagePath); + return imagePath; } public static String reformatURL(List urls) { 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 ec230dd..16bafa1 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 @@ -14,6 +14,7 @@ import com.casic.dcms.bean.CaseStatusBean; import com.casic.dcms.bean.CaseVerifiedBean; import com.casic.dcms.bean.CaseVerifyBean; +import com.casic.dcms.bean.CommonSentenceBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; import com.casic.dcms.bean.LoginResultBean; @@ -345,6 +346,12 @@ @Query("caseState") String caseState); /** + * 获取常见语句 + */ + @GET("/dict/code/commonApproval") + Observable obtainCommonSentence(@Header("token") String token); + + /** * 案卷处理 *

* 案卷核实-仅添加核实意见/核实情况/核实图片 @@ -401,4 +408,12 @@ @Field("communityCode") String communityCode, @Field("gridId") String gridId, @Field("fieldintro") String fieldintro); + + /** + * 紧急要件-超时督办 + */ + @GET("/casedetail/updateSuperviseRemarks") + Observable updateSuperviseRemarks(@Header("token") String token, + @Query("id") String id, + @Query("superviseRemarks") String superviseRemarks); } 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 0c77b61..226b287 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 @@ -16,6 +16,7 @@ import com.casic.dcms.bean.CaseStatusBean; import com.casic.dcms.bean.CaseVerifiedBean; import com.casic.dcms.bean.CaseVerifyBean; +import com.casic.dcms.bean.CommonSentenceBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; import com.casic.dcms.bean.LoginResultBean; @@ -397,6 +398,15 @@ } /** + * 获取常见语句 + */ + public static Observable getCommonSentenceResult() { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainCommonSentence(TokenHelper.getToken()); + } + + /** * 案卷处理 *

* 案卷核实-仅添加核实意见/核实情况/核实图片 @@ -445,4 +455,13 @@ remarks, fileId, eorc, casetypeCode, casetypeDetailCode, lng, lat, caseLevel, areaCode, streetCode, communityCode, gridId, fieldintro); } + + /** + * 紧急要件-超时督办 + */ + public static Observable getUpdateSuperviseResult(String id, String superviseRemarks) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.updateSuperviseRemarks(TokenHelper.getToken(), id, superviseRemarks); + } } diff --git a/app/src/main/res/drawable/ic_load_error.xml b/app/src/main/res/drawable/ic_load_error.xml new file mode 100644 index 0000000..5ad71a1 --- /dev/null +++ b/app/src/main/res/drawable/ic_load_error.xml @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/activity_big_pic.xml b/app/src/main/res/layout/activity_big_pic.xml index 551ed62..bc09ace 100644 --- a/app/src/main/res/layout/activity_big_pic.xml +++ b/app/src/main/res/layout/activity_big_pic.xml @@ -1,16 +1,17 @@ - - + android:layout_height="wrap_content" + android:fitsSystemWindows="true" /> + - \ No newline at end of file + android:layout_height="wrap_content" /> + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_case_check_detail.xml b/app/src/main/res/layout/activity_case_check_detail.xml index 607d1eb..58bc5d4 100644 --- a/app/src/main/res/layout/activity_case_check_detail.xml +++ b/app/src/main/res/layout/activity_case_check_detail.xml @@ -16,28 +16,6 @@ android:layout_height="wrap_content" android:orientation="vertical"> - - - - - - - - - diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f6ac20a..2070c95 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -67,12 +67,14 @@ - + - + + + { private Context context; + private List iconData = new ArrayList<>(); + private List itemData = new ArrayList<>(); public HomeRecycleAdapter(Context context) { this.context = context; } + public void setItemData(@Nullable List icons, @Nullable List items) { + this.iconData = icons; + this.itemData = items; + } + @NonNull @Override public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -30,7 +40,7 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - holder.bindView(context, position); + holder.bindView(position); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override @@ -43,7 +53,7 @@ @Override public int getItemCount() { - return Constant.ITEMS.size(); + return itemData.size(); } private OnGridItemClickListener clickListener; @@ -56,7 +66,7 @@ this.clickListener = onGridItemClickListener; } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { private ImageView imageView; private TextView textView; @@ -67,9 +77,9 @@ textView = itemView.findViewById(R.id.textView); } - void bindView(Context context, int position) { - imageView.setBackgroundResource(Constant.ICONS.get(position)); - textView.setText(Constant.ITEMS.get(position)); + void bindView(int position) { + imageView.setBackgroundResource(iconData.get(position)); + textView.setText(itemData.get(position)); } } } diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index b9c4615..d9b10e0 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; import java.util.ArrayList; @@ -62,7 +63,10 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - Glide.with(context).load(mediaList.get(position)).into(holder.imageView); + Glide.with(context) + .load(mediaList.get(position)) + .apply(new RequestOptions().error(R.drawable.ic_load_error)) + .into(holder.imageView); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/casic/dcms/base/BaseActivity.java b/app/src/main/java/com/casic/dcms/base/BaseActivity.java index caf0356..2ca87fe 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseActivity.java +++ b/app/src/main/java/com/casic/dcms/base/BaseActivity.java @@ -17,8 +17,8 @@ setContentView(initLayoutView()); ButterKnife.bind(this); QMUIStatusBarHelper.translucent(this);//沉浸式状态栏 - setupTopBarLayout(); initData(); + setupTopBarLayout(); initEvent(); } diff --git a/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java new file mode 100644 index 0000000..8de58a4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java @@ -0,0 +1,78 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CommonSentenceBean { + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 请及时处理 + * id : 156 + * value : 请及时处理 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java new file mode 100644 index 0000000..5258d89 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CommonSentenceBean; +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 CaseCommonSentenceModelImpl implements ICaseCommonSentenceModel { + + private OnGetCommonSentenceListener sentenceListener; + + public CaseCommonSentenceModelImpl(OnGetCommonSentenceListener commonSentenceListener) { + this.sentenceListener = commonSentenceListener; + } + + public interface OnGetCommonSentenceListener { + void onSuccess(CommonSentenceBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCommonSentenceResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (sentenceListener != null) { + sentenceListener.onFailure(e); + } + } + + @Override + public void onNext(CommonSentenceBean resultBean) { + if (resultBean != null) { + sentenceListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java new file mode 100644 index 0000000..a8cb3fc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java @@ -0,0 +1,53 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseUpdateSuperviseModelImpl implements ICaseUpdateSuperviseModel { + + private OnUpdateSuperviseListener listener; + + public CaseUpdateSuperviseModelImpl(OnUpdateSuperviseListener updateSuperviseListener) { + this.listener = updateSuperviseListener; + } + + /** + * 数据回调接口 + */ + public interface OnUpdateSuperviseListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String superviseRemarks) { + Observable observable = RetrofitServiceManager.getUpdateSuperviseResult(id, superviseRemarks); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java new file mode 100644 index 0000000..263ef6c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseCommonSentenceModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java new file mode 100644 index 0000000..518d602 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseUpdateSuperviseModel { + Subscription sendRetrofitRequest(String id, String superviseRemarks); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java new file mode 100644 index 0000000..6b65f13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseCommonSentenceModelImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; + +public class CaseCommonSentencePresenterImpl extends BasePresenter implements ICaseCommonSentencePresenter, + CaseCommonSentenceModelImpl.OnGetCommonSentenceListener { + + private ICaseCommonSentenceView view; + private CaseCommonSentenceModelImpl actionModel; + + public CaseCommonSentencePresenterImpl(ICaseCommonSentenceView commonSentenceView) { + this.view = commonSentenceView; + actionModel = new CaseCommonSentenceModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CommonSentenceBean resultBean) { + view.obtainCommonSentenceData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java new file mode 100644 index 0000000..66e1f44 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseUpdateSuperviseModelImpl; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; + +public class CaseUpdateSupervisePresenterImpl extends BasePresenter implements ICaseUpdateSupervisePresenter, + CaseUpdateSuperviseModelImpl.OnUpdateSuperviseListener { + + private ICaseUpdateSuperviseView view; + private CaseUpdateSuperviseModelImpl actionModel; + + public CaseUpdateSupervisePresenterImpl(ICaseUpdateSuperviseView updateSuperviseView) { + this.view = updateSuperviseView; + actionModel = new CaseUpdateSuperviseModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String superviseRemarks) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, superviseRemarks)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainUpdateSuperviseData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java new file mode 100644 index 0000000..1f8bd09 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseCommonSentencePresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java new file mode 100644 index 0000000..f61f9b2 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseUpdateSupervisePresenter { + void onReadyRetrofitRequest(String id, String superviseRemarks); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java new file mode 100644 index 0000000..9c7b08b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CommonSentenceBean; + +public interface ICaseCommonSentenceView { + void obtainCommonSentenceData(CommonSentenceBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java new file mode 100644 index 0000000..10bcf5a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICaseUpdateSuperviseView { + void showProgress(); + + void hideProgress(); + + void obtainUpdateSuperviseData(ActionResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java index ad70b7a..9143db8 100644 --- a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.ui; +import android.view.View; + +import androidx.core.content.ContextCompat; + import com.bumptech.glide.Glide; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.luck.picture.lib.photoview.PhotoView; -import com.qmuiteam.qmui.util.QMUIStatusBarHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; import butterknife.BindView; @@ -15,6 +19,8 @@ **/ public class BigPictureActivity extends BaseActivity { + @BindView(R.id.imageTopLayout) + QMUITopBarLayout imageTopLayout; @BindView(R.id.photoView) PhotoView photoView; @@ -25,37 +31,24 @@ @Override protected void setupTopBarLayout() { - QMUIStatusBarHelper.setStatusBarLightMode(this); + imageTopLayout.setTitle("查看大图").setTextColor(ContextCompat.getColor(this, R.color.white)); + imageTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + imageTopLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); } @Override public void initData() { -// String mediaJson = getIntent().getStringExtra("mediaJson"); -// -// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() { -// }.getType()); -// -// list = new ArrayList<>(); -// assert mediaList != null; -// for (LocalMedia media : mediaList) { -// list.add(media.getRealPath()); -// } String path = getIntent().getStringExtra("path"); Glide.with(this).load(path).into(photoView); } @Override public void initEvent() { -// //轮播图 -// bigImageBanner.setImageLoader(new ImageLoader() { -// -// @Override -// public void displayImage(Context context, Object path, ImageView imageView) { -// Glide.with(context).load(path).into(imageView); -// } -// }); -// bigImageBanner.isAutoPlay(false); -// bigImageBanner.setImages(list); -// bigImageBanner.start(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index 01a3807..7548cfc 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -329,7 +329,7 @@ caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java new file mode 100644 index 0000000..d4dba38 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -0,0 +1,505 @@ +package com.casic.dcms.ui; + +import android.content.DialogInterface; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseNextNodeBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseHandleView; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseNextNodeView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.IUploadFileView; +import com.casic.dcms.utils.FileUtils; +import com.casic.dcms.utils.GlideLoadEngine; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.luck.picture.lib.PictureSelector; +import com.luck.picture.lib.config.PictureConfig; +import com.luck.picture.lib.config.PictureMimeType; +import com.luck.picture.lib.entity.LocalMedia; +import com.luck.picture.lib.tools.PictureFileUtils; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, + ICaseHandleView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @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) + EditText casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.caseHandleView) + TextView caseHandleView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseStartTimeView) + TextView caseStartTimeView; + @BindView(R.id.caseEndTimeView) + TextView caseEndTimeView; + @BindView(R.id.caseHandleResultView) + TextView caseHandleResultView; + @BindView(R.id.caseHandleRecyclerView) + RecyclerView caseHandleRecyclerView; + @BindView(R.id.addImageView) + ImageView addImageView; + @BindView(R.id.caseReasonView) + EditText caseReasonView; + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private String changeState; + private String caseReason; + private String approvalResult; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private List largeClassBeans = new ArrayList<>(); + private List smallClassBeans = new ArrayList<>(); + private List realPaths = new ArrayList<>();//真实图片路径 + private List mediaList = new ArrayList<>();//上传到服务器的数据集 + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private CaseNextNodePresenterImpl caseNextNodePresenter; + private UploadImagePresenterImpl uploadImagePresenter; + private CaseHandlePresenterImpl caseHandlePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handle_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseNextNodePresenter = new CaseNextNodePresenterImpl(this); + uploadImagePresenter = new UploadImagePresenterImpl(this); + caseHandlePresenter = new CaseHandlePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @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()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + caseStartTimeView.setText(data.getCreateTime()); + caseEndTimeView.setText(data.getNodeLimittime()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeTypeView.setText("无小类"); + } else { + caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 + } + caseSmallTypeView.setText("请选择"); + } + } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallTypeView.setText("无小类"); + } else { + caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 + } + } + } + + @Override + public void obtainNextNodeData(CaseNextNodeBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处理结果"); + for (CaseNextNodeBean.DataBean dataBean : dataBeans) { + 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(); + + CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); + caseHandleResultView.setText(dataBean.getNextOperation()); + changeState = String.valueOf(dataBean.getNextState()); + approvalResult = dataBean.getApprovalResult(); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseClassLayout: + 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(); + + caseTypeView.setText(tag); + //获取案卷大类 + caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseLargeTypeView.setText(tag); + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseSmallTypeView.setText(tag); + } + }).build().show(); + } + } + break; + case R.id.caseHandleResultLayout: + caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); + break; + case R.id.addImageView: + new QMUIDialog.MenuDialogBuilder(this) + .addItem("相册中选取", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //选图 + selectPicture(); + } + }) + .addItem("相机拍照", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //拍照 + takePicture(); + } + }) + .create().show(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String handleResult = caseHandleResultView.getText().toString(); + if (handleResult.equals("请选择")) { + ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); + return; + } + if (handleResult.equals("处理完成")) { + //选择处理完成时,处理图片必传。至少一张,最多两张 + if (mediaList.size() < 1 || mediaList.size() > 2) { + ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); + return; + } + } + if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { + caseReason = caseReasonView.getText().toString(); + if (TextUtils.isEmpty(caseReason)) { + ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); + return; + } + } + caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), + changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); + } + + private void selectPicture() { + PictureSelector.create(this) + .openGallery(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(2) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.CHOOSE_REQUEST); + } + + private void takePicture() { + PictureSelector.create(this) + .openCamera(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(1) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.REQUEST_CAMERA); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == RESULT_OK) { + switch (requestCode) { + case PictureConfig.CHOOSE_REQUEST: + List selectList = PictureSelector.obtainMultipleResult(data); + for (LocalMedia media : selectList) { + String mediaCompressPath = media.getCompressPath(); + uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); + } + break; + case PictureConfig.REQUEST_CAMERA: + LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); + uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); + break; + default: + break; + } + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUploadAudioResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainUploadImageResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + PictureFileUtils.deleteAllCacheDirFile(this); + /** + * 系统路径static拼接图片返回路径 + * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg + */ + //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg + String url = resultBean.getData(); + mediaList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(realPaths); + caseHandleRecyclerView.setVisibility(View.VISIBLE); + caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); + caseHandleRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(realPaths.get(position)); + } + }); + //删除按钮点击事件 + imageAdapter.setDeleteView(true); + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } + } + + @Override + public void obtainUploadVideoResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainCaseHandleResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseNextNodePresenter != null) { + caseNextNodePresenter.disposeRetrofitRequest(); + } + if (uploadImagePresenter != null) { + uploadImagePresenter.disposeRetrofitRequest(); + } + if (caseHandlePresenter != null) { + caseHandlePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java deleted file mode 100644 index bd187c5..0000000 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java +++ /dev/null @@ -1,500 +0,0 @@ -package com.casic.dcms.ui; - -import android.content.DialogInterface; -import android.content.Intent; -import android.text.TextUtils; -import android.view.View; -import android.widget.EditText; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.Nullable; -import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.adapter.ImageRecycleViewAdapter; -import com.casic.dcms.base.BaseCaseActivity; -import com.casic.dcms.bean.ActionResultBean; -import com.casic.dcms.bean.CaseDetailBean; -import com.casic.dcms.bean.CaseLargeClassBean; -import com.casic.dcms.bean.CaseNextNodeBean; -import com.casic.dcms.bean.CaseSmallClassBean; -import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; -import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; -import com.casic.dcms.mvp.view.ICaseDetailView; -import com.casic.dcms.mvp.view.ICaseHandleView; -import com.casic.dcms.mvp.view.ICaseLargeClassView; -import com.casic.dcms.mvp.view.ICaseNextNodeView; -import com.casic.dcms.mvp.view.ICaseSmallClassView; -import com.casic.dcms.mvp.view.IUploadFileView; -import com.casic.dcms.utils.FileUtils; -import com.casic.dcms.utils.GlideLoadEngine; -import com.casic.dcms.utils.ItemDecorationSpace; -import com.casic.dcms.utils.StringHelper; -import com.casic.dcms.utils.ToastHelper; -import com.luck.picture.lib.PictureSelector; -import com.luck.picture.lib.config.PictureConfig; -import com.luck.picture.lib.config.PictureMimeType; -import com.luck.picture.lib.entity.LocalMedia; -import com.luck.picture.lib.tools.PictureFileUtils; -import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; -import com.qmuiteam.qmui.widget.dialog.QMUIDialog; -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; - -import butterknife.BindView; -import butterknife.OnClick; - -public class CaseHandleOvertimeDetailActivity extends BaseCaseActivity implements View.OnClickListener, - ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, - ICaseHandleView { - - @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) - EditText casePlaceView; - @BindView(R.id.caseSituationView) - TextView caseSituationView; - @BindView(R.id.caseHandleView) - TextView caseHandleView; - @BindView(R.id.casePicRecyclerView) - RecyclerView casePicRecyclerView; - @BindView(R.id.caseStartTimeView) - TextView caseStartTimeView; - @BindView(R.id.caseEndTimeView) - TextView caseEndTimeView; - @BindView(R.id.caseHandleResultView) - TextView caseHandleResultView; - @BindView(R.id.caseHandleRecyclerView) - RecyclerView caseHandleRecyclerView; - @BindView(R.id.addImageView) - ImageView addImageView; - @BindView(R.id.caseReasonView) - EditText caseReasonView; - @BindView(R.id.submitButton) - QMUIRoundButton submitButton; - - private String id; - private String changeState; - private String caseReason; - private String approvalResult; - private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); - private List largeClassBeans = new ArrayList<>(); - private List smallClassBeans = new ArrayList<>(); - private List realPaths = new ArrayList<>();//真实图片路径 - private List mediaList = new ArrayList<>();//上传到服务器的数据集 - - private CaseDetailPresenterImpl caseDetailPresenter; - private CaseLargeClassPresenterImpl caseLargeClassPresenter; - private CaseSmallClassPresenterImpl caseSmallClassPresenter; - private CaseNextNodePresenterImpl caseNextNodePresenter; - private UploadImagePresenterImpl uploadImagePresenter; - private CaseHandlePresenterImpl caseHandlePresenter; - - private QMUITipDialog submitDialog; - - @Override - public int initLayoutView() { - return R.layout.activity_case_handle_overtime; - } - - @Override - protected String setTitleName() { - return "超时案卷"; - } - - @Override - public void initData() { - id = getIntent().getStringExtra("id"); - caseDetailPresenter = new CaseDetailPresenterImpl(this); - caseDetailPresenter.onReadyRetrofitRequest(id); - - caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); - caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); - caseNextNodePresenter = new CaseNextNodePresenterImpl(this); - uploadImagePresenter = new UploadImagePresenterImpl(this); - caseHandlePresenter = new CaseHandlePresenterImpl(this); - - submitDialog = new QMUITipDialog.Builder(this) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord("提交中,请稍后") - .create(); - } - - @Override - public void initEvent() { - submitButton.setChangeAlphaWhenPress(true); - } - - @Override - public void obtainCaseDetailData(CaseDetailBean resultBean) { - if (resultBean.isSuccess()) { - this.data = resultBean.getData().get(0); - caseTypeView.setText(data.getEorcName()); - caseLargeTypeView.setText(data.getCasetypeName()); - caseSmallTypeView.setText(data.getCasetypeDetailName()); - caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro()); - caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); - caseStartTimeView.setText(data.getCreateTime()); - caseEndTimeView.setText(data.getNodeLimittime()); - - String verifyImages = data.getFileIdVerify(); - if (!TextUtils.isEmpty(verifyImages)) { - List urls = new ArrayList<>(); - String[] split = verifyImages.split(","); - for (String s : split) { - urls.add(StringHelper.appendCompleteURL(s)); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(urls); - casePicRecyclerView.setVisibility(View.VISIBLE); - casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); - casePicRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(urls.get(position)); - } - }); - imageAdapter.setDeleteView(false); - } - } - } - - private void showBigImage(String path) { - Intent intent = new Intent(this, BigPictureActivity.class); - intent.putExtra("path", path); - startActivity(intent); - } - - @Override - public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { - if (largeClassBean.isSuccess()) { - //设置大类数据 - this.largeClassBeans = largeClassBean.getData(); - if (largeClassBeans.size() == 0) { - caseLargeTypeView.setText("无小类"); - } else { - caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 - } - caseSmallTypeView.setText("请选择"); - } - } - - @Override - public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { - if (smallClassBean.isSuccess()) { - //设置大类数据 - this.smallClassBeans = smallClassBean.getData(); - if (smallClassBeans.size() == 0) { - caseSmallTypeView.setText("无小类"); - } else { - caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 - } - } - } - - @Override - public void obtainNextNodeData(CaseNextNodeBean resultBean) { - if (resultBean.isSuccess()) { - List dataBeans = resultBean.getData(); - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("处理结果"); - for (CaseNextNodeBean.DataBean dataBean : dataBeans) { - 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(); - - CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); - caseHandleResultView.setText(dataBean.getNextOperation()); - changeState = String.valueOf(dataBean.getNextState()); - approvalResult = dataBean.getApprovalResult(); - } - }).build().show(); - } else { - ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); - } - } - - @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) - @Override - public void onClick(View v) { - switch (v.getId()) { - case R.id.caseClassLayout: - 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(); - - caseTypeView.setText(tag); - //获取案卷大类 - caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); - } - }).build().show(); - break; - case R.id.caseLargeClassLayout: - if (largeClassBeans != null) { - if (largeClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷大类"); - for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { - sheetBuilder.addItem(dataBean.getTypeName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseLargeTypeView.setText(tag); - //获取案卷小类 - CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); - String typeId = dataBean.getId(); - caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); - } - }).build().show(); - } - } - break; - case R.id.caseSmallClassLayout: - if (smallClassBeans != null) { - if (smallClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷小类"); - for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { - sheetBuilder.addItem(dataBean.getTypeDetailName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseSmallTypeView.setText(tag); - } - }).build().show(); - } - } - break; - case R.id.caseHandleResultLayout: - caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); - break; - case R.id.addImageView: - new QMUIDialog.MenuDialogBuilder(this) - .addItem("相册中选取", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //选图 - selectPicture(); - } - }) - .addItem("相机拍照", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //拍照 - takePicture(); - } - }) - .create().show(); - break; - case R.id.submitButton: - submitCase();//案卷提交 - break; - default: - break; - } - } - - private void submitCase() { - String handleResult = caseHandleResultView.getText().toString(); - if (handleResult.equals("请选择")) { - ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); - return; - } - if (handleResult.equals("处理完成")) { - //选择处理完成时,处理图片必传。至少一张,最多两张 - if (mediaList.size() < 1 || mediaList.size() > 2) { - ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); - return; - } - } - if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { - caseReason = caseReasonView.getText().toString(); - if (TextUtils.isEmpty(caseReason)) { - ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); - return; - } - } - caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), - changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); - } - - private void selectPicture() { - PictureSelector.create(this) - .openGallery(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(2) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.CHOOSE_REQUEST); - } - - private void takePicture() { - PictureSelector.create(this) - .openCamera(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(1) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.REQUEST_CAMERA); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if (resultCode == RESULT_OK) { - switch (requestCode) { - case PictureConfig.CHOOSE_REQUEST: - List selectList = PictureSelector.obtainMultipleResult(data); - for (LocalMedia media : selectList) { - String mediaCompressPath = media.getCompressPath(); - uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); - } - break; - case PictureConfig.REQUEST_CAMERA: - LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); - uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); - break; - default: - break; - } - } - } - - @Override - public void showProgress() { - submitDialog.show(); - } - - @Override - public void hideProgress() { - submitDialog.hide(); - } - - @Override - public void obtainUploadAudioResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainUploadImageResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - PictureFileUtils.deleteAllCacheDirFile(this); - /** - * 系统路径static拼接图片返回路径 - * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg - */ - //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String url = resultBean.getData(); - mediaList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(realPaths); - caseHandleRecyclerView.setVisibility(View.VISIBLE); - caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); - caseHandleRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(realPaths.get(position)); - } - }); - //删除按钮点击事件 - imageAdapter.setDeleteView(true); - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); - } - } - }); - } - } - - @Override - public void obtainUploadVideoResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainCaseHandleResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); - finish(); - } else { - ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); - } - } - - @Override - protected void onDestroy() { - super.onDestroy(); - if (caseDetailPresenter != null) { - caseDetailPresenter.disposeRetrofitRequest(); - } - if (caseLargeClassPresenter != null) { - caseLargeClassPresenter.disposeRetrofitRequest(); - } - if (caseSmallClassPresenter != null) { - caseSmallClassPresenter.disposeRetrofitRequest(); - } - if (caseNextNodePresenter != null) { - caseNextNodePresenter.disposeRetrofitRequest(); - } - if (uploadImagePresenter != null) { - uploadImagePresenter.disposeRetrofitRequest(); - } - if (caseHandlePresenter != null) { - caseHandlePresenter.disposeRetrofitRequest(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java new file mode 100644 index 0000000..5ea5403 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -0,0 +1,145 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { + + @BindView(R.id.detailTopLayout) + QMUITopBarLayout detailTopLayout; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @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; + + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private CaseDetailPresenterImpl caseDetailPresenter; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handled_detail; + } + + @Override + protected void setupTopBarLayout() { + detailTopLayout.setTitle("已办案卷").setTextColor(ContextCompat.getColor(this, R.color.white)); + detailTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + detailTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + String id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + } + + @Override + public void initEvent() { + + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseHandleStatusView.setText(data.getCaseStateName()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @OnClick(R.id.handleLayout) + @Override + public void onClick(View v) { + if (v.getId() == R.id.handleLayout) { + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java new file mode 100644 index 0000000..3b2d3d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -0,0 +1,228 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.TextView; + +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.presenter.CaseCommonSentencePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseUpdateSupervisePresenterImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseOverTimeView) + TextView caseOverTimeView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @BindView(R.id.casePlaceView) + EditText casePlaceView; + @BindView(R.id.caseDescriptionView) + TextView caseDescriptionView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseHandleResultView) + EditText caseHandleResultView; + @BindView(R.id.caseCommonSentenceView) + TextView caseCommonSentenceView; + + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseCommonSentencePresenterImpl commonSentencePresenter; + private CaseUpdateSupervisePresenterImpl updateSupervisePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_todo_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + commonSentencePresenter = new CaseCommonSentencePresenterImpl(this); + updateSupervisePresenter = new CaseUpdateSupervisePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @Override + public void initEvent() { + + } + + @OnClick({R.id.caseHandleLayout, R.id.caseCommonSentenceLayout, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseHandleLayout: + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + break; + case R.id.caseCommonSentenceLayout: + commonSentencePresenter.onReadyRetrofitRequest(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String remarks = caseHandleResultView.getText().toString(); + if (TextUtils.isEmpty(remarks)) { + ToastHelper.showToast("督办意见不能为空", ToastHelper.WARING); + return; + } + updateSupervisePresenter.onReadyRetrofitRequest(id, remarks); + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseOverTimeView.setText(data.getNodeLimittime()); + caseHandleStatusView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + casePlaceView.setText(data.getFieldintro()); + caseDescriptionView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainCommonSentenceData(CommonSentenceBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("常用语句"); + for (CommonSentenceBean.DataBean dataBean : dataBeans) { + 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(); + + CommonSentenceBean.DataBean dataBean = dataBeans.get(position); + caseCommonSentenceView.setText(dataBean.getName()); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUpdateSuperviseData(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷督办提交成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷督办提交失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (commonSentencePresenter != null) { + commonSentencePresenter.disposeRetrofitRequest(); + } + if (updateSupervisePresenter != null) { + updateSupervisePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 3060e1b..af6a9fe 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -191,7 +191,7 @@ caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); - caseHandleView.setText(data.getUrgeRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); caseSituationView.setText(data.getDescription()); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index 7816221..3989633 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -28,6 +28,7 @@ import com.casic.dcms.ui.OvertimeCaseActivity; import com.casic.dcms.ui.PersonOnlineActivity; import com.casic.dcms.ui.UrgentCaseActivity; +import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.StringHelper; import com.qmuiteam.qmui.widget.QMUIRadiusImageView; @@ -69,62 +70,12 @@ @Override protected void initEvent() { - HomeRecycleAdapter adapter = new HomeRecycleAdapter(context); - homeRecyclerView.setLayoutManager(new GridLayoutManager(context, 3)); - homeRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - Intent intent = new Intent(); - switch (position) { - case 0: - intent.setClass(context, CaseUploadActivity.class); - break; - case 1: - intent.setClass(context, CaseUploadQuicklyActivity.class); - break; - case 2: - intent.setClass(context, FivePackageUploadActivity.class); - break; - case 3: - intent.setClass(context, CaseVerifyActivity.class); - break; - case 4: - intent.setClass(context, CaseCheckActivity.class); - break; - case 5: - intent.setClass(context, CaseHandleActivity.class); - break; - case 6: - intent.setClass(context, UrgentCaseActivity.class); - break; - case 7: - intent.setClass(context, OvertimeCaseActivity.class); - break; - case 8: - intent.setClass(context, DataAnalysisActivity.class); - break; - case 9: - intent.setClass(context, PersonOnlineActivity.class); - break; - case 10: - intent.setClass(context, CaseSearchActivity.class); - break; - case 11: - intent.setClass(context, MapWatchViewActivity.class); - break; - default: - break; - } - startActivity(intent); - } - }); + } @SuppressLint("SetTextI18n") @Override public void obtainUserData(UserBean userBean) { -// Log.d(TAG, "obtainUserData: " + new Gson().toJson(userBean)); if (userBean.isSuccess()) { //QMUIRadiusImageView无法动态设置圆形头像,借助Glide实现圆形头像 Glide.with(this).load(R.mipmap.app_logo).apply(RequestOptions.circleCropTransform()).into(userIconView); @@ -137,6 +88,121 @@ StringHelper.saveUserPhone(data.getPhone()); StringHelper.saveUserDept(data.getDeptName()); StringHelper.saveUserDeptId(data.getDeptId()); + + //权限控制 + String roleTip = data.getRoleTips().get(0); + HomeRecycleAdapter adapter = new HomeRecycleAdapter(context); + homeRecyclerView.setLayoutManager(new GridLayoutManager(context, 3)); + switch (roleTip) { + case "supervisor": + //All + adapter.setItemData(Constant.ALL_ICONS, Constant.ALL_ITEMS); + adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { + @Override + public void onClick(int position) { + Intent intent = new Intent(); + switch (position) { + case 0: + intent.setClass(context, CaseUploadActivity.class); + break; + case 1: + intent.setClass(context, CaseUploadQuicklyActivity.class); + break; + case 2: + intent.setClass(context, FivePackageUploadActivity.class); + break; + case 3: + intent.setClass(context, CaseVerifyActivity.class); + break; + case 4: + intent.setClass(context, CaseCheckActivity.class); + break; + case 5: + intent.setClass(context, CaseHandleActivity.class); + break; + case 6: + intent.setClass(context, UrgentCaseActivity.class); + break; + case 7: + intent.setClass(context, OvertimeCaseActivity.class); + break; + case 8: + intent.setClass(context, DataAnalysisActivity.class); + break; + case 9: + intent.setClass(context, PersonOnlineActivity.class); + break; + case 10: + intent.setClass(context, CaseSearchActivity.class); + break; + case 11: + intent.setClass(context, MapWatchViewActivity.class); + break; + default: + break; + } + startActivity(intent); + } + }); + break; +// case "process": +// //案卷处理、案卷查询 +// adapter.setItemData(Constant.PROCESS_ICONS, Constant.PROCESS_ITEMS); +// adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { +// @Override +// public void onClick(int position) { +// Intent intent = new Intent(); +// switch (position) { +// case 0: +// intent.setClass(context, CaseHandleActivity.class); +// break; +// case 1: +// intent.setClass(context, CaseSearchActivity.class); +// break; +// default: +// break; +// } +// startActivity(intent); +// } +// }); +// break; +// case "leader": +// //案卷上报、紧急要件、超时督办、统计分析、在岗人员、案卷查询 +// adapter.setItemData(Constant.LEADER_ICONS, Constant.LEADER_ITEMS); +// adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { +// @Override +// public void onClick(int position) { +// Intent intent = new Intent(); +// switch (position) { +// case 0: +// intent.setClass(context, CaseUploadActivity.class); +// break; +// case 1: +// intent.setClass(context, UrgentCaseActivity.class); +// break; +// case 2: +// intent.setClass(context, OvertimeCaseActivity.class); +// break; +// case 3: +// intent.setClass(context, DataAnalysisActivity.class); +// break; +// case 4: +// intent.setClass(context, PersonOnlineActivity.class); +// break; +// case 5: +// intent.setClass(context, CaseSearchActivity.class); +// break; +// default: +// break; +// } +// startActivity(intent); +// } +// }); +// break; + default: + break; + } + homeRecyclerView.setAdapter(adapter); } } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java index 430f8be..fa2df7a 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandledBean; import com.casic.dcms.mvp.presenter.CaseHandledListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandledListView; +import com.casic.dcms.ui.CaseHandledDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -128,10 +130,9 @@ adapter.setOnItemClickListener(new CaseHandledAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandledDetailActivity.class); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java index 502c288..05306fe 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -130,10 +132,10 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "待办案卷"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java index 25877de..743a092 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java @@ -17,7 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; -import com.casic.dcms.ui.CaseHandleOvertimeDetailActivity; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -133,7 +133,8 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { - Intent intent = new Intent(context, CaseHandleOvertimeDetailActivity.class); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "超时案卷"); intent.putExtra("id", dataBeans.get(position).getId()); startActivity(intent); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java index f957e26..ae0b3e5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -131,10 +133,10 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "紧急案卷"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java index 18178eb..5d51969 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.OvertimeCaseBean; import com.casic.dcms.mvp.presenter.OvertimeCaseListPresenterImpl; import com.casic.dcms.mvp.view.IOvertimeCaseListView; +import com.casic.dcms.ui.CaseTodoDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -128,10 +130,10 @@ adapter.setOnItemClickListener(new OvertimeCaseAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseTodoDetailActivity.class); + intent.putExtra("title", "超时督办"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java index 19c6766..51bdbd0 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.mvp.presenter.UrgentCaseListPresenterImpl; import com.casic.dcms.mvp.view.IUrgentCaseListView; +import com.casic.dcms.ui.CaseTodoDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -129,10 +131,10 @@ adapter.setOnItemClickListener(new UrgentCaseAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseTodoDetailActivity.class); + intent.putExtra("title", "紧急要件"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } 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 233b5d1..2e68d04 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -9,18 +9,38 @@ import java.util.List; public class Constant { - public static final List ICONS = Arrays.asList( + public static final String[] USER_PERMISSIONS = { + Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION, + Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO, + Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE, + Manifest.permission.CALL_PHONE}; + + public static final List ALL_ICONS = Arrays.asList( R.mipmap.ajsb, R.mipmap.kssb, R.mipmap.sbsb, R.mipmap.ajhs, R.mipmap.ajhc, R.mipmap.ajcl, R.mipmap.jjyj, R.mipmap.csdb, R.mipmap.tjfx, R.mipmap.zgry, R.mipmap.ajcx, R.mipmap.dtck); - public static final List ITEMS = Arrays.asList( + public static final List ALL_ITEMS = Arrays.asList( "案卷上报", "快速上报", "五包上报", "案卷核实", "案卷核查", "案卷处理", "紧急要件", "超时督办", "统计分析", "在岗人员", "案卷查询", "地图查看"); + public static final List PROCESS_ICONS = Arrays.asList( + R.mipmap.ajcl, R.mipmap.ajcx); + + public static final List PROCESS_ITEMS = Arrays.asList( + "案卷处理", "案卷查询"); + + public static final List LEADER_ICONS = Arrays.asList( + R.mipmap.ajsb, R.mipmap.jjyj, R.mipmap.csdb, + R.mipmap.tjfx, R.mipmap.zgry, R.mipmap.ajcx); + + public static final List LEADER_ITEMS = Arrays.asList( + "案卷上报", "紧急要件", "超时督办", + "统计分析", "在岗人员", "案卷查询"); + public static final List ANALYSIS_ICONS = Arrays.asList( R.mipmap.sbsb, R.mipmap.jjyj, R.mipmap.csdb, R.mipmap.ajcl, R.mipmap.tjfx, R.mipmap.ajhc); @@ -29,17 +49,6 @@ "问题来源", "案卷状态", "高发问题", "街道统计", "处理统计", "趋势分析"); - public static final List CATEGORY = Arrays.asList("请选择", "情况属实", "情况不属实"); - - public static final String[] USER_PERMISSIONS = { - Manifest.permission.ACCESS_COARSE_LOCATION, - Manifest.permission.ACCESS_FINE_LOCATION, - Manifest.permission.CAMERA, - Manifest.permission.READ_EXTERNAL_STORAGE, - Manifest.permission.WRITE_EXTERNAL_STORAGE, - Manifest.permission.RECORD_AUDIO, - Manifest.permission.CALL_PHONE}; - //先预置8种颜色 public static final int[] PIE_COLORS = {Color.rgb(28, 197, 220), Color.rgb(255, 223, 107), Color.rgb(242, 17, 112), diff --git a/app/src/main/java/com/casic/dcms/utils/StringHelper.java b/app/src/main/java/com/casic/dcms/utils/StringHelper.java index 1201063..5aeb8f6 100644 --- a/app/src/main/java/com/casic/dcms/utils/StringHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/StringHelper.java @@ -60,7 +60,9 @@ return ""; } String data = url.replace("\\", "/"); - return SaveKeyValues.getValue(Constant.IP_KEY, "http://111.198.10.15:11409") + "/static/" + data; + String imagePath = SaveKeyValues.getValue(Constant.IP_KEY, "http://111.198.10.15:11409") + "/static/" + data; + Log.d(TAG, "appendCompleteURL: "+imagePath); + return imagePath; } public static String reformatURL(List urls) { 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 ec230dd..16bafa1 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 @@ -14,6 +14,7 @@ import com.casic.dcms.bean.CaseStatusBean; import com.casic.dcms.bean.CaseVerifiedBean; import com.casic.dcms.bean.CaseVerifyBean; +import com.casic.dcms.bean.CommonSentenceBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; import com.casic.dcms.bean.LoginResultBean; @@ -345,6 +346,12 @@ @Query("caseState") String caseState); /** + * 获取常见语句 + */ + @GET("/dict/code/commonApproval") + Observable obtainCommonSentence(@Header("token") String token); + + /** * 案卷处理 *

* 案卷核实-仅添加核实意见/核实情况/核实图片 @@ -401,4 +408,12 @@ @Field("communityCode") String communityCode, @Field("gridId") String gridId, @Field("fieldintro") String fieldintro); + + /** + * 紧急要件-超时督办 + */ + @GET("/casedetail/updateSuperviseRemarks") + Observable updateSuperviseRemarks(@Header("token") String token, + @Query("id") String id, + @Query("superviseRemarks") String superviseRemarks); } 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 0c77b61..226b287 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 @@ -16,6 +16,7 @@ import com.casic.dcms.bean.CaseStatusBean; import com.casic.dcms.bean.CaseVerifiedBean; import com.casic.dcms.bean.CaseVerifyBean; +import com.casic.dcms.bean.CommonSentenceBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; import com.casic.dcms.bean.LoginResultBean; @@ -397,6 +398,15 @@ } /** + * 获取常见语句 + */ + public static Observable getCommonSentenceResult() { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainCommonSentence(TokenHelper.getToken()); + } + + /** * 案卷处理 *

* 案卷核实-仅添加核实意见/核实情况/核实图片 @@ -445,4 +455,13 @@ remarks, fileId, eorc, casetypeCode, casetypeDetailCode, lng, lat, caseLevel, areaCode, streetCode, communityCode, gridId, fieldintro); } + + /** + * 紧急要件-超时督办 + */ + public static Observable getUpdateSuperviseResult(String id, String superviseRemarks) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.updateSuperviseRemarks(TokenHelper.getToken(), id, superviseRemarks); + } } diff --git a/app/src/main/res/drawable/ic_load_error.xml b/app/src/main/res/drawable/ic_load_error.xml new file mode 100644 index 0000000..5ad71a1 --- /dev/null +++ b/app/src/main/res/drawable/ic_load_error.xml @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/activity_big_pic.xml b/app/src/main/res/layout/activity_big_pic.xml index 551ed62..bc09ace 100644 --- a/app/src/main/res/layout/activity_big_pic.xml +++ b/app/src/main/res/layout/activity_big_pic.xml @@ -1,16 +1,17 @@ - - + android:layout_height="wrap_content" + android:fitsSystemWindows="true" /> + - \ No newline at end of file + android:layout_height="wrap_content" /> + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_case_check_detail.xml b/app/src/main/res/layout/activity_case_check_detail.xml index 607d1eb..58bc5d4 100644 --- a/app/src/main/res/layout/activity_case_check_detail.xml +++ b/app/src/main/res/layout/activity_case_check_detail.xml @@ -16,28 +16,6 @@ android:layout_height="wrap_content" android:orientation="vertical"> - - - - - - - - - diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml new file mode 100644 index 0000000..44f84e7 --- /dev/null +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f6ac20a..2070c95 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -67,12 +67,14 @@ - + - + + + { private Context context; + private List iconData = new ArrayList<>(); + private List itemData = new ArrayList<>(); public HomeRecycleAdapter(Context context) { this.context = context; } + public void setItemData(@Nullable List icons, @Nullable List items) { + this.iconData = icons; + this.itemData = items; + } + @NonNull @Override public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -30,7 +40,7 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - holder.bindView(context, position); + holder.bindView(position); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override @@ -43,7 +53,7 @@ @Override public int getItemCount() { - return Constant.ITEMS.size(); + return itemData.size(); } private OnGridItemClickListener clickListener; @@ -56,7 +66,7 @@ this.clickListener = onGridItemClickListener; } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { private ImageView imageView; private TextView textView; @@ -67,9 +77,9 @@ textView = itemView.findViewById(R.id.textView); } - void bindView(Context context, int position) { - imageView.setBackgroundResource(Constant.ICONS.get(position)); - textView.setText(Constant.ITEMS.get(position)); + void bindView(int position) { + imageView.setBackgroundResource(iconData.get(position)); + textView.setText(itemData.get(position)); } } } diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index b9c4615..d9b10e0 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; import java.util.ArrayList; @@ -62,7 +63,10 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - Glide.with(context).load(mediaList.get(position)).into(holder.imageView); + Glide.with(context) + .load(mediaList.get(position)) + .apply(new RequestOptions().error(R.drawable.ic_load_error)) + .into(holder.imageView); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/casic/dcms/base/BaseActivity.java b/app/src/main/java/com/casic/dcms/base/BaseActivity.java index caf0356..2ca87fe 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseActivity.java +++ b/app/src/main/java/com/casic/dcms/base/BaseActivity.java @@ -17,8 +17,8 @@ setContentView(initLayoutView()); ButterKnife.bind(this); QMUIStatusBarHelper.translucent(this);//沉浸式状态栏 - setupTopBarLayout(); initData(); + setupTopBarLayout(); initEvent(); } diff --git a/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java new file mode 100644 index 0000000..8de58a4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java @@ -0,0 +1,78 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CommonSentenceBean { + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 请及时处理 + * id : 156 + * value : 请及时处理 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java new file mode 100644 index 0000000..5258d89 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CommonSentenceBean; +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 CaseCommonSentenceModelImpl implements ICaseCommonSentenceModel { + + private OnGetCommonSentenceListener sentenceListener; + + public CaseCommonSentenceModelImpl(OnGetCommonSentenceListener commonSentenceListener) { + this.sentenceListener = commonSentenceListener; + } + + public interface OnGetCommonSentenceListener { + void onSuccess(CommonSentenceBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCommonSentenceResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (sentenceListener != null) { + sentenceListener.onFailure(e); + } + } + + @Override + public void onNext(CommonSentenceBean resultBean) { + if (resultBean != null) { + sentenceListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java new file mode 100644 index 0000000..a8cb3fc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java @@ -0,0 +1,53 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseUpdateSuperviseModelImpl implements ICaseUpdateSuperviseModel { + + private OnUpdateSuperviseListener listener; + + public CaseUpdateSuperviseModelImpl(OnUpdateSuperviseListener updateSuperviseListener) { + this.listener = updateSuperviseListener; + } + + /** + * 数据回调接口 + */ + public interface OnUpdateSuperviseListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String superviseRemarks) { + Observable observable = RetrofitServiceManager.getUpdateSuperviseResult(id, superviseRemarks); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java new file mode 100644 index 0000000..263ef6c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseCommonSentenceModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java new file mode 100644 index 0000000..518d602 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseUpdateSuperviseModel { + Subscription sendRetrofitRequest(String id, String superviseRemarks); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java new file mode 100644 index 0000000..6b65f13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseCommonSentenceModelImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; + +public class CaseCommonSentencePresenterImpl extends BasePresenter implements ICaseCommonSentencePresenter, + CaseCommonSentenceModelImpl.OnGetCommonSentenceListener { + + private ICaseCommonSentenceView view; + private CaseCommonSentenceModelImpl actionModel; + + public CaseCommonSentencePresenterImpl(ICaseCommonSentenceView commonSentenceView) { + this.view = commonSentenceView; + actionModel = new CaseCommonSentenceModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CommonSentenceBean resultBean) { + view.obtainCommonSentenceData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java new file mode 100644 index 0000000..66e1f44 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseUpdateSuperviseModelImpl; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; + +public class CaseUpdateSupervisePresenterImpl extends BasePresenter implements ICaseUpdateSupervisePresenter, + CaseUpdateSuperviseModelImpl.OnUpdateSuperviseListener { + + private ICaseUpdateSuperviseView view; + private CaseUpdateSuperviseModelImpl actionModel; + + public CaseUpdateSupervisePresenterImpl(ICaseUpdateSuperviseView updateSuperviseView) { + this.view = updateSuperviseView; + actionModel = new CaseUpdateSuperviseModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String superviseRemarks) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, superviseRemarks)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainUpdateSuperviseData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java new file mode 100644 index 0000000..1f8bd09 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseCommonSentencePresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java new file mode 100644 index 0000000..f61f9b2 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseUpdateSupervisePresenter { + void onReadyRetrofitRequest(String id, String superviseRemarks); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java new file mode 100644 index 0000000..9c7b08b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CommonSentenceBean; + +public interface ICaseCommonSentenceView { + void obtainCommonSentenceData(CommonSentenceBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java new file mode 100644 index 0000000..10bcf5a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICaseUpdateSuperviseView { + void showProgress(); + + void hideProgress(); + + void obtainUpdateSuperviseData(ActionResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java index ad70b7a..9143db8 100644 --- a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.ui; +import android.view.View; + +import androidx.core.content.ContextCompat; + import com.bumptech.glide.Glide; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.luck.picture.lib.photoview.PhotoView; -import com.qmuiteam.qmui.util.QMUIStatusBarHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; import butterknife.BindView; @@ -15,6 +19,8 @@ **/ public class BigPictureActivity extends BaseActivity { + @BindView(R.id.imageTopLayout) + QMUITopBarLayout imageTopLayout; @BindView(R.id.photoView) PhotoView photoView; @@ -25,37 +31,24 @@ @Override protected void setupTopBarLayout() { - QMUIStatusBarHelper.setStatusBarLightMode(this); + imageTopLayout.setTitle("查看大图").setTextColor(ContextCompat.getColor(this, R.color.white)); + imageTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + imageTopLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); } @Override public void initData() { -// String mediaJson = getIntent().getStringExtra("mediaJson"); -// -// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() { -// }.getType()); -// -// list = new ArrayList<>(); -// assert mediaList != null; -// for (LocalMedia media : mediaList) { -// list.add(media.getRealPath()); -// } String path = getIntent().getStringExtra("path"); Glide.with(this).load(path).into(photoView); } @Override public void initEvent() { -// //轮播图 -// bigImageBanner.setImageLoader(new ImageLoader() { -// -// @Override -// public void displayImage(Context context, Object path, ImageView imageView) { -// Glide.with(context).load(path).into(imageView); -// } -// }); -// bigImageBanner.isAutoPlay(false); -// bigImageBanner.setImages(list); -// bigImageBanner.start(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index 01a3807..7548cfc 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -329,7 +329,7 @@ caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java new file mode 100644 index 0000000..d4dba38 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -0,0 +1,505 @@ +package com.casic.dcms.ui; + +import android.content.DialogInterface; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseNextNodeBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseHandleView; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseNextNodeView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.IUploadFileView; +import com.casic.dcms.utils.FileUtils; +import com.casic.dcms.utils.GlideLoadEngine; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.luck.picture.lib.PictureSelector; +import com.luck.picture.lib.config.PictureConfig; +import com.luck.picture.lib.config.PictureMimeType; +import com.luck.picture.lib.entity.LocalMedia; +import com.luck.picture.lib.tools.PictureFileUtils; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, + ICaseHandleView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @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) + EditText casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.caseHandleView) + TextView caseHandleView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseStartTimeView) + TextView caseStartTimeView; + @BindView(R.id.caseEndTimeView) + TextView caseEndTimeView; + @BindView(R.id.caseHandleResultView) + TextView caseHandleResultView; + @BindView(R.id.caseHandleRecyclerView) + RecyclerView caseHandleRecyclerView; + @BindView(R.id.addImageView) + ImageView addImageView; + @BindView(R.id.caseReasonView) + EditText caseReasonView; + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private String changeState; + private String caseReason; + private String approvalResult; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private List largeClassBeans = new ArrayList<>(); + private List smallClassBeans = new ArrayList<>(); + private List realPaths = new ArrayList<>();//真实图片路径 + private List mediaList = new ArrayList<>();//上传到服务器的数据集 + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private CaseNextNodePresenterImpl caseNextNodePresenter; + private UploadImagePresenterImpl uploadImagePresenter; + private CaseHandlePresenterImpl caseHandlePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handle_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseNextNodePresenter = new CaseNextNodePresenterImpl(this); + uploadImagePresenter = new UploadImagePresenterImpl(this); + caseHandlePresenter = new CaseHandlePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @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()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + caseStartTimeView.setText(data.getCreateTime()); + caseEndTimeView.setText(data.getNodeLimittime()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeTypeView.setText("无小类"); + } else { + caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 + } + caseSmallTypeView.setText("请选择"); + } + } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallTypeView.setText("无小类"); + } else { + caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 + } + } + } + + @Override + public void obtainNextNodeData(CaseNextNodeBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处理结果"); + for (CaseNextNodeBean.DataBean dataBean : dataBeans) { + 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(); + + CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); + caseHandleResultView.setText(dataBean.getNextOperation()); + changeState = String.valueOf(dataBean.getNextState()); + approvalResult = dataBean.getApprovalResult(); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseClassLayout: + 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(); + + caseTypeView.setText(tag); + //获取案卷大类 + caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseLargeTypeView.setText(tag); + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseSmallTypeView.setText(tag); + } + }).build().show(); + } + } + break; + case R.id.caseHandleResultLayout: + caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); + break; + case R.id.addImageView: + new QMUIDialog.MenuDialogBuilder(this) + .addItem("相册中选取", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //选图 + selectPicture(); + } + }) + .addItem("相机拍照", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //拍照 + takePicture(); + } + }) + .create().show(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String handleResult = caseHandleResultView.getText().toString(); + if (handleResult.equals("请选择")) { + ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); + return; + } + if (handleResult.equals("处理完成")) { + //选择处理完成时,处理图片必传。至少一张,最多两张 + if (mediaList.size() < 1 || mediaList.size() > 2) { + ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); + return; + } + } + if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { + caseReason = caseReasonView.getText().toString(); + if (TextUtils.isEmpty(caseReason)) { + ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); + return; + } + } + caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), + changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); + } + + private void selectPicture() { + PictureSelector.create(this) + .openGallery(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(2) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.CHOOSE_REQUEST); + } + + private void takePicture() { + PictureSelector.create(this) + .openCamera(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(1) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.REQUEST_CAMERA); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == RESULT_OK) { + switch (requestCode) { + case PictureConfig.CHOOSE_REQUEST: + List selectList = PictureSelector.obtainMultipleResult(data); + for (LocalMedia media : selectList) { + String mediaCompressPath = media.getCompressPath(); + uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); + } + break; + case PictureConfig.REQUEST_CAMERA: + LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); + uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); + break; + default: + break; + } + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUploadAudioResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainUploadImageResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + PictureFileUtils.deleteAllCacheDirFile(this); + /** + * 系统路径static拼接图片返回路径 + * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg + */ + //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg + String url = resultBean.getData(); + mediaList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(realPaths); + caseHandleRecyclerView.setVisibility(View.VISIBLE); + caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); + caseHandleRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(realPaths.get(position)); + } + }); + //删除按钮点击事件 + imageAdapter.setDeleteView(true); + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } + } + + @Override + public void obtainUploadVideoResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainCaseHandleResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseNextNodePresenter != null) { + caseNextNodePresenter.disposeRetrofitRequest(); + } + if (uploadImagePresenter != null) { + uploadImagePresenter.disposeRetrofitRequest(); + } + if (caseHandlePresenter != null) { + caseHandlePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java deleted file mode 100644 index bd187c5..0000000 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java +++ /dev/null @@ -1,500 +0,0 @@ -package com.casic.dcms.ui; - -import android.content.DialogInterface; -import android.content.Intent; -import android.text.TextUtils; -import android.view.View; -import android.widget.EditText; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.Nullable; -import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.adapter.ImageRecycleViewAdapter; -import com.casic.dcms.base.BaseCaseActivity; -import com.casic.dcms.bean.ActionResultBean; -import com.casic.dcms.bean.CaseDetailBean; -import com.casic.dcms.bean.CaseLargeClassBean; -import com.casic.dcms.bean.CaseNextNodeBean; -import com.casic.dcms.bean.CaseSmallClassBean; -import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; -import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; -import com.casic.dcms.mvp.view.ICaseDetailView; -import com.casic.dcms.mvp.view.ICaseHandleView; -import com.casic.dcms.mvp.view.ICaseLargeClassView; -import com.casic.dcms.mvp.view.ICaseNextNodeView; -import com.casic.dcms.mvp.view.ICaseSmallClassView; -import com.casic.dcms.mvp.view.IUploadFileView; -import com.casic.dcms.utils.FileUtils; -import com.casic.dcms.utils.GlideLoadEngine; -import com.casic.dcms.utils.ItemDecorationSpace; -import com.casic.dcms.utils.StringHelper; -import com.casic.dcms.utils.ToastHelper; -import com.luck.picture.lib.PictureSelector; -import com.luck.picture.lib.config.PictureConfig; -import com.luck.picture.lib.config.PictureMimeType; -import com.luck.picture.lib.entity.LocalMedia; -import com.luck.picture.lib.tools.PictureFileUtils; -import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; -import com.qmuiteam.qmui.widget.dialog.QMUIDialog; -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; - -import butterknife.BindView; -import butterknife.OnClick; - -public class CaseHandleOvertimeDetailActivity extends BaseCaseActivity implements View.OnClickListener, - ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, - ICaseHandleView { - - @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) - EditText casePlaceView; - @BindView(R.id.caseSituationView) - TextView caseSituationView; - @BindView(R.id.caseHandleView) - TextView caseHandleView; - @BindView(R.id.casePicRecyclerView) - RecyclerView casePicRecyclerView; - @BindView(R.id.caseStartTimeView) - TextView caseStartTimeView; - @BindView(R.id.caseEndTimeView) - TextView caseEndTimeView; - @BindView(R.id.caseHandleResultView) - TextView caseHandleResultView; - @BindView(R.id.caseHandleRecyclerView) - RecyclerView caseHandleRecyclerView; - @BindView(R.id.addImageView) - ImageView addImageView; - @BindView(R.id.caseReasonView) - EditText caseReasonView; - @BindView(R.id.submitButton) - QMUIRoundButton submitButton; - - private String id; - private String changeState; - private String caseReason; - private String approvalResult; - private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); - private List largeClassBeans = new ArrayList<>(); - private List smallClassBeans = new ArrayList<>(); - private List realPaths = new ArrayList<>();//真实图片路径 - private List mediaList = new ArrayList<>();//上传到服务器的数据集 - - private CaseDetailPresenterImpl caseDetailPresenter; - private CaseLargeClassPresenterImpl caseLargeClassPresenter; - private CaseSmallClassPresenterImpl caseSmallClassPresenter; - private CaseNextNodePresenterImpl caseNextNodePresenter; - private UploadImagePresenterImpl uploadImagePresenter; - private CaseHandlePresenterImpl caseHandlePresenter; - - private QMUITipDialog submitDialog; - - @Override - public int initLayoutView() { - return R.layout.activity_case_handle_overtime; - } - - @Override - protected String setTitleName() { - return "超时案卷"; - } - - @Override - public void initData() { - id = getIntent().getStringExtra("id"); - caseDetailPresenter = new CaseDetailPresenterImpl(this); - caseDetailPresenter.onReadyRetrofitRequest(id); - - caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); - caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); - caseNextNodePresenter = new CaseNextNodePresenterImpl(this); - uploadImagePresenter = new UploadImagePresenterImpl(this); - caseHandlePresenter = new CaseHandlePresenterImpl(this); - - submitDialog = new QMUITipDialog.Builder(this) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord("提交中,请稍后") - .create(); - } - - @Override - public void initEvent() { - submitButton.setChangeAlphaWhenPress(true); - } - - @Override - public void obtainCaseDetailData(CaseDetailBean resultBean) { - if (resultBean.isSuccess()) { - this.data = resultBean.getData().get(0); - caseTypeView.setText(data.getEorcName()); - caseLargeTypeView.setText(data.getCasetypeName()); - caseSmallTypeView.setText(data.getCasetypeDetailName()); - caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro()); - caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); - caseStartTimeView.setText(data.getCreateTime()); - caseEndTimeView.setText(data.getNodeLimittime()); - - String verifyImages = data.getFileIdVerify(); - if (!TextUtils.isEmpty(verifyImages)) { - List urls = new ArrayList<>(); - String[] split = verifyImages.split(","); - for (String s : split) { - urls.add(StringHelper.appendCompleteURL(s)); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(urls); - casePicRecyclerView.setVisibility(View.VISIBLE); - casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); - casePicRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(urls.get(position)); - } - }); - imageAdapter.setDeleteView(false); - } - } - } - - private void showBigImage(String path) { - Intent intent = new Intent(this, BigPictureActivity.class); - intent.putExtra("path", path); - startActivity(intent); - } - - @Override - public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { - if (largeClassBean.isSuccess()) { - //设置大类数据 - this.largeClassBeans = largeClassBean.getData(); - if (largeClassBeans.size() == 0) { - caseLargeTypeView.setText("无小类"); - } else { - caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 - } - caseSmallTypeView.setText("请选择"); - } - } - - @Override - public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { - if (smallClassBean.isSuccess()) { - //设置大类数据 - this.smallClassBeans = smallClassBean.getData(); - if (smallClassBeans.size() == 0) { - caseSmallTypeView.setText("无小类"); - } else { - caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 - } - } - } - - @Override - public void obtainNextNodeData(CaseNextNodeBean resultBean) { - if (resultBean.isSuccess()) { - List dataBeans = resultBean.getData(); - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("处理结果"); - for (CaseNextNodeBean.DataBean dataBean : dataBeans) { - 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(); - - CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); - caseHandleResultView.setText(dataBean.getNextOperation()); - changeState = String.valueOf(dataBean.getNextState()); - approvalResult = dataBean.getApprovalResult(); - } - }).build().show(); - } else { - ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); - } - } - - @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) - @Override - public void onClick(View v) { - switch (v.getId()) { - case R.id.caseClassLayout: - 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(); - - caseTypeView.setText(tag); - //获取案卷大类 - caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); - } - }).build().show(); - break; - case R.id.caseLargeClassLayout: - if (largeClassBeans != null) { - if (largeClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷大类"); - for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { - sheetBuilder.addItem(dataBean.getTypeName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseLargeTypeView.setText(tag); - //获取案卷小类 - CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); - String typeId = dataBean.getId(); - caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); - } - }).build().show(); - } - } - break; - case R.id.caseSmallClassLayout: - if (smallClassBeans != null) { - if (smallClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷小类"); - for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { - sheetBuilder.addItem(dataBean.getTypeDetailName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseSmallTypeView.setText(tag); - } - }).build().show(); - } - } - break; - case R.id.caseHandleResultLayout: - caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); - break; - case R.id.addImageView: - new QMUIDialog.MenuDialogBuilder(this) - .addItem("相册中选取", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //选图 - selectPicture(); - } - }) - .addItem("相机拍照", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //拍照 - takePicture(); - } - }) - .create().show(); - break; - case R.id.submitButton: - submitCase();//案卷提交 - break; - default: - break; - } - } - - private void submitCase() { - String handleResult = caseHandleResultView.getText().toString(); - if (handleResult.equals("请选择")) { - ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); - return; - } - if (handleResult.equals("处理完成")) { - //选择处理完成时,处理图片必传。至少一张,最多两张 - if (mediaList.size() < 1 || mediaList.size() > 2) { - ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); - return; - } - } - if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { - caseReason = caseReasonView.getText().toString(); - if (TextUtils.isEmpty(caseReason)) { - ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); - return; - } - } - caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), - changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); - } - - private void selectPicture() { - PictureSelector.create(this) - .openGallery(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(2) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.CHOOSE_REQUEST); - } - - private void takePicture() { - PictureSelector.create(this) - .openCamera(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(1) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.REQUEST_CAMERA); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if (resultCode == RESULT_OK) { - switch (requestCode) { - case PictureConfig.CHOOSE_REQUEST: - List selectList = PictureSelector.obtainMultipleResult(data); - for (LocalMedia media : selectList) { - String mediaCompressPath = media.getCompressPath(); - uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); - } - break; - case PictureConfig.REQUEST_CAMERA: - LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); - uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); - break; - default: - break; - } - } - } - - @Override - public void showProgress() { - submitDialog.show(); - } - - @Override - public void hideProgress() { - submitDialog.hide(); - } - - @Override - public void obtainUploadAudioResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainUploadImageResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - PictureFileUtils.deleteAllCacheDirFile(this); - /** - * 系统路径static拼接图片返回路径 - * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg - */ - //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String url = resultBean.getData(); - mediaList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(realPaths); - caseHandleRecyclerView.setVisibility(View.VISIBLE); - caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); - caseHandleRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(realPaths.get(position)); - } - }); - //删除按钮点击事件 - imageAdapter.setDeleteView(true); - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); - } - } - }); - } - } - - @Override - public void obtainUploadVideoResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainCaseHandleResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); - finish(); - } else { - ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); - } - } - - @Override - protected void onDestroy() { - super.onDestroy(); - if (caseDetailPresenter != null) { - caseDetailPresenter.disposeRetrofitRequest(); - } - if (caseLargeClassPresenter != null) { - caseLargeClassPresenter.disposeRetrofitRequest(); - } - if (caseSmallClassPresenter != null) { - caseSmallClassPresenter.disposeRetrofitRequest(); - } - if (caseNextNodePresenter != null) { - caseNextNodePresenter.disposeRetrofitRequest(); - } - if (uploadImagePresenter != null) { - uploadImagePresenter.disposeRetrofitRequest(); - } - if (caseHandlePresenter != null) { - caseHandlePresenter.disposeRetrofitRequest(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java new file mode 100644 index 0000000..5ea5403 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -0,0 +1,145 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { + + @BindView(R.id.detailTopLayout) + QMUITopBarLayout detailTopLayout; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @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; + + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private CaseDetailPresenterImpl caseDetailPresenter; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handled_detail; + } + + @Override + protected void setupTopBarLayout() { + detailTopLayout.setTitle("已办案卷").setTextColor(ContextCompat.getColor(this, R.color.white)); + detailTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + detailTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + String id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + } + + @Override + public void initEvent() { + + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseHandleStatusView.setText(data.getCaseStateName()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @OnClick(R.id.handleLayout) + @Override + public void onClick(View v) { + if (v.getId() == R.id.handleLayout) { + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java new file mode 100644 index 0000000..3b2d3d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -0,0 +1,228 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.TextView; + +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.presenter.CaseCommonSentencePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseUpdateSupervisePresenterImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseOverTimeView) + TextView caseOverTimeView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @BindView(R.id.casePlaceView) + EditText casePlaceView; + @BindView(R.id.caseDescriptionView) + TextView caseDescriptionView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseHandleResultView) + EditText caseHandleResultView; + @BindView(R.id.caseCommonSentenceView) + TextView caseCommonSentenceView; + + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseCommonSentencePresenterImpl commonSentencePresenter; + private CaseUpdateSupervisePresenterImpl updateSupervisePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_todo_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + commonSentencePresenter = new CaseCommonSentencePresenterImpl(this); + updateSupervisePresenter = new CaseUpdateSupervisePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @Override + public void initEvent() { + + } + + @OnClick({R.id.caseHandleLayout, R.id.caseCommonSentenceLayout, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseHandleLayout: + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + break; + case R.id.caseCommonSentenceLayout: + commonSentencePresenter.onReadyRetrofitRequest(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String remarks = caseHandleResultView.getText().toString(); + if (TextUtils.isEmpty(remarks)) { + ToastHelper.showToast("督办意见不能为空", ToastHelper.WARING); + return; + } + updateSupervisePresenter.onReadyRetrofitRequest(id, remarks); + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseOverTimeView.setText(data.getNodeLimittime()); + caseHandleStatusView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + casePlaceView.setText(data.getFieldintro()); + caseDescriptionView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainCommonSentenceData(CommonSentenceBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("常用语句"); + for (CommonSentenceBean.DataBean dataBean : dataBeans) { + 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(); + + CommonSentenceBean.DataBean dataBean = dataBeans.get(position); + caseCommonSentenceView.setText(dataBean.getName()); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUpdateSuperviseData(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷督办提交成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷督办提交失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (commonSentencePresenter != null) { + commonSentencePresenter.disposeRetrofitRequest(); + } + if (updateSupervisePresenter != null) { + updateSupervisePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 3060e1b..af6a9fe 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -191,7 +191,7 @@ caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); - caseHandleView.setText(data.getUrgeRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); caseSituationView.setText(data.getDescription()); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index 7816221..3989633 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -28,6 +28,7 @@ import com.casic.dcms.ui.OvertimeCaseActivity; import com.casic.dcms.ui.PersonOnlineActivity; import com.casic.dcms.ui.UrgentCaseActivity; +import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.StringHelper; import com.qmuiteam.qmui.widget.QMUIRadiusImageView; @@ -69,62 +70,12 @@ @Override protected void initEvent() { - HomeRecycleAdapter adapter = new HomeRecycleAdapter(context); - homeRecyclerView.setLayoutManager(new GridLayoutManager(context, 3)); - homeRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - Intent intent = new Intent(); - switch (position) { - case 0: - intent.setClass(context, CaseUploadActivity.class); - break; - case 1: - intent.setClass(context, CaseUploadQuicklyActivity.class); - break; - case 2: - intent.setClass(context, FivePackageUploadActivity.class); - break; - case 3: - intent.setClass(context, CaseVerifyActivity.class); - break; - case 4: - intent.setClass(context, CaseCheckActivity.class); - break; - case 5: - intent.setClass(context, CaseHandleActivity.class); - break; - case 6: - intent.setClass(context, UrgentCaseActivity.class); - break; - case 7: - intent.setClass(context, OvertimeCaseActivity.class); - break; - case 8: - intent.setClass(context, DataAnalysisActivity.class); - break; - case 9: - intent.setClass(context, PersonOnlineActivity.class); - break; - case 10: - intent.setClass(context, CaseSearchActivity.class); - break; - case 11: - intent.setClass(context, MapWatchViewActivity.class); - break; - default: - break; - } - startActivity(intent); - } - }); + } @SuppressLint("SetTextI18n") @Override public void obtainUserData(UserBean userBean) { -// Log.d(TAG, "obtainUserData: " + new Gson().toJson(userBean)); if (userBean.isSuccess()) { //QMUIRadiusImageView无法动态设置圆形头像,借助Glide实现圆形头像 Glide.with(this).load(R.mipmap.app_logo).apply(RequestOptions.circleCropTransform()).into(userIconView); @@ -137,6 +88,121 @@ StringHelper.saveUserPhone(data.getPhone()); StringHelper.saveUserDept(data.getDeptName()); StringHelper.saveUserDeptId(data.getDeptId()); + + //权限控制 + String roleTip = data.getRoleTips().get(0); + HomeRecycleAdapter adapter = new HomeRecycleAdapter(context); + homeRecyclerView.setLayoutManager(new GridLayoutManager(context, 3)); + switch (roleTip) { + case "supervisor": + //All + adapter.setItemData(Constant.ALL_ICONS, Constant.ALL_ITEMS); + adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { + @Override + public void onClick(int position) { + Intent intent = new Intent(); + switch (position) { + case 0: + intent.setClass(context, CaseUploadActivity.class); + break; + case 1: + intent.setClass(context, CaseUploadQuicklyActivity.class); + break; + case 2: + intent.setClass(context, FivePackageUploadActivity.class); + break; + case 3: + intent.setClass(context, CaseVerifyActivity.class); + break; + case 4: + intent.setClass(context, CaseCheckActivity.class); + break; + case 5: + intent.setClass(context, CaseHandleActivity.class); + break; + case 6: + intent.setClass(context, UrgentCaseActivity.class); + break; + case 7: + intent.setClass(context, OvertimeCaseActivity.class); + break; + case 8: + intent.setClass(context, DataAnalysisActivity.class); + break; + case 9: + intent.setClass(context, PersonOnlineActivity.class); + break; + case 10: + intent.setClass(context, CaseSearchActivity.class); + break; + case 11: + intent.setClass(context, MapWatchViewActivity.class); + break; + default: + break; + } + startActivity(intent); + } + }); + break; +// case "process": +// //案卷处理、案卷查询 +// adapter.setItemData(Constant.PROCESS_ICONS, Constant.PROCESS_ITEMS); +// adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { +// @Override +// public void onClick(int position) { +// Intent intent = new Intent(); +// switch (position) { +// case 0: +// intent.setClass(context, CaseHandleActivity.class); +// break; +// case 1: +// intent.setClass(context, CaseSearchActivity.class); +// break; +// default: +// break; +// } +// startActivity(intent); +// } +// }); +// break; +// case "leader": +// //案卷上报、紧急要件、超时督办、统计分析、在岗人员、案卷查询 +// adapter.setItemData(Constant.LEADER_ICONS, Constant.LEADER_ITEMS); +// adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { +// @Override +// public void onClick(int position) { +// Intent intent = new Intent(); +// switch (position) { +// case 0: +// intent.setClass(context, CaseUploadActivity.class); +// break; +// case 1: +// intent.setClass(context, UrgentCaseActivity.class); +// break; +// case 2: +// intent.setClass(context, OvertimeCaseActivity.class); +// break; +// case 3: +// intent.setClass(context, DataAnalysisActivity.class); +// break; +// case 4: +// intent.setClass(context, PersonOnlineActivity.class); +// break; +// case 5: +// intent.setClass(context, CaseSearchActivity.class); +// break; +// default: +// break; +// } +// startActivity(intent); +// } +// }); +// break; + default: + break; + } + homeRecyclerView.setAdapter(adapter); } } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java index 430f8be..fa2df7a 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandledBean; import com.casic.dcms.mvp.presenter.CaseHandledListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandledListView; +import com.casic.dcms.ui.CaseHandledDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -128,10 +130,9 @@ adapter.setOnItemClickListener(new CaseHandledAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandledDetailActivity.class); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java index 502c288..05306fe 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -130,10 +132,10 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "待办案卷"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java index 25877de..743a092 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java @@ -17,7 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; -import com.casic.dcms.ui.CaseHandleOvertimeDetailActivity; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -133,7 +133,8 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { - Intent intent = new Intent(context, CaseHandleOvertimeDetailActivity.class); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "超时案卷"); intent.putExtra("id", dataBeans.get(position).getId()); startActivity(intent); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java index f957e26..ae0b3e5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -131,10 +133,10 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "紧急案卷"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java index 18178eb..5d51969 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.OvertimeCaseBean; import com.casic.dcms.mvp.presenter.OvertimeCaseListPresenterImpl; import com.casic.dcms.mvp.view.IOvertimeCaseListView; +import com.casic.dcms.ui.CaseTodoDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -128,10 +130,10 @@ adapter.setOnItemClickListener(new OvertimeCaseAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseTodoDetailActivity.class); + intent.putExtra("title", "超时督办"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java index 19c6766..51bdbd0 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.mvp.presenter.UrgentCaseListPresenterImpl; import com.casic.dcms.mvp.view.IUrgentCaseListView; +import com.casic.dcms.ui.CaseTodoDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -129,10 +131,10 @@ adapter.setOnItemClickListener(new UrgentCaseAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseTodoDetailActivity.class); + intent.putExtra("title", "紧急要件"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } 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 233b5d1..2e68d04 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -9,18 +9,38 @@ import java.util.List; public class Constant { - public static final List ICONS = Arrays.asList( + public static final String[] USER_PERMISSIONS = { + Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION, + Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO, + Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE, + Manifest.permission.CALL_PHONE}; + + public static final List ALL_ICONS = Arrays.asList( R.mipmap.ajsb, R.mipmap.kssb, R.mipmap.sbsb, R.mipmap.ajhs, R.mipmap.ajhc, R.mipmap.ajcl, R.mipmap.jjyj, R.mipmap.csdb, R.mipmap.tjfx, R.mipmap.zgry, R.mipmap.ajcx, R.mipmap.dtck); - public static final List ITEMS = Arrays.asList( + public static final List ALL_ITEMS = Arrays.asList( "案卷上报", "快速上报", "五包上报", "案卷核实", "案卷核查", "案卷处理", "紧急要件", "超时督办", "统计分析", "在岗人员", "案卷查询", "地图查看"); + public static final List PROCESS_ICONS = Arrays.asList( + R.mipmap.ajcl, R.mipmap.ajcx); + + public static final List PROCESS_ITEMS = Arrays.asList( + "案卷处理", "案卷查询"); + + public static final List LEADER_ICONS = Arrays.asList( + R.mipmap.ajsb, R.mipmap.jjyj, R.mipmap.csdb, + R.mipmap.tjfx, R.mipmap.zgry, R.mipmap.ajcx); + + public static final List LEADER_ITEMS = Arrays.asList( + "案卷上报", "紧急要件", "超时督办", + "统计分析", "在岗人员", "案卷查询"); + public static final List ANALYSIS_ICONS = Arrays.asList( R.mipmap.sbsb, R.mipmap.jjyj, R.mipmap.csdb, R.mipmap.ajcl, R.mipmap.tjfx, R.mipmap.ajhc); @@ -29,17 +49,6 @@ "问题来源", "案卷状态", "高发问题", "街道统计", "处理统计", "趋势分析"); - public static final List CATEGORY = Arrays.asList("请选择", "情况属实", "情况不属实"); - - public static final String[] USER_PERMISSIONS = { - Manifest.permission.ACCESS_COARSE_LOCATION, - Manifest.permission.ACCESS_FINE_LOCATION, - Manifest.permission.CAMERA, - Manifest.permission.READ_EXTERNAL_STORAGE, - Manifest.permission.WRITE_EXTERNAL_STORAGE, - Manifest.permission.RECORD_AUDIO, - Manifest.permission.CALL_PHONE}; - //先预置8种颜色 public static final int[] PIE_COLORS = {Color.rgb(28, 197, 220), Color.rgb(255, 223, 107), Color.rgb(242, 17, 112), diff --git a/app/src/main/java/com/casic/dcms/utils/StringHelper.java b/app/src/main/java/com/casic/dcms/utils/StringHelper.java index 1201063..5aeb8f6 100644 --- a/app/src/main/java/com/casic/dcms/utils/StringHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/StringHelper.java @@ -60,7 +60,9 @@ return ""; } String data = url.replace("\\", "/"); - return SaveKeyValues.getValue(Constant.IP_KEY, "http://111.198.10.15:11409") + "/static/" + data; + String imagePath = SaveKeyValues.getValue(Constant.IP_KEY, "http://111.198.10.15:11409") + "/static/" + data; + Log.d(TAG, "appendCompleteURL: "+imagePath); + return imagePath; } public static String reformatURL(List urls) { 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 ec230dd..16bafa1 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 @@ -14,6 +14,7 @@ import com.casic.dcms.bean.CaseStatusBean; import com.casic.dcms.bean.CaseVerifiedBean; import com.casic.dcms.bean.CaseVerifyBean; +import com.casic.dcms.bean.CommonSentenceBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; import com.casic.dcms.bean.LoginResultBean; @@ -345,6 +346,12 @@ @Query("caseState") String caseState); /** + * 获取常见语句 + */ + @GET("/dict/code/commonApproval") + Observable obtainCommonSentence(@Header("token") String token); + + /** * 案卷处理 *

* 案卷核实-仅添加核实意见/核实情况/核实图片 @@ -401,4 +408,12 @@ @Field("communityCode") String communityCode, @Field("gridId") String gridId, @Field("fieldintro") String fieldintro); + + /** + * 紧急要件-超时督办 + */ + @GET("/casedetail/updateSuperviseRemarks") + Observable updateSuperviseRemarks(@Header("token") String token, + @Query("id") String id, + @Query("superviseRemarks") String superviseRemarks); } 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 0c77b61..226b287 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 @@ -16,6 +16,7 @@ import com.casic.dcms.bean.CaseStatusBean; import com.casic.dcms.bean.CaseVerifiedBean; import com.casic.dcms.bean.CaseVerifyBean; +import com.casic.dcms.bean.CommonSentenceBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; import com.casic.dcms.bean.LoginResultBean; @@ -397,6 +398,15 @@ } /** + * 获取常见语句 + */ + public static Observable getCommonSentenceResult() { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainCommonSentence(TokenHelper.getToken()); + } + + /** * 案卷处理 *

* 案卷核实-仅添加核实意见/核实情况/核实图片 @@ -445,4 +455,13 @@ remarks, fileId, eorc, casetypeCode, casetypeDetailCode, lng, lat, caseLevel, areaCode, streetCode, communityCode, gridId, fieldintro); } + + /** + * 紧急要件-超时督办 + */ + public static Observable getUpdateSuperviseResult(String id, String superviseRemarks) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.updateSuperviseRemarks(TokenHelper.getToken(), id, superviseRemarks); + } } diff --git a/app/src/main/res/drawable/ic_load_error.xml b/app/src/main/res/drawable/ic_load_error.xml new file mode 100644 index 0000000..5ad71a1 --- /dev/null +++ b/app/src/main/res/drawable/ic_load_error.xml @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/activity_big_pic.xml b/app/src/main/res/layout/activity_big_pic.xml index 551ed62..bc09ace 100644 --- a/app/src/main/res/layout/activity_big_pic.xml +++ b/app/src/main/res/layout/activity_big_pic.xml @@ -1,16 +1,17 @@ - - + android:layout_height="wrap_content" + android:fitsSystemWindows="true" /> + - \ No newline at end of file + android:layout_height="wrap_content" /> + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_case_check_detail.xml b/app/src/main/res/layout/activity_case_check_detail.xml index 607d1eb..58bc5d4 100644 --- a/app/src/main/res/layout/activity_case_check_detail.xml +++ b/app/src/main/res/layout/activity_case_check_detail.xml @@ -16,28 +16,6 @@ android:layout_height="wrap_content" android:orientation="vertical"> - - - - - - - - - diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml new file mode 100644 index 0000000..44f84e7 --- /dev/null +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_case_handle_overtime.xml b/app/src/main/res/layout/activity_case_handle_overtime.xml deleted file mode 100644 index 44f84e7..0000000 --- a/app/src/main/res/layout/activity_case_handle_overtime.xml +++ /dev/null @@ -1,213 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f6ac20a..2070c95 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -67,12 +67,14 @@ - + - + + + { private Context context; + private List iconData = new ArrayList<>(); + private List itemData = new ArrayList<>(); public HomeRecycleAdapter(Context context) { this.context = context; } + public void setItemData(@Nullable List icons, @Nullable List items) { + this.iconData = icons; + this.itemData = items; + } + @NonNull @Override public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -30,7 +40,7 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - holder.bindView(context, position); + holder.bindView(position); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override @@ -43,7 +53,7 @@ @Override public int getItemCount() { - return Constant.ITEMS.size(); + return itemData.size(); } private OnGridItemClickListener clickListener; @@ -56,7 +66,7 @@ this.clickListener = onGridItemClickListener; } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { private ImageView imageView; private TextView textView; @@ -67,9 +77,9 @@ textView = itemView.findViewById(R.id.textView); } - void bindView(Context context, int position) { - imageView.setBackgroundResource(Constant.ICONS.get(position)); - textView.setText(Constant.ITEMS.get(position)); + void bindView(int position) { + imageView.setBackgroundResource(iconData.get(position)); + textView.setText(itemData.get(position)); } } } diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index b9c4615..d9b10e0 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; import java.util.ArrayList; @@ -62,7 +63,10 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - Glide.with(context).load(mediaList.get(position)).into(holder.imageView); + Glide.with(context) + .load(mediaList.get(position)) + .apply(new RequestOptions().error(R.drawable.ic_load_error)) + .into(holder.imageView); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/casic/dcms/base/BaseActivity.java b/app/src/main/java/com/casic/dcms/base/BaseActivity.java index caf0356..2ca87fe 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseActivity.java +++ b/app/src/main/java/com/casic/dcms/base/BaseActivity.java @@ -17,8 +17,8 @@ setContentView(initLayoutView()); ButterKnife.bind(this); QMUIStatusBarHelper.translucent(this);//沉浸式状态栏 - setupTopBarLayout(); initData(); + setupTopBarLayout(); initEvent(); } diff --git a/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java new file mode 100644 index 0000000..8de58a4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java @@ -0,0 +1,78 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CommonSentenceBean { + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 请及时处理 + * id : 156 + * value : 请及时处理 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java new file mode 100644 index 0000000..5258d89 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CommonSentenceBean; +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 CaseCommonSentenceModelImpl implements ICaseCommonSentenceModel { + + private OnGetCommonSentenceListener sentenceListener; + + public CaseCommonSentenceModelImpl(OnGetCommonSentenceListener commonSentenceListener) { + this.sentenceListener = commonSentenceListener; + } + + public interface OnGetCommonSentenceListener { + void onSuccess(CommonSentenceBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCommonSentenceResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (sentenceListener != null) { + sentenceListener.onFailure(e); + } + } + + @Override + public void onNext(CommonSentenceBean resultBean) { + if (resultBean != null) { + sentenceListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java new file mode 100644 index 0000000..a8cb3fc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java @@ -0,0 +1,53 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseUpdateSuperviseModelImpl implements ICaseUpdateSuperviseModel { + + private OnUpdateSuperviseListener listener; + + public CaseUpdateSuperviseModelImpl(OnUpdateSuperviseListener updateSuperviseListener) { + this.listener = updateSuperviseListener; + } + + /** + * 数据回调接口 + */ + public interface OnUpdateSuperviseListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String superviseRemarks) { + Observable observable = RetrofitServiceManager.getUpdateSuperviseResult(id, superviseRemarks); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java new file mode 100644 index 0000000..263ef6c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseCommonSentenceModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java new file mode 100644 index 0000000..518d602 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseUpdateSuperviseModel { + Subscription sendRetrofitRequest(String id, String superviseRemarks); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java new file mode 100644 index 0000000..6b65f13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseCommonSentenceModelImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; + +public class CaseCommonSentencePresenterImpl extends BasePresenter implements ICaseCommonSentencePresenter, + CaseCommonSentenceModelImpl.OnGetCommonSentenceListener { + + private ICaseCommonSentenceView view; + private CaseCommonSentenceModelImpl actionModel; + + public CaseCommonSentencePresenterImpl(ICaseCommonSentenceView commonSentenceView) { + this.view = commonSentenceView; + actionModel = new CaseCommonSentenceModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CommonSentenceBean resultBean) { + view.obtainCommonSentenceData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java new file mode 100644 index 0000000..66e1f44 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseUpdateSuperviseModelImpl; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; + +public class CaseUpdateSupervisePresenterImpl extends BasePresenter implements ICaseUpdateSupervisePresenter, + CaseUpdateSuperviseModelImpl.OnUpdateSuperviseListener { + + private ICaseUpdateSuperviseView view; + private CaseUpdateSuperviseModelImpl actionModel; + + public CaseUpdateSupervisePresenterImpl(ICaseUpdateSuperviseView updateSuperviseView) { + this.view = updateSuperviseView; + actionModel = new CaseUpdateSuperviseModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String superviseRemarks) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, superviseRemarks)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainUpdateSuperviseData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java new file mode 100644 index 0000000..1f8bd09 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseCommonSentencePresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java new file mode 100644 index 0000000..f61f9b2 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseUpdateSupervisePresenter { + void onReadyRetrofitRequest(String id, String superviseRemarks); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java new file mode 100644 index 0000000..9c7b08b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CommonSentenceBean; + +public interface ICaseCommonSentenceView { + void obtainCommonSentenceData(CommonSentenceBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java new file mode 100644 index 0000000..10bcf5a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICaseUpdateSuperviseView { + void showProgress(); + + void hideProgress(); + + void obtainUpdateSuperviseData(ActionResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java index ad70b7a..9143db8 100644 --- a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.ui; +import android.view.View; + +import androidx.core.content.ContextCompat; + import com.bumptech.glide.Glide; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.luck.picture.lib.photoview.PhotoView; -import com.qmuiteam.qmui.util.QMUIStatusBarHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; import butterknife.BindView; @@ -15,6 +19,8 @@ **/ public class BigPictureActivity extends BaseActivity { + @BindView(R.id.imageTopLayout) + QMUITopBarLayout imageTopLayout; @BindView(R.id.photoView) PhotoView photoView; @@ -25,37 +31,24 @@ @Override protected void setupTopBarLayout() { - QMUIStatusBarHelper.setStatusBarLightMode(this); + imageTopLayout.setTitle("查看大图").setTextColor(ContextCompat.getColor(this, R.color.white)); + imageTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + imageTopLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); } @Override public void initData() { -// String mediaJson = getIntent().getStringExtra("mediaJson"); -// -// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() { -// }.getType()); -// -// list = new ArrayList<>(); -// assert mediaList != null; -// for (LocalMedia media : mediaList) { -// list.add(media.getRealPath()); -// } String path = getIntent().getStringExtra("path"); Glide.with(this).load(path).into(photoView); } @Override public void initEvent() { -// //轮播图 -// bigImageBanner.setImageLoader(new ImageLoader() { -// -// @Override -// public void displayImage(Context context, Object path, ImageView imageView) { -// Glide.with(context).load(path).into(imageView); -// } -// }); -// bigImageBanner.isAutoPlay(false); -// bigImageBanner.setImages(list); -// bigImageBanner.start(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index 01a3807..7548cfc 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -329,7 +329,7 @@ caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java new file mode 100644 index 0000000..d4dba38 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -0,0 +1,505 @@ +package com.casic.dcms.ui; + +import android.content.DialogInterface; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseNextNodeBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseHandleView; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseNextNodeView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.IUploadFileView; +import com.casic.dcms.utils.FileUtils; +import com.casic.dcms.utils.GlideLoadEngine; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.luck.picture.lib.PictureSelector; +import com.luck.picture.lib.config.PictureConfig; +import com.luck.picture.lib.config.PictureMimeType; +import com.luck.picture.lib.entity.LocalMedia; +import com.luck.picture.lib.tools.PictureFileUtils; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, + ICaseHandleView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @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) + EditText casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.caseHandleView) + TextView caseHandleView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseStartTimeView) + TextView caseStartTimeView; + @BindView(R.id.caseEndTimeView) + TextView caseEndTimeView; + @BindView(R.id.caseHandleResultView) + TextView caseHandleResultView; + @BindView(R.id.caseHandleRecyclerView) + RecyclerView caseHandleRecyclerView; + @BindView(R.id.addImageView) + ImageView addImageView; + @BindView(R.id.caseReasonView) + EditText caseReasonView; + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private String changeState; + private String caseReason; + private String approvalResult; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private List largeClassBeans = new ArrayList<>(); + private List smallClassBeans = new ArrayList<>(); + private List realPaths = new ArrayList<>();//真实图片路径 + private List mediaList = new ArrayList<>();//上传到服务器的数据集 + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private CaseNextNodePresenterImpl caseNextNodePresenter; + private UploadImagePresenterImpl uploadImagePresenter; + private CaseHandlePresenterImpl caseHandlePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handle_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseNextNodePresenter = new CaseNextNodePresenterImpl(this); + uploadImagePresenter = new UploadImagePresenterImpl(this); + caseHandlePresenter = new CaseHandlePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @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()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + caseStartTimeView.setText(data.getCreateTime()); + caseEndTimeView.setText(data.getNodeLimittime()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeTypeView.setText("无小类"); + } else { + caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 + } + caseSmallTypeView.setText("请选择"); + } + } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallTypeView.setText("无小类"); + } else { + caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 + } + } + } + + @Override + public void obtainNextNodeData(CaseNextNodeBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处理结果"); + for (CaseNextNodeBean.DataBean dataBean : dataBeans) { + 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(); + + CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); + caseHandleResultView.setText(dataBean.getNextOperation()); + changeState = String.valueOf(dataBean.getNextState()); + approvalResult = dataBean.getApprovalResult(); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseClassLayout: + 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(); + + caseTypeView.setText(tag); + //获取案卷大类 + caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseLargeTypeView.setText(tag); + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseSmallTypeView.setText(tag); + } + }).build().show(); + } + } + break; + case R.id.caseHandleResultLayout: + caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); + break; + case R.id.addImageView: + new QMUIDialog.MenuDialogBuilder(this) + .addItem("相册中选取", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //选图 + selectPicture(); + } + }) + .addItem("相机拍照", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //拍照 + takePicture(); + } + }) + .create().show(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String handleResult = caseHandleResultView.getText().toString(); + if (handleResult.equals("请选择")) { + ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); + return; + } + if (handleResult.equals("处理完成")) { + //选择处理完成时,处理图片必传。至少一张,最多两张 + if (mediaList.size() < 1 || mediaList.size() > 2) { + ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); + return; + } + } + if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { + caseReason = caseReasonView.getText().toString(); + if (TextUtils.isEmpty(caseReason)) { + ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); + return; + } + } + caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), + changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); + } + + private void selectPicture() { + PictureSelector.create(this) + .openGallery(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(2) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.CHOOSE_REQUEST); + } + + private void takePicture() { + PictureSelector.create(this) + .openCamera(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(1) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.REQUEST_CAMERA); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == RESULT_OK) { + switch (requestCode) { + case PictureConfig.CHOOSE_REQUEST: + List selectList = PictureSelector.obtainMultipleResult(data); + for (LocalMedia media : selectList) { + String mediaCompressPath = media.getCompressPath(); + uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); + } + break; + case PictureConfig.REQUEST_CAMERA: + LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); + uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); + break; + default: + break; + } + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUploadAudioResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainUploadImageResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + PictureFileUtils.deleteAllCacheDirFile(this); + /** + * 系统路径static拼接图片返回路径 + * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg + */ + //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg + String url = resultBean.getData(); + mediaList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(realPaths); + caseHandleRecyclerView.setVisibility(View.VISIBLE); + caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); + caseHandleRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(realPaths.get(position)); + } + }); + //删除按钮点击事件 + imageAdapter.setDeleteView(true); + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } + } + + @Override + public void obtainUploadVideoResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainCaseHandleResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseNextNodePresenter != null) { + caseNextNodePresenter.disposeRetrofitRequest(); + } + if (uploadImagePresenter != null) { + uploadImagePresenter.disposeRetrofitRequest(); + } + if (caseHandlePresenter != null) { + caseHandlePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java deleted file mode 100644 index bd187c5..0000000 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java +++ /dev/null @@ -1,500 +0,0 @@ -package com.casic.dcms.ui; - -import android.content.DialogInterface; -import android.content.Intent; -import android.text.TextUtils; -import android.view.View; -import android.widget.EditText; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.Nullable; -import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.adapter.ImageRecycleViewAdapter; -import com.casic.dcms.base.BaseCaseActivity; -import com.casic.dcms.bean.ActionResultBean; -import com.casic.dcms.bean.CaseDetailBean; -import com.casic.dcms.bean.CaseLargeClassBean; -import com.casic.dcms.bean.CaseNextNodeBean; -import com.casic.dcms.bean.CaseSmallClassBean; -import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; -import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; -import com.casic.dcms.mvp.view.ICaseDetailView; -import com.casic.dcms.mvp.view.ICaseHandleView; -import com.casic.dcms.mvp.view.ICaseLargeClassView; -import com.casic.dcms.mvp.view.ICaseNextNodeView; -import com.casic.dcms.mvp.view.ICaseSmallClassView; -import com.casic.dcms.mvp.view.IUploadFileView; -import com.casic.dcms.utils.FileUtils; -import com.casic.dcms.utils.GlideLoadEngine; -import com.casic.dcms.utils.ItemDecorationSpace; -import com.casic.dcms.utils.StringHelper; -import com.casic.dcms.utils.ToastHelper; -import com.luck.picture.lib.PictureSelector; -import com.luck.picture.lib.config.PictureConfig; -import com.luck.picture.lib.config.PictureMimeType; -import com.luck.picture.lib.entity.LocalMedia; -import com.luck.picture.lib.tools.PictureFileUtils; -import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; -import com.qmuiteam.qmui.widget.dialog.QMUIDialog; -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; - -import butterknife.BindView; -import butterknife.OnClick; - -public class CaseHandleOvertimeDetailActivity extends BaseCaseActivity implements View.OnClickListener, - ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, - ICaseHandleView { - - @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) - EditText casePlaceView; - @BindView(R.id.caseSituationView) - TextView caseSituationView; - @BindView(R.id.caseHandleView) - TextView caseHandleView; - @BindView(R.id.casePicRecyclerView) - RecyclerView casePicRecyclerView; - @BindView(R.id.caseStartTimeView) - TextView caseStartTimeView; - @BindView(R.id.caseEndTimeView) - TextView caseEndTimeView; - @BindView(R.id.caseHandleResultView) - TextView caseHandleResultView; - @BindView(R.id.caseHandleRecyclerView) - RecyclerView caseHandleRecyclerView; - @BindView(R.id.addImageView) - ImageView addImageView; - @BindView(R.id.caseReasonView) - EditText caseReasonView; - @BindView(R.id.submitButton) - QMUIRoundButton submitButton; - - private String id; - private String changeState; - private String caseReason; - private String approvalResult; - private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); - private List largeClassBeans = new ArrayList<>(); - private List smallClassBeans = new ArrayList<>(); - private List realPaths = new ArrayList<>();//真实图片路径 - private List mediaList = new ArrayList<>();//上传到服务器的数据集 - - private CaseDetailPresenterImpl caseDetailPresenter; - private CaseLargeClassPresenterImpl caseLargeClassPresenter; - private CaseSmallClassPresenterImpl caseSmallClassPresenter; - private CaseNextNodePresenterImpl caseNextNodePresenter; - private UploadImagePresenterImpl uploadImagePresenter; - private CaseHandlePresenterImpl caseHandlePresenter; - - private QMUITipDialog submitDialog; - - @Override - public int initLayoutView() { - return R.layout.activity_case_handle_overtime; - } - - @Override - protected String setTitleName() { - return "超时案卷"; - } - - @Override - public void initData() { - id = getIntent().getStringExtra("id"); - caseDetailPresenter = new CaseDetailPresenterImpl(this); - caseDetailPresenter.onReadyRetrofitRequest(id); - - caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); - caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); - caseNextNodePresenter = new CaseNextNodePresenterImpl(this); - uploadImagePresenter = new UploadImagePresenterImpl(this); - caseHandlePresenter = new CaseHandlePresenterImpl(this); - - submitDialog = new QMUITipDialog.Builder(this) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord("提交中,请稍后") - .create(); - } - - @Override - public void initEvent() { - submitButton.setChangeAlphaWhenPress(true); - } - - @Override - public void obtainCaseDetailData(CaseDetailBean resultBean) { - if (resultBean.isSuccess()) { - this.data = resultBean.getData().get(0); - caseTypeView.setText(data.getEorcName()); - caseLargeTypeView.setText(data.getCasetypeName()); - caseSmallTypeView.setText(data.getCasetypeDetailName()); - caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro()); - caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); - caseStartTimeView.setText(data.getCreateTime()); - caseEndTimeView.setText(data.getNodeLimittime()); - - String verifyImages = data.getFileIdVerify(); - if (!TextUtils.isEmpty(verifyImages)) { - List urls = new ArrayList<>(); - String[] split = verifyImages.split(","); - for (String s : split) { - urls.add(StringHelper.appendCompleteURL(s)); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(urls); - casePicRecyclerView.setVisibility(View.VISIBLE); - casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); - casePicRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(urls.get(position)); - } - }); - imageAdapter.setDeleteView(false); - } - } - } - - private void showBigImage(String path) { - Intent intent = new Intent(this, BigPictureActivity.class); - intent.putExtra("path", path); - startActivity(intent); - } - - @Override - public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { - if (largeClassBean.isSuccess()) { - //设置大类数据 - this.largeClassBeans = largeClassBean.getData(); - if (largeClassBeans.size() == 0) { - caseLargeTypeView.setText("无小类"); - } else { - caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 - } - caseSmallTypeView.setText("请选择"); - } - } - - @Override - public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { - if (smallClassBean.isSuccess()) { - //设置大类数据 - this.smallClassBeans = smallClassBean.getData(); - if (smallClassBeans.size() == 0) { - caseSmallTypeView.setText("无小类"); - } else { - caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 - } - } - } - - @Override - public void obtainNextNodeData(CaseNextNodeBean resultBean) { - if (resultBean.isSuccess()) { - List dataBeans = resultBean.getData(); - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("处理结果"); - for (CaseNextNodeBean.DataBean dataBean : dataBeans) { - 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(); - - CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); - caseHandleResultView.setText(dataBean.getNextOperation()); - changeState = String.valueOf(dataBean.getNextState()); - approvalResult = dataBean.getApprovalResult(); - } - }).build().show(); - } else { - ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); - } - } - - @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) - @Override - public void onClick(View v) { - switch (v.getId()) { - case R.id.caseClassLayout: - 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(); - - caseTypeView.setText(tag); - //获取案卷大类 - caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); - } - }).build().show(); - break; - case R.id.caseLargeClassLayout: - if (largeClassBeans != null) { - if (largeClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷大类"); - for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { - sheetBuilder.addItem(dataBean.getTypeName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseLargeTypeView.setText(tag); - //获取案卷小类 - CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); - String typeId = dataBean.getId(); - caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); - } - }).build().show(); - } - } - break; - case R.id.caseSmallClassLayout: - if (smallClassBeans != null) { - if (smallClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷小类"); - for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { - sheetBuilder.addItem(dataBean.getTypeDetailName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseSmallTypeView.setText(tag); - } - }).build().show(); - } - } - break; - case R.id.caseHandleResultLayout: - caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); - break; - case R.id.addImageView: - new QMUIDialog.MenuDialogBuilder(this) - .addItem("相册中选取", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //选图 - selectPicture(); - } - }) - .addItem("相机拍照", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //拍照 - takePicture(); - } - }) - .create().show(); - break; - case R.id.submitButton: - submitCase();//案卷提交 - break; - default: - break; - } - } - - private void submitCase() { - String handleResult = caseHandleResultView.getText().toString(); - if (handleResult.equals("请选择")) { - ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); - return; - } - if (handleResult.equals("处理完成")) { - //选择处理完成时,处理图片必传。至少一张,最多两张 - if (mediaList.size() < 1 || mediaList.size() > 2) { - ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); - return; - } - } - if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { - caseReason = caseReasonView.getText().toString(); - if (TextUtils.isEmpty(caseReason)) { - ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); - return; - } - } - caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), - changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); - } - - private void selectPicture() { - PictureSelector.create(this) - .openGallery(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(2) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.CHOOSE_REQUEST); - } - - private void takePicture() { - PictureSelector.create(this) - .openCamera(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(1) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.REQUEST_CAMERA); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if (resultCode == RESULT_OK) { - switch (requestCode) { - case PictureConfig.CHOOSE_REQUEST: - List selectList = PictureSelector.obtainMultipleResult(data); - for (LocalMedia media : selectList) { - String mediaCompressPath = media.getCompressPath(); - uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); - } - break; - case PictureConfig.REQUEST_CAMERA: - LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); - uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); - break; - default: - break; - } - } - } - - @Override - public void showProgress() { - submitDialog.show(); - } - - @Override - public void hideProgress() { - submitDialog.hide(); - } - - @Override - public void obtainUploadAudioResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainUploadImageResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - PictureFileUtils.deleteAllCacheDirFile(this); - /** - * 系统路径static拼接图片返回路径 - * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg - */ - //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String url = resultBean.getData(); - mediaList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(realPaths); - caseHandleRecyclerView.setVisibility(View.VISIBLE); - caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); - caseHandleRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(realPaths.get(position)); - } - }); - //删除按钮点击事件 - imageAdapter.setDeleteView(true); - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); - } - } - }); - } - } - - @Override - public void obtainUploadVideoResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainCaseHandleResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); - finish(); - } else { - ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); - } - } - - @Override - protected void onDestroy() { - super.onDestroy(); - if (caseDetailPresenter != null) { - caseDetailPresenter.disposeRetrofitRequest(); - } - if (caseLargeClassPresenter != null) { - caseLargeClassPresenter.disposeRetrofitRequest(); - } - if (caseSmallClassPresenter != null) { - caseSmallClassPresenter.disposeRetrofitRequest(); - } - if (caseNextNodePresenter != null) { - caseNextNodePresenter.disposeRetrofitRequest(); - } - if (uploadImagePresenter != null) { - uploadImagePresenter.disposeRetrofitRequest(); - } - if (caseHandlePresenter != null) { - caseHandlePresenter.disposeRetrofitRequest(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java new file mode 100644 index 0000000..5ea5403 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -0,0 +1,145 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { + + @BindView(R.id.detailTopLayout) + QMUITopBarLayout detailTopLayout; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @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; + + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private CaseDetailPresenterImpl caseDetailPresenter; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handled_detail; + } + + @Override + protected void setupTopBarLayout() { + detailTopLayout.setTitle("已办案卷").setTextColor(ContextCompat.getColor(this, R.color.white)); + detailTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + detailTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + String id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + } + + @Override + public void initEvent() { + + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseHandleStatusView.setText(data.getCaseStateName()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @OnClick(R.id.handleLayout) + @Override + public void onClick(View v) { + if (v.getId() == R.id.handleLayout) { + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java new file mode 100644 index 0000000..3b2d3d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -0,0 +1,228 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.TextView; + +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.presenter.CaseCommonSentencePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseUpdateSupervisePresenterImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseOverTimeView) + TextView caseOverTimeView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @BindView(R.id.casePlaceView) + EditText casePlaceView; + @BindView(R.id.caseDescriptionView) + TextView caseDescriptionView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseHandleResultView) + EditText caseHandleResultView; + @BindView(R.id.caseCommonSentenceView) + TextView caseCommonSentenceView; + + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseCommonSentencePresenterImpl commonSentencePresenter; + private CaseUpdateSupervisePresenterImpl updateSupervisePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_todo_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + commonSentencePresenter = new CaseCommonSentencePresenterImpl(this); + updateSupervisePresenter = new CaseUpdateSupervisePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @Override + public void initEvent() { + + } + + @OnClick({R.id.caseHandleLayout, R.id.caseCommonSentenceLayout, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseHandleLayout: + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + break; + case R.id.caseCommonSentenceLayout: + commonSentencePresenter.onReadyRetrofitRequest(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String remarks = caseHandleResultView.getText().toString(); + if (TextUtils.isEmpty(remarks)) { + ToastHelper.showToast("督办意见不能为空", ToastHelper.WARING); + return; + } + updateSupervisePresenter.onReadyRetrofitRequest(id, remarks); + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseOverTimeView.setText(data.getNodeLimittime()); + caseHandleStatusView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + casePlaceView.setText(data.getFieldintro()); + caseDescriptionView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainCommonSentenceData(CommonSentenceBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("常用语句"); + for (CommonSentenceBean.DataBean dataBean : dataBeans) { + 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(); + + CommonSentenceBean.DataBean dataBean = dataBeans.get(position); + caseCommonSentenceView.setText(dataBean.getName()); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUpdateSuperviseData(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷督办提交成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷督办提交失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (commonSentencePresenter != null) { + commonSentencePresenter.disposeRetrofitRequest(); + } + if (updateSupervisePresenter != null) { + updateSupervisePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 3060e1b..af6a9fe 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -191,7 +191,7 @@ caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); - caseHandleView.setText(data.getUrgeRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); caseSituationView.setText(data.getDescription()); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index 7816221..3989633 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -28,6 +28,7 @@ import com.casic.dcms.ui.OvertimeCaseActivity; import com.casic.dcms.ui.PersonOnlineActivity; import com.casic.dcms.ui.UrgentCaseActivity; +import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.StringHelper; import com.qmuiteam.qmui.widget.QMUIRadiusImageView; @@ -69,62 +70,12 @@ @Override protected void initEvent() { - HomeRecycleAdapter adapter = new HomeRecycleAdapter(context); - homeRecyclerView.setLayoutManager(new GridLayoutManager(context, 3)); - homeRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - Intent intent = new Intent(); - switch (position) { - case 0: - intent.setClass(context, CaseUploadActivity.class); - break; - case 1: - intent.setClass(context, CaseUploadQuicklyActivity.class); - break; - case 2: - intent.setClass(context, FivePackageUploadActivity.class); - break; - case 3: - intent.setClass(context, CaseVerifyActivity.class); - break; - case 4: - intent.setClass(context, CaseCheckActivity.class); - break; - case 5: - intent.setClass(context, CaseHandleActivity.class); - break; - case 6: - intent.setClass(context, UrgentCaseActivity.class); - break; - case 7: - intent.setClass(context, OvertimeCaseActivity.class); - break; - case 8: - intent.setClass(context, DataAnalysisActivity.class); - break; - case 9: - intent.setClass(context, PersonOnlineActivity.class); - break; - case 10: - intent.setClass(context, CaseSearchActivity.class); - break; - case 11: - intent.setClass(context, MapWatchViewActivity.class); - break; - default: - break; - } - startActivity(intent); - } - }); + } @SuppressLint("SetTextI18n") @Override public void obtainUserData(UserBean userBean) { -// Log.d(TAG, "obtainUserData: " + new Gson().toJson(userBean)); if (userBean.isSuccess()) { //QMUIRadiusImageView无法动态设置圆形头像,借助Glide实现圆形头像 Glide.with(this).load(R.mipmap.app_logo).apply(RequestOptions.circleCropTransform()).into(userIconView); @@ -137,6 +88,121 @@ StringHelper.saveUserPhone(data.getPhone()); StringHelper.saveUserDept(data.getDeptName()); StringHelper.saveUserDeptId(data.getDeptId()); + + //权限控制 + String roleTip = data.getRoleTips().get(0); + HomeRecycleAdapter adapter = new HomeRecycleAdapter(context); + homeRecyclerView.setLayoutManager(new GridLayoutManager(context, 3)); + switch (roleTip) { + case "supervisor": + //All + adapter.setItemData(Constant.ALL_ICONS, Constant.ALL_ITEMS); + adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { + @Override + public void onClick(int position) { + Intent intent = new Intent(); + switch (position) { + case 0: + intent.setClass(context, CaseUploadActivity.class); + break; + case 1: + intent.setClass(context, CaseUploadQuicklyActivity.class); + break; + case 2: + intent.setClass(context, FivePackageUploadActivity.class); + break; + case 3: + intent.setClass(context, CaseVerifyActivity.class); + break; + case 4: + intent.setClass(context, CaseCheckActivity.class); + break; + case 5: + intent.setClass(context, CaseHandleActivity.class); + break; + case 6: + intent.setClass(context, UrgentCaseActivity.class); + break; + case 7: + intent.setClass(context, OvertimeCaseActivity.class); + break; + case 8: + intent.setClass(context, DataAnalysisActivity.class); + break; + case 9: + intent.setClass(context, PersonOnlineActivity.class); + break; + case 10: + intent.setClass(context, CaseSearchActivity.class); + break; + case 11: + intent.setClass(context, MapWatchViewActivity.class); + break; + default: + break; + } + startActivity(intent); + } + }); + break; +// case "process": +// //案卷处理、案卷查询 +// adapter.setItemData(Constant.PROCESS_ICONS, Constant.PROCESS_ITEMS); +// adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { +// @Override +// public void onClick(int position) { +// Intent intent = new Intent(); +// switch (position) { +// case 0: +// intent.setClass(context, CaseHandleActivity.class); +// break; +// case 1: +// intent.setClass(context, CaseSearchActivity.class); +// break; +// default: +// break; +// } +// startActivity(intent); +// } +// }); +// break; +// case "leader": +// //案卷上报、紧急要件、超时督办、统计分析、在岗人员、案卷查询 +// adapter.setItemData(Constant.LEADER_ICONS, Constant.LEADER_ITEMS); +// adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { +// @Override +// public void onClick(int position) { +// Intent intent = new Intent(); +// switch (position) { +// case 0: +// intent.setClass(context, CaseUploadActivity.class); +// break; +// case 1: +// intent.setClass(context, UrgentCaseActivity.class); +// break; +// case 2: +// intent.setClass(context, OvertimeCaseActivity.class); +// break; +// case 3: +// intent.setClass(context, DataAnalysisActivity.class); +// break; +// case 4: +// intent.setClass(context, PersonOnlineActivity.class); +// break; +// case 5: +// intent.setClass(context, CaseSearchActivity.class); +// break; +// default: +// break; +// } +// startActivity(intent); +// } +// }); +// break; + default: + break; + } + homeRecyclerView.setAdapter(adapter); } } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java index 430f8be..fa2df7a 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandledBean; import com.casic.dcms.mvp.presenter.CaseHandledListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandledListView; +import com.casic.dcms.ui.CaseHandledDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -128,10 +130,9 @@ adapter.setOnItemClickListener(new CaseHandledAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandledDetailActivity.class); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java index 502c288..05306fe 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -130,10 +132,10 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "待办案卷"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java index 25877de..743a092 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java @@ -17,7 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; -import com.casic.dcms.ui.CaseHandleOvertimeDetailActivity; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -133,7 +133,8 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { - Intent intent = new Intent(context, CaseHandleOvertimeDetailActivity.class); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "超时案卷"); intent.putExtra("id", dataBeans.get(position).getId()); startActivity(intent); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java index f957e26..ae0b3e5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -131,10 +133,10 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "紧急案卷"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java index 18178eb..5d51969 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.OvertimeCaseBean; import com.casic.dcms.mvp.presenter.OvertimeCaseListPresenterImpl; import com.casic.dcms.mvp.view.IOvertimeCaseListView; +import com.casic.dcms.ui.CaseTodoDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -128,10 +130,10 @@ adapter.setOnItemClickListener(new OvertimeCaseAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseTodoDetailActivity.class); + intent.putExtra("title", "超时督办"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java index 19c6766..51bdbd0 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.mvp.presenter.UrgentCaseListPresenterImpl; import com.casic.dcms.mvp.view.IUrgentCaseListView; +import com.casic.dcms.ui.CaseTodoDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -129,10 +131,10 @@ adapter.setOnItemClickListener(new UrgentCaseAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseTodoDetailActivity.class); + intent.putExtra("title", "紧急要件"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } 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 233b5d1..2e68d04 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -9,18 +9,38 @@ import java.util.List; public class Constant { - public static final List ICONS = Arrays.asList( + public static final String[] USER_PERMISSIONS = { + Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION, + Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO, + Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE, + Manifest.permission.CALL_PHONE}; + + public static final List ALL_ICONS = Arrays.asList( R.mipmap.ajsb, R.mipmap.kssb, R.mipmap.sbsb, R.mipmap.ajhs, R.mipmap.ajhc, R.mipmap.ajcl, R.mipmap.jjyj, R.mipmap.csdb, R.mipmap.tjfx, R.mipmap.zgry, R.mipmap.ajcx, R.mipmap.dtck); - public static final List ITEMS = Arrays.asList( + public static final List ALL_ITEMS = Arrays.asList( "案卷上报", "快速上报", "五包上报", "案卷核实", "案卷核查", "案卷处理", "紧急要件", "超时督办", "统计分析", "在岗人员", "案卷查询", "地图查看"); + public static final List PROCESS_ICONS = Arrays.asList( + R.mipmap.ajcl, R.mipmap.ajcx); + + public static final List PROCESS_ITEMS = Arrays.asList( + "案卷处理", "案卷查询"); + + public static final List LEADER_ICONS = Arrays.asList( + R.mipmap.ajsb, R.mipmap.jjyj, R.mipmap.csdb, + R.mipmap.tjfx, R.mipmap.zgry, R.mipmap.ajcx); + + public static final List LEADER_ITEMS = Arrays.asList( + "案卷上报", "紧急要件", "超时督办", + "统计分析", "在岗人员", "案卷查询"); + public static final List ANALYSIS_ICONS = Arrays.asList( R.mipmap.sbsb, R.mipmap.jjyj, R.mipmap.csdb, R.mipmap.ajcl, R.mipmap.tjfx, R.mipmap.ajhc); @@ -29,17 +49,6 @@ "问题来源", "案卷状态", "高发问题", "街道统计", "处理统计", "趋势分析"); - public static final List CATEGORY = Arrays.asList("请选择", "情况属实", "情况不属实"); - - public static final String[] USER_PERMISSIONS = { - Manifest.permission.ACCESS_COARSE_LOCATION, - Manifest.permission.ACCESS_FINE_LOCATION, - Manifest.permission.CAMERA, - Manifest.permission.READ_EXTERNAL_STORAGE, - Manifest.permission.WRITE_EXTERNAL_STORAGE, - Manifest.permission.RECORD_AUDIO, - Manifest.permission.CALL_PHONE}; - //先预置8种颜色 public static final int[] PIE_COLORS = {Color.rgb(28, 197, 220), Color.rgb(255, 223, 107), Color.rgb(242, 17, 112), diff --git a/app/src/main/java/com/casic/dcms/utils/StringHelper.java b/app/src/main/java/com/casic/dcms/utils/StringHelper.java index 1201063..5aeb8f6 100644 --- a/app/src/main/java/com/casic/dcms/utils/StringHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/StringHelper.java @@ -60,7 +60,9 @@ return ""; } String data = url.replace("\\", "/"); - return SaveKeyValues.getValue(Constant.IP_KEY, "http://111.198.10.15:11409") + "/static/" + data; + String imagePath = SaveKeyValues.getValue(Constant.IP_KEY, "http://111.198.10.15:11409") + "/static/" + data; + Log.d(TAG, "appendCompleteURL: "+imagePath); + return imagePath; } public static String reformatURL(List urls) { 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 ec230dd..16bafa1 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 @@ -14,6 +14,7 @@ import com.casic.dcms.bean.CaseStatusBean; import com.casic.dcms.bean.CaseVerifiedBean; import com.casic.dcms.bean.CaseVerifyBean; +import com.casic.dcms.bean.CommonSentenceBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; import com.casic.dcms.bean.LoginResultBean; @@ -345,6 +346,12 @@ @Query("caseState") String caseState); /** + * 获取常见语句 + */ + @GET("/dict/code/commonApproval") + Observable obtainCommonSentence(@Header("token") String token); + + /** * 案卷处理 *

* 案卷核实-仅添加核实意见/核实情况/核实图片 @@ -401,4 +408,12 @@ @Field("communityCode") String communityCode, @Field("gridId") String gridId, @Field("fieldintro") String fieldintro); + + /** + * 紧急要件-超时督办 + */ + @GET("/casedetail/updateSuperviseRemarks") + Observable updateSuperviseRemarks(@Header("token") String token, + @Query("id") String id, + @Query("superviseRemarks") String superviseRemarks); } 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 0c77b61..226b287 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 @@ -16,6 +16,7 @@ import com.casic.dcms.bean.CaseStatusBean; import com.casic.dcms.bean.CaseVerifiedBean; import com.casic.dcms.bean.CaseVerifyBean; +import com.casic.dcms.bean.CommonSentenceBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; import com.casic.dcms.bean.LoginResultBean; @@ -397,6 +398,15 @@ } /** + * 获取常见语句 + */ + public static Observable getCommonSentenceResult() { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainCommonSentence(TokenHelper.getToken()); + } + + /** * 案卷处理 *

* 案卷核实-仅添加核实意见/核实情况/核实图片 @@ -445,4 +455,13 @@ remarks, fileId, eorc, casetypeCode, casetypeDetailCode, lng, lat, caseLevel, areaCode, streetCode, communityCode, gridId, fieldintro); } + + /** + * 紧急要件-超时督办 + */ + public static Observable getUpdateSuperviseResult(String id, String superviseRemarks) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.updateSuperviseRemarks(TokenHelper.getToken(), id, superviseRemarks); + } } diff --git a/app/src/main/res/drawable/ic_load_error.xml b/app/src/main/res/drawable/ic_load_error.xml new file mode 100644 index 0000000..5ad71a1 --- /dev/null +++ b/app/src/main/res/drawable/ic_load_error.xml @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/activity_big_pic.xml b/app/src/main/res/layout/activity_big_pic.xml index 551ed62..bc09ace 100644 --- a/app/src/main/res/layout/activity_big_pic.xml +++ b/app/src/main/res/layout/activity_big_pic.xml @@ -1,16 +1,17 @@ - - + android:layout_height="wrap_content" + android:fitsSystemWindows="true" /> + - \ No newline at end of file + android:layout_height="wrap_content" /> + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_case_check_detail.xml b/app/src/main/res/layout/activity_case_check_detail.xml index 607d1eb..58bc5d4 100644 --- a/app/src/main/res/layout/activity_case_check_detail.xml +++ b/app/src/main/res/layout/activity_case_check_detail.xml @@ -16,28 +16,6 @@ android:layout_height="wrap_content" android:orientation="vertical"> - - - - - - - - - diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml new file mode 100644 index 0000000..44f84e7 --- /dev/null +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_case_handle_overtime.xml b/app/src/main/res/layout/activity_case_handle_overtime.xml deleted file mode 100644 index 44f84e7..0000000 --- a/app/src/main/res/layout/activity_case_handle_overtime.xml +++ /dev/null @@ -1,213 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_case_handled_detail.xml b/app/src/main/res/layout/activity_case_handled_detail.xml new file mode 100644 index 0000000..fdeb450 --- /dev/null +++ b/app/src/main/res/layout/activity_case_handled_detail.xml @@ -0,0 +1,245 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f6ac20a..2070c95 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -67,12 +67,14 @@ - + - + + + { private Context context; + private List iconData = new ArrayList<>(); + private List itemData = new ArrayList<>(); public HomeRecycleAdapter(Context context) { this.context = context; } + public void setItemData(@Nullable List icons, @Nullable List items) { + this.iconData = icons; + this.itemData = items; + } + @NonNull @Override public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -30,7 +40,7 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - holder.bindView(context, position); + holder.bindView(position); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override @@ -43,7 +53,7 @@ @Override public int getItemCount() { - return Constant.ITEMS.size(); + return itemData.size(); } private OnGridItemClickListener clickListener; @@ -56,7 +66,7 @@ this.clickListener = onGridItemClickListener; } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { private ImageView imageView; private TextView textView; @@ -67,9 +77,9 @@ textView = itemView.findViewById(R.id.textView); } - void bindView(Context context, int position) { - imageView.setBackgroundResource(Constant.ICONS.get(position)); - textView.setText(Constant.ITEMS.get(position)); + void bindView(int position) { + imageView.setBackgroundResource(iconData.get(position)); + textView.setText(itemData.get(position)); } } } diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index b9c4615..d9b10e0 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; import java.util.ArrayList; @@ -62,7 +63,10 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - Glide.with(context).load(mediaList.get(position)).into(holder.imageView); + Glide.with(context) + .load(mediaList.get(position)) + .apply(new RequestOptions().error(R.drawable.ic_load_error)) + .into(holder.imageView); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/casic/dcms/base/BaseActivity.java b/app/src/main/java/com/casic/dcms/base/BaseActivity.java index caf0356..2ca87fe 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseActivity.java +++ b/app/src/main/java/com/casic/dcms/base/BaseActivity.java @@ -17,8 +17,8 @@ setContentView(initLayoutView()); ButterKnife.bind(this); QMUIStatusBarHelper.translucent(this);//沉浸式状态栏 - setupTopBarLayout(); initData(); + setupTopBarLayout(); initEvent(); } diff --git a/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java new file mode 100644 index 0000000..8de58a4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java @@ -0,0 +1,78 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CommonSentenceBean { + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 请及时处理 + * id : 156 + * value : 请及时处理 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java new file mode 100644 index 0000000..5258d89 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CommonSentenceBean; +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 CaseCommonSentenceModelImpl implements ICaseCommonSentenceModel { + + private OnGetCommonSentenceListener sentenceListener; + + public CaseCommonSentenceModelImpl(OnGetCommonSentenceListener commonSentenceListener) { + this.sentenceListener = commonSentenceListener; + } + + public interface OnGetCommonSentenceListener { + void onSuccess(CommonSentenceBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCommonSentenceResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (sentenceListener != null) { + sentenceListener.onFailure(e); + } + } + + @Override + public void onNext(CommonSentenceBean resultBean) { + if (resultBean != null) { + sentenceListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java new file mode 100644 index 0000000..a8cb3fc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java @@ -0,0 +1,53 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseUpdateSuperviseModelImpl implements ICaseUpdateSuperviseModel { + + private OnUpdateSuperviseListener listener; + + public CaseUpdateSuperviseModelImpl(OnUpdateSuperviseListener updateSuperviseListener) { + this.listener = updateSuperviseListener; + } + + /** + * 数据回调接口 + */ + public interface OnUpdateSuperviseListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String superviseRemarks) { + Observable observable = RetrofitServiceManager.getUpdateSuperviseResult(id, superviseRemarks); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java new file mode 100644 index 0000000..263ef6c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseCommonSentenceModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java new file mode 100644 index 0000000..518d602 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseUpdateSuperviseModel { + Subscription sendRetrofitRequest(String id, String superviseRemarks); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java new file mode 100644 index 0000000..6b65f13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseCommonSentenceModelImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; + +public class CaseCommonSentencePresenterImpl extends BasePresenter implements ICaseCommonSentencePresenter, + CaseCommonSentenceModelImpl.OnGetCommonSentenceListener { + + private ICaseCommonSentenceView view; + private CaseCommonSentenceModelImpl actionModel; + + public CaseCommonSentencePresenterImpl(ICaseCommonSentenceView commonSentenceView) { + this.view = commonSentenceView; + actionModel = new CaseCommonSentenceModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CommonSentenceBean resultBean) { + view.obtainCommonSentenceData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java new file mode 100644 index 0000000..66e1f44 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseUpdateSuperviseModelImpl; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; + +public class CaseUpdateSupervisePresenterImpl extends BasePresenter implements ICaseUpdateSupervisePresenter, + CaseUpdateSuperviseModelImpl.OnUpdateSuperviseListener { + + private ICaseUpdateSuperviseView view; + private CaseUpdateSuperviseModelImpl actionModel; + + public CaseUpdateSupervisePresenterImpl(ICaseUpdateSuperviseView updateSuperviseView) { + this.view = updateSuperviseView; + actionModel = new CaseUpdateSuperviseModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String superviseRemarks) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, superviseRemarks)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainUpdateSuperviseData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java new file mode 100644 index 0000000..1f8bd09 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseCommonSentencePresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java new file mode 100644 index 0000000..f61f9b2 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseUpdateSupervisePresenter { + void onReadyRetrofitRequest(String id, String superviseRemarks); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java new file mode 100644 index 0000000..9c7b08b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CommonSentenceBean; + +public interface ICaseCommonSentenceView { + void obtainCommonSentenceData(CommonSentenceBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java new file mode 100644 index 0000000..10bcf5a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICaseUpdateSuperviseView { + void showProgress(); + + void hideProgress(); + + void obtainUpdateSuperviseData(ActionResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java index ad70b7a..9143db8 100644 --- a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.ui; +import android.view.View; + +import androidx.core.content.ContextCompat; + import com.bumptech.glide.Glide; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.luck.picture.lib.photoview.PhotoView; -import com.qmuiteam.qmui.util.QMUIStatusBarHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; import butterknife.BindView; @@ -15,6 +19,8 @@ **/ public class BigPictureActivity extends BaseActivity { + @BindView(R.id.imageTopLayout) + QMUITopBarLayout imageTopLayout; @BindView(R.id.photoView) PhotoView photoView; @@ -25,37 +31,24 @@ @Override protected void setupTopBarLayout() { - QMUIStatusBarHelper.setStatusBarLightMode(this); + imageTopLayout.setTitle("查看大图").setTextColor(ContextCompat.getColor(this, R.color.white)); + imageTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + imageTopLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); } @Override public void initData() { -// String mediaJson = getIntent().getStringExtra("mediaJson"); -// -// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() { -// }.getType()); -// -// list = new ArrayList<>(); -// assert mediaList != null; -// for (LocalMedia media : mediaList) { -// list.add(media.getRealPath()); -// } String path = getIntent().getStringExtra("path"); Glide.with(this).load(path).into(photoView); } @Override public void initEvent() { -// //轮播图 -// bigImageBanner.setImageLoader(new ImageLoader() { -// -// @Override -// public void displayImage(Context context, Object path, ImageView imageView) { -// Glide.with(context).load(path).into(imageView); -// } -// }); -// bigImageBanner.isAutoPlay(false); -// bigImageBanner.setImages(list); -// bigImageBanner.start(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index 01a3807..7548cfc 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -329,7 +329,7 @@ caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java new file mode 100644 index 0000000..d4dba38 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -0,0 +1,505 @@ +package com.casic.dcms.ui; + +import android.content.DialogInterface; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseNextNodeBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseHandleView; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseNextNodeView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.IUploadFileView; +import com.casic.dcms.utils.FileUtils; +import com.casic.dcms.utils.GlideLoadEngine; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.luck.picture.lib.PictureSelector; +import com.luck.picture.lib.config.PictureConfig; +import com.luck.picture.lib.config.PictureMimeType; +import com.luck.picture.lib.entity.LocalMedia; +import com.luck.picture.lib.tools.PictureFileUtils; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, + ICaseHandleView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @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) + EditText casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.caseHandleView) + TextView caseHandleView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseStartTimeView) + TextView caseStartTimeView; + @BindView(R.id.caseEndTimeView) + TextView caseEndTimeView; + @BindView(R.id.caseHandleResultView) + TextView caseHandleResultView; + @BindView(R.id.caseHandleRecyclerView) + RecyclerView caseHandleRecyclerView; + @BindView(R.id.addImageView) + ImageView addImageView; + @BindView(R.id.caseReasonView) + EditText caseReasonView; + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private String changeState; + private String caseReason; + private String approvalResult; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private List largeClassBeans = new ArrayList<>(); + private List smallClassBeans = new ArrayList<>(); + private List realPaths = new ArrayList<>();//真实图片路径 + private List mediaList = new ArrayList<>();//上传到服务器的数据集 + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private CaseNextNodePresenterImpl caseNextNodePresenter; + private UploadImagePresenterImpl uploadImagePresenter; + private CaseHandlePresenterImpl caseHandlePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handle_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseNextNodePresenter = new CaseNextNodePresenterImpl(this); + uploadImagePresenter = new UploadImagePresenterImpl(this); + caseHandlePresenter = new CaseHandlePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @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()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + caseStartTimeView.setText(data.getCreateTime()); + caseEndTimeView.setText(data.getNodeLimittime()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeTypeView.setText("无小类"); + } else { + caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 + } + caseSmallTypeView.setText("请选择"); + } + } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallTypeView.setText("无小类"); + } else { + caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 + } + } + } + + @Override + public void obtainNextNodeData(CaseNextNodeBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处理结果"); + for (CaseNextNodeBean.DataBean dataBean : dataBeans) { + 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(); + + CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); + caseHandleResultView.setText(dataBean.getNextOperation()); + changeState = String.valueOf(dataBean.getNextState()); + approvalResult = dataBean.getApprovalResult(); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseClassLayout: + 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(); + + caseTypeView.setText(tag); + //获取案卷大类 + caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseLargeTypeView.setText(tag); + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseSmallTypeView.setText(tag); + } + }).build().show(); + } + } + break; + case R.id.caseHandleResultLayout: + caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); + break; + case R.id.addImageView: + new QMUIDialog.MenuDialogBuilder(this) + .addItem("相册中选取", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //选图 + selectPicture(); + } + }) + .addItem("相机拍照", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //拍照 + takePicture(); + } + }) + .create().show(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String handleResult = caseHandleResultView.getText().toString(); + if (handleResult.equals("请选择")) { + ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); + return; + } + if (handleResult.equals("处理完成")) { + //选择处理完成时,处理图片必传。至少一张,最多两张 + if (mediaList.size() < 1 || mediaList.size() > 2) { + ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); + return; + } + } + if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { + caseReason = caseReasonView.getText().toString(); + if (TextUtils.isEmpty(caseReason)) { + ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); + return; + } + } + caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), + changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); + } + + private void selectPicture() { + PictureSelector.create(this) + .openGallery(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(2) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.CHOOSE_REQUEST); + } + + private void takePicture() { + PictureSelector.create(this) + .openCamera(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(1) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.REQUEST_CAMERA); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == RESULT_OK) { + switch (requestCode) { + case PictureConfig.CHOOSE_REQUEST: + List selectList = PictureSelector.obtainMultipleResult(data); + for (LocalMedia media : selectList) { + String mediaCompressPath = media.getCompressPath(); + uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); + } + break; + case PictureConfig.REQUEST_CAMERA: + LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); + uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); + break; + default: + break; + } + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUploadAudioResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainUploadImageResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + PictureFileUtils.deleteAllCacheDirFile(this); + /** + * 系统路径static拼接图片返回路径 + * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg + */ + //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg + String url = resultBean.getData(); + mediaList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(realPaths); + caseHandleRecyclerView.setVisibility(View.VISIBLE); + caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); + caseHandleRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(realPaths.get(position)); + } + }); + //删除按钮点击事件 + imageAdapter.setDeleteView(true); + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } + } + + @Override + public void obtainUploadVideoResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainCaseHandleResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseNextNodePresenter != null) { + caseNextNodePresenter.disposeRetrofitRequest(); + } + if (uploadImagePresenter != null) { + uploadImagePresenter.disposeRetrofitRequest(); + } + if (caseHandlePresenter != null) { + caseHandlePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java deleted file mode 100644 index bd187c5..0000000 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java +++ /dev/null @@ -1,500 +0,0 @@ -package com.casic.dcms.ui; - -import android.content.DialogInterface; -import android.content.Intent; -import android.text.TextUtils; -import android.view.View; -import android.widget.EditText; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.Nullable; -import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.adapter.ImageRecycleViewAdapter; -import com.casic.dcms.base.BaseCaseActivity; -import com.casic.dcms.bean.ActionResultBean; -import com.casic.dcms.bean.CaseDetailBean; -import com.casic.dcms.bean.CaseLargeClassBean; -import com.casic.dcms.bean.CaseNextNodeBean; -import com.casic.dcms.bean.CaseSmallClassBean; -import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; -import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; -import com.casic.dcms.mvp.view.ICaseDetailView; -import com.casic.dcms.mvp.view.ICaseHandleView; -import com.casic.dcms.mvp.view.ICaseLargeClassView; -import com.casic.dcms.mvp.view.ICaseNextNodeView; -import com.casic.dcms.mvp.view.ICaseSmallClassView; -import com.casic.dcms.mvp.view.IUploadFileView; -import com.casic.dcms.utils.FileUtils; -import com.casic.dcms.utils.GlideLoadEngine; -import com.casic.dcms.utils.ItemDecorationSpace; -import com.casic.dcms.utils.StringHelper; -import com.casic.dcms.utils.ToastHelper; -import com.luck.picture.lib.PictureSelector; -import com.luck.picture.lib.config.PictureConfig; -import com.luck.picture.lib.config.PictureMimeType; -import com.luck.picture.lib.entity.LocalMedia; -import com.luck.picture.lib.tools.PictureFileUtils; -import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; -import com.qmuiteam.qmui.widget.dialog.QMUIDialog; -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; - -import butterknife.BindView; -import butterknife.OnClick; - -public class CaseHandleOvertimeDetailActivity extends BaseCaseActivity implements View.OnClickListener, - ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, - ICaseHandleView { - - @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) - EditText casePlaceView; - @BindView(R.id.caseSituationView) - TextView caseSituationView; - @BindView(R.id.caseHandleView) - TextView caseHandleView; - @BindView(R.id.casePicRecyclerView) - RecyclerView casePicRecyclerView; - @BindView(R.id.caseStartTimeView) - TextView caseStartTimeView; - @BindView(R.id.caseEndTimeView) - TextView caseEndTimeView; - @BindView(R.id.caseHandleResultView) - TextView caseHandleResultView; - @BindView(R.id.caseHandleRecyclerView) - RecyclerView caseHandleRecyclerView; - @BindView(R.id.addImageView) - ImageView addImageView; - @BindView(R.id.caseReasonView) - EditText caseReasonView; - @BindView(R.id.submitButton) - QMUIRoundButton submitButton; - - private String id; - private String changeState; - private String caseReason; - private String approvalResult; - private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); - private List largeClassBeans = new ArrayList<>(); - private List smallClassBeans = new ArrayList<>(); - private List realPaths = new ArrayList<>();//真实图片路径 - private List mediaList = new ArrayList<>();//上传到服务器的数据集 - - private CaseDetailPresenterImpl caseDetailPresenter; - private CaseLargeClassPresenterImpl caseLargeClassPresenter; - private CaseSmallClassPresenterImpl caseSmallClassPresenter; - private CaseNextNodePresenterImpl caseNextNodePresenter; - private UploadImagePresenterImpl uploadImagePresenter; - private CaseHandlePresenterImpl caseHandlePresenter; - - private QMUITipDialog submitDialog; - - @Override - public int initLayoutView() { - return R.layout.activity_case_handle_overtime; - } - - @Override - protected String setTitleName() { - return "超时案卷"; - } - - @Override - public void initData() { - id = getIntent().getStringExtra("id"); - caseDetailPresenter = new CaseDetailPresenterImpl(this); - caseDetailPresenter.onReadyRetrofitRequest(id); - - caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); - caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); - caseNextNodePresenter = new CaseNextNodePresenterImpl(this); - uploadImagePresenter = new UploadImagePresenterImpl(this); - caseHandlePresenter = new CaseHandlePresenterImpl(this); - - submitDialog = new QMUITipDialog.Builder(this) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord("提交中,请稍后") - .create(); - } - - @Override - public void initEvent() { - submitButton.setChangeAlphaWhenPress(true); - } - - @Override - public void obtainCaseDetailData(CaseDetailBean resultBean) { - if (resultBean.isSuccess()) { - this.data = resultBean.getData().get(0); - caseTypeView.setText(data.getEorcName()); - caseLargeTypeView.setText(data.getCasetypeName()); - caseSmallTypeView.setText(data.getCasetypeDetailName()); - caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro()); - caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); - caseStartTimeView.setText(data.getCreateTime()); - caseEndTimeView.setText(data.getNodeLimittime()); - - String verifyImages = data.getFileIdVerify(); - if (!TextUtils.isEmpty(verifyImages)) { - List urls = new ArrayList<>(); - String[] split = verifyImages.split(","); - for (String s : split) { - urls.add(StringHelper.appendCompleteURL(s)); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(urls); - casePicRecyclerView.setVisibility(View.VISIBLE); - casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); - casePicRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(urls.get(position)); - } - }); - imageAdapter.setDeleteView(false); - } - } - } - - private void showBigImage(String path) { - Intent intent = new Intent(this, BigPictureActivity.class); - intent.putExtra("path", path); - startActivity(intent); - } - - @Override - public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { - if (largeClassBean.isSuccess()) { - //设置大类数据 - this.largeClassBeans = largeClassBean.getData(); - if (largeClassBeans.size() == 0) { - caseLargeTypeView.setText("无小类"); - } else { - caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 - } - caseSmallTypeView.setText("请选择"); - } - } - - @Override - public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { - if (smallClassBean.isSuccess()) { - //设置大类数据 - this.smallClassBeans = smallClassBean.getData(); - if (smallClassBeans.size() == 0) { - caseSmallTypeView.setText("无小类"); - } else { - caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 - } - } - } - - @Override - public void obtainNextNodeData(CaseNextNodeBean resultBean) { - if (resultBean.isSuccess()) { - List dataBeans = resultBean.getData(); - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("处理结果"); - for (CaseNextNodeBean.DataBean dataBean : dataBeans) { - 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(); - - CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); - caseHandleResultView.setText(dataBean.getNextOperation()); - changeState = String.valueOf(dataBean.getNextState()); - approvalResult = dataBean.getApprovalResult(); - } - }).build().show(); - } else { - ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); - } - } - - @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) - @Override - public void onClick(View v) { - switch (v.getId()) { - case R.id.caseClassLayout: - 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(); - - caseTypeView.setText(tag); - //获取案卷大类 - caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); - } - }).build().show(); - break; - case R.id.caseLargeClassLayout: - if (largeClassBeans != null) { - if (largeClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷大类"); - for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { - sheetBuilder.addItem(dataBean.getTypeName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseLargeTypeView.setText(tag); - //获取案卷小类 - CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); - String typeId = dataBean.getId(); - caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); - } - }).build().show(); - } - } - break; - case R.id.caseSmallClassLayout: - if (smallClassBeans != null) { - if (smallClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷小类"); - for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { - sheetBuilder.addItem(dataBean.getTypeDetailName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseSmallTypeView.setText(tag); - } - }).build().show(); - } - } - break; - case R.id.caseHandleResultLayout: - caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); - break; - case R.id.addImageView: - new QMUIDialog.MenuDialogBuilder(this) - .addItem("相册中选取", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //选图 - selectPicture(); - } - }) - .addItem("相机拍照", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //拍照 - takePicture(); - } - }) - .create().show(); - break; - case R.id.submitButton: - submitCase();//案卷提交 - break; - default: - break; - } - } - - private void submitCase() { - String handleResult = caseHandleResultView.getText().toString(); - if (handleResult.equals("请选择")) { - ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); - return; - } - if (handleResult.equals("处理完成")) { - //选择处理完成时,处理图片必传。至少一张,最多两张 - if (mediaList.size() < 1 || mediaList.size() > 2) { - ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); - return; - } - } - if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { - caseReason = caseReasonView.getText().toString(); - if (TextUtils.isEmpty(caseReason)) { - ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); - return; - } - } - caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), - changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); - } - - private void selectPicture() { - PictureSelector.create(this) - .openGallery(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(2) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.CHOOSE_REQUEST); - } - - private void takePicture() { - PictureSelector.create(this) - .openCamera(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(1) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.REQUEST_CAMERA); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if (resultCode == RESULT_OK) { - switch (requestCode) { - case PictureConfig.CHOOSE_REQUEST: - List selectList = PictureSelector.obtainMultipleResult(data); - for (LocalMedia media : selectList) { - String mediaCompressPath = media.getCompressPath(); - uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); - } - break; - case PictureConfig.REQUEST_CAMERA: - LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); - uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); - break; - default: - break; - } - } - } - - @Override - public void showProgress() { - submitDialog.show(); - } - - @Override - public void hideProgress() { - submitDialog.hide(); - } - - @Override - public void obtainUploadAudioResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainUploadImageResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - PictureFileUtils.deleteAllCacheDirFile(this); - /** - * 系统路径static拼接图片返回路径 - * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg - */ - //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String url = resultBean.getData(); - mediaList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(realPaths); - caseHandleRecyclerView.setVisibility(View.VISIBLE); - caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); - caseHandleRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(realPaths.get(position)); - } - }); - //删除按钮点击事件 - imageAdapter.setDeleteView(true); - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); - } - } - }); - } - } - - @Override - public void obtainUploadVideoResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainCaseHandleResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); - finish(); - } else { - ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); - } - } - - @Override - protected void onDestroy() { - super.onDestroy(); - if (caseDetailPresenter != null) { - caseDetailPresenter.disposeRetrofitRequest(); - } - if (caseLargeClassPresenter != null) { - caseLargeClassPresenter.disposeRetrofitRequest(); - } - if (caseSmallClassPresenter != null) { - caseSmallClassPresenter.disposeRetrofitRequest(); - } - if (caseNextNodePresenter != null) { - caseNextNodePresenter.disposeRetrofitRequest(); - } - if (uploadImagePresenter != null) { - uploadImagePresenter.disposeRetrofitRequest(); - } - if (caseHandlePresenter != null) { - caseHandlePresenter.disposeRetrofitRequest(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java new file mode 100644 index 0000000..5ea5403 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -0,0 +1,145 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { + + @BindView(R.id.detailTopLayout) + QMUITopBarLayout detailTopLayout; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @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; + + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private CaseDetailPresenterImpl caseDetailPresenter; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handled_detail; + } + + @Override + protected void setupTopBarLayout() { + detailTopLayout.setTitle("已办案卷").setTextColor(ContextCompat.getColor(this, R.color.white)); + detailTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + detailTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + String id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + } + + @Override + public void initEvent() { + + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseHandleStatusView.setText(data.getCaseStateName()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @OnClick(R.id.handleLayout) + @Override + public void onClick(View v) { + if (v.getId() == R.id.handleLayout) { + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java new file mode 100644 index 0000000..3b2d3d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -0,0 +1,228 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.TextView; + +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.presenter.CaseCommonSentencePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseUpdateSupervisePresenterImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseOverTimeView) + TextView caseOverTimeView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @BindView(R.id.casePlaceView) + EditText casePlaceView; + @BindView(R.id.caseDescriptionView) + TextView caseDescriptionView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseHandleResultView) + EditText caseHandleResultView; + @BindView(R.id.caseCommonSentenceView) + TextView caseCommonSentenceView; + + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseCommonSentencePresenterImpl commonSentencePresenter; + private CaseUpdateSupervisePresenterImpl updateSupervisePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_todo_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + commonSentencePresenter = new CaseCommonSentencePresenterImpl(this); + updateSupervisePresenter = new CaseUpdateSupervisePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @Override + public void initEvent() { + + } + + @OnClick({R.id.caseHandleLayout, R.id.caseCommonSentenceLayout, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseHandleLayout: + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + break; + case R.id.caseCommonSentenceLayout: + commonSentencePresenter.onReadyRetrofitRequest(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String remarks = caseHandleResultView.getText().toString(); + if (TextUtils.isEmpty(remarks)) { + ToastHelper.showToast("督办意见不能为空", ToastHelper.WARING); + return; + } + updateSupervisePresenter.onReadyRetrofitRequest(id, remarks); + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseOverTimeView.setText(data.getNodeLimittime()); + caseHandleStatusView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + casePlaceView.setText(data.getFieldintro()); + caseDescriptionView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainCommonSentenceData(CommonSentenceBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("常用语句"); + for (CommonSentenceBean.DataBean dataBean : dataBeans) { + 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(); + + CommonSentenceBean.DataBean dataBean = dataBeans.get(position); + caseCommonSentenceView.setText(dataBean.getName()); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUpdateSuperviseData(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷督办提交成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷督办提交失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (commonSentencePresenter != null) { + commonSentencePresenter.disposeRetrofitRequest(); + } + if (updateSupervisePresenter != null) { + updateSupervisePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 3060e1b..af6a9fe 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -191,7 +191,7 @@ caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); - caseHandleView.setText(data.getUrgeRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); caseSituationView.setText(data.getDescription()); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index 7816221..3989633 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -28,6 +28,7 @@ import com.casic.dcms.ui.OvertimeCaseActivity; import com.casic.dcms.ui.PersonOnlineActivity; import com.casic.dcms.ui.UrgentCaseActivity; +import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.StringHelper; import com.qmuiteam.qmui.widget.QMUIRadiusImageView; @@ -69,62 +70,12 @@ @Override protected void initEvent() { - HomeRecycleAdapter adapter = new HomeRecycleAdapter(context); - homeRecyclerView.setLayoutManager(new GridLayoutManager(context, 3)); - homeRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - Intent intent = new Intent(); - switch (position) { - case 0: - intent.setClass(context, CaseUploadActivity.class); - break; - case 1: - intent.setClass(context, CaseUploadQuicklyActivity.class); - break; - case 2: - intent.setClass(context, FivePackageUploadActivity.class); - break; - case 3: - intent.setClass(context, CaseVerifyActivity.class); - break; - case 4: - intent.setClass(context, CaseCheckActivity.class); - break; - case 5: - intent.setClass(context, CaseHandleActivity.class); - break; - case 6: - intent.setClass(context, UrgentCaseActivity.class); - break; - case 7: - intent.setClass(context, OvertimeCaseActivity.class); - break; - case 8: - intent.setClass(context, DataAnalysisActivity.class); - break; - case 9: - intent.setClass(context, PersonOnlineActivity.class); - break; - case 10: - intent.setClass(context, CaseSearchActivity.class); - break; - case 11: - intent.setClass(context, MapWatchViewActivity.class); - break; - default: - break; - } - startActivity(intent); - } - }); + } @SuppressLint("SetTextI18n") @Override public void obtainUserData(UserBean userBean) { -// Log.d(TAG, "obtainUserData: " + new Gson().toJson(userBean)); if (userBean.isSuccess()) { //QMUIRadiusImageView无法动态设置圆形头像,借助Glide实现圆形头像 Glide.with(this).load(R.mipmap.app_logo).apply(RequestOptions.circleCropTransform()).into(userIconView); @@ -137,6 +88,121 @@ StringHelper.saveUserPhone(data.getPhone()); StringHelper.saveUserDept(data.getDeptName()); StringHelper.saveUserDeptId(data.getDeptId()); + + //权限控制 + String roleTip = data.getRoleTips().get(0); + HomeRecycleAdapter adapter = new HomeRecycleAdapter(context); + homeRecyclerView.setLayoutManager(new GridLayoutManager(context, 3)); + switch (roleTip) { + case "supervisor": + //All + adapter.setItemData(Constant.ALL_ICONS, Constant.ALL_ITEMS); + adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { + @Override + public void onClick(int position) { + Intent intent = new Intent(); + switch (position) { + case 0: + intent.setClass(context, CaseUploadActivity.class); + break; + case 1: + intent.setClass(context, CaseUploadQuicklyActivity.class); + break; + case 2: + intent.setClass(context, FivePackageUploadActivity.class); + break; + case 3: + intent.setClass(context, CaseVerifyActivity.class); + break; + case 4: + intent.setClass(context, CaseCheckActivity.class); + break; + case 5: + intent.setClass(context, CaseHandleActivity.class); + break; + case 6: + intent.setClass(context, UrgentCaseActivity.class); + break; + case 7: + intent.setClass(context, OvertimeCaseActivity.class); + break; + case 8: + intent.setClass(context, DataAnalysisActivity.class); + break; + case 9: + intent.setClass(context, PersonOnlineActivity.class); + break; + case 10: + intent.setClass(context, CaseSearchActivity.class); + break; + case 11: + intent.setClass(context, MapWatchViewActivity.class); + break; + default: + break; + } + startActivity(intent); + } + }); + break; +// case "process": +// //案卷处理、案卷查询 +// adapter.setItemData(Constant.PROCESS_ICONS, Constant.PROCESS_ITEMS); +// adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { +// @Override +// public void onClick(int position) { +// Intent intent = new Intent(); +// switch (position) { +// case 0: +// intent.setClass(context, CaseHandleActivity.class); +// break; +// case 1: +// intent.setClass(context, CaseSearchActivity.class); +// break; +// default: +// break; +// } +// startActivity(intent); +// } +// }); +// break; +// case "leader": +// //案卷上报、紧急要件、超时督办、统计分析、在岗人员、案卷查询 +// adapter.setItemData(Constant.LEADER_ICONS, Constant.LEADER_ITEMS); +// adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { +// @Override +// public void onClick(int position) { +// Intent intent = new Intent(); +// switch (position) { +// case 0: +// intent.setClass(context, CaseUploadActivity.class); +// break; +// case 1: +// intent.setClass(context, UrgentCaseActivity.class); +// break; +// case 2: +// intent.setClass(context, OvertimeCaseActivity.class); +// break; +// case 3: +// intent.setClass(context, DataAnalysisActivity.class); +// break; +// case 4: +// intent.setClass(context, PersonOnlineActivity.class); +// break; +// case 5: +// intent.setClass(context, CaseSearchActivity.class); +// break; +// default: +// break; +// } +// startActivity(intent); +// } +// }); +// break; + default: + break; + } + homeRecyclerView.setAdapter(adapter); } } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java index 430f8be..fa2df7a 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandledBean; import com.casic.dcms.mvp.presenter.CaseHandledListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandledListView; +import com.casic.dcms.ui.CaseHandledDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -128,10 +130,9 @@ adapter.setOnItemClickListener(new CaseHandledAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandledDetailActivity.class); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java index 502c288..05306fe 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -130,10 +132,10 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "待办案卷"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java index 25877de..743a092 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java @@ -17,7 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; -import com.casic.dcms.ui.CaseHandleOvertimeDetailActivity; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -133,7 +133,8 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { - Intent intent = new Intent(context, CaseHandleOvertimeDetailActivity.class); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "超时案卷"); intent.putExtra("id", dataBeans.get(position).getId()); startActivity(intent); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java index f957e26..ae0b3e5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -131,10 +133,10 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "紧急案卷"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java index 18178eb..5d51969 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.OvertimeCaseBean; import com.casic.dcms.mvp.presenter.OvertimeCaseListPresenterImpl; import com.casic.dcms.mvp.view.IOvertimeCaseListView; +import com.casic.dcms.ui.CaseTodoDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -128,10 +130,10 @@ adapter.setOnItemClickListener(new OvertimeCaseAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseTodoDetailActivity.class); + intent.putExtra("title", "超时督办"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java index 19c6766..51bdbd0 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.mvp.presenter.UrgentCaseListPresenterImpl; import com.casic.dcms.mvp.view.IUrgentCaseListView; +import com.casic.dcms.ui.CaseTodoDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -129,10 +131,10 @@ adapter.setOnItemClickListener(new UrgentCaseAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseTodoDetailActivity.class); + intent.putExtra("title", "紧急要件"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } 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 233b5d1..2e68d04 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -9,18 +9,38 @@ import java.util.List; public class Constant { - public static final List ICONS = Arrays.asList( + public static final String[] USER_PERMISSIONS = { + Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION, + Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO, + Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE, + Manifest.permission.CALL_PHONE}; + + public static final List ALL_ICONS = Arrays.asList( R.mipmap.ajsb, R.mipmap.kssb, R.mipmap.sbsb, R.mipmap.ajhs, R.mipmap.ajhc, R.mipmap.ajcl, R.mipmap.jjyj, R.mipmap.csdb, R.mipmap.tjfx, R.mipmap.zgry, R.mipmap.ajcx, R.mipmap.dtck); - public static final List ITEMS = Arrays.asList( + public static final List ALL_ITEMS = Arrays.asList( "案卷上报", "快速上报", "五包上报", "案卷核实", "案卷核查", "案卷处理", "紧急要件", "超时督办", "统计分析", "在岗人员", "案卷查询", "地图查看"); + public static final List PROCESS_ICONS = Arrays.asList( + R.mipmap.ajcl, R.mipmap.ajcx); + + public static final List PROCESS_ITEMS = Arrays.asList( + "案卷处理", "案卷查询"); + + public static final List LEADER_ICONS = Arrays.asList( + R.mipmap.ajsb, R.mipmap.jjyj, R.mipmap.csdb, + R.mipmap.tjfx, R.mipmap.zgry, R.mipmap.ajcx); + + public static final List LEADER_ITEMS = Arrays.asList( + "案卷上报", "紧急要件", "超时督办", + "统计分析", "在岗人员", "案卷查询"); + public static final List ANALYSIS_ICONS = Arrays.asList( R.mipmap.sbsb, R.mipmap.jjyj, R.mipmap.csdb, R.mipmap.ajcl, R.mipmap.tjfx, R.mipmap.ajhc); @@ -29,17 +49,6 @@ "问题来源", "案卷状态", "高发问题", "街道统计", "处理统计", "趋势分析"); - public static final List CATEGORY = Arrays.asList("请选择", "情况属实", "情况不属实"); - - public static final String[] USER_PERMISSIONS = { - Manifest.permission.ACCESS_COARSE_LOCATION, - Manifest.permission.ACCESS_FINE_LOCATION, - Manifest.permission.CAMERA, - Manifest.permission.READ_EXTERNAL_STORAGE, - Manifest.permission.WRITE_EXTERNAL_STORAGE, - Manifest.permission.RECORD_AUDIO, - Manifest.permission.CALL_PHONE}; - //先预置8种颜色 public static final int[] PIE_COLORS = {Color.rgb(28, 197, 220), Color.rgb(255, 223, 107), Color.rgb(242, 17, 112), diff --git a/app/src/main/java/com/casic/dcms/utils/StringHelper.java b/app/src/main/java/com/casic/dcms/utils/StringHelper.java index 1201063..5aeb8f6 100644 --- a/app/src/main/java/com/casic/dcms/utils/StringHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/StringHelper.java @@ -60,7 +60,9 @@ return ""; } String data = url.replace("\\", "/"); - return SaveKeyValues.getValue(Constant.IP_KEY, "http://111.198.10.15:11409") + "/static/" + data; + String imagePath = SaveKeyValues.getValue(Constant.IP_KEY, "http://111.198.10.15:11409") + "/static/" + data; + Log.d(TAG, "appendCompleteURL: "+imagePath); + return imagePath; } public static String reformatURL(List urls) { 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 ec230dd..16bafa1 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 @@ -14,6 +14,7 @@ import com.casic.dcms.bean.CaseStatusBean; import com.casic.dcms.bean.CaseVerifiedBean; import com.casic.dcms.bean.CaseVerifyBean; +import com.casic.dcms.bean.CommonSentenceBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; import com.casic.dcms.bean.LoginResultBean; @@ -345,6 +346,12 @@ @Query("caseState") String caseState); /** + * 获取常见语句 + */ + @GET("/dict/code/commonApproval") + Observable obtainCommonSentence(@Header("token") String token); + + /** * 案卷处理 *

* 案卷核实-仅添加核实意见/核实情况/核实图片 @@ -401,4 +408,12 @@ @Field("communityCode") String communityCode, @Field("gridId") String gridId, @Field("fieldintro") String fieldintro); + + /** + * 紧急要件-超时督办 + */ + @GET("/casedetail/updateSuperviseRemarks") + Observable updateSuperviseRemarks(@Header("token") String token, + @Query("id") String id, + @Query("superviseRemarks") String superviseRemarks); } 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 0c77b61..226b287 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 @@ -16,6 +16,7 @@ import com.casic.dcms.bean.CaseStatusBean; import com.casic.dcms.bean.CaseVerifiedBean; import com.casic.dcms.bean.CaseVerifyBean; +import com.casic.dcms.bean.CommonSentenceBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; import com.casic.dcms.bean.LoginResultBean; @@ -397,6 +398,15 @@ } /** + * 获取常见语句 + */ + public static Observable getCommonSentenceResult() { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainCommonSentence(TokenHelper.getToken()); + } + + /** * 案卷处理 *

* 案卷核实-仅添加核实意见/核实情况/核实图片 @@ -445,4 +455,13 @@ remarks, fileId, eorc, casetypeCode, casetypeDetailCode, lng, lat, caseLevel, areaCode, streetCode, communityCode, gridId, fieldintro); } + + /** + * 紧急要件-超时督办 + */ + public static Observable getUpdateSuperviseResult(String id, String superviseRemarks) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.updateSuperviseRemarks(TokenHelper.getToken(), id, superviseRemarks); + } } diff --git a/app/src/main/res/drawable/ic_load_error.xml b/app/src/main/res/drawable/ic_load_error.xml new file mode 100644 index 0000000..5ad71a1 --- /dev/null +++ b/app/src/main/res/drawable/ic_load_error.xml @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/activity_big_pic.xml b/app/src/main/res/layout/activity_big_pic.xml index 551ed62..bc09ace 100644 --- a/app/src/main/res/layout/activity_big_pic.xml +++ b/app/src/main/res/layout/activity_big_pic.xml @@ -1,16 +1,17 @@ - - + android:layout_height="wrap_content" + android:fitsSystemWindows="true" /> + - \ No newline at end of file + android:layout_height="wrap_content" /> + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_case_check_detail.xml b/app/src/main/res/layout/activity_case_check_detail.xml index 607d1eb..58bc5d4 100644 --- a/app/src/main/res/layout/activity_case_check_detail.xml +++ b/app/src/main/res/layout/activity_case_check_detail.xml @@ -16,28 +16,6 @@ android:layout_height="wrap_content" android:orientation="vertical"> - - - - - - - - - diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml new file mode 100644 index 0000000..44f84e7 --- /dev/null +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_case_handle_overtime.xml b/app/src/main/res/layout/activity_case_handle_overtime.xml deleted file mode 100644 index 44f84e7..0000000 --- a/app/src/main/res/layout/activity_case_handle_overtime.xml +++ /dev/null @@ -1,213 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_case_handled_detail.xml b/app/src/main/res/layout/activity_case_handled_detail.xml new file mode 100644 index 0000000..fdeb450 --- /dev/null +++ b/app/src/main/res/layout/activity_case_handled_detail.xml @@ -0,0 +1,245 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_case_todo_detail.xml b/app/src/main/res/layout/activity_case_todo_detail.xml new file mode 100644 index 0000000..8ff5257 --- /dev/null +++ b/app/src/main/res/layout/activity_case_todo_detail.xml @@ -0,0 +1,242 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f6ac20a..2070c95 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -67,12 +67,14 @@ - + - + + + { private Context context; + private List iconData = new ArrayList<>(); + private List itemData = new ArrayList<>(); public HomeRecycleAdapter(Context context) { this.context = context; } + public void setItemData(@Nullable List icons, @Nullable List items) { + this.iconData = icons; + this.itemData = items; + } + @NonNull @Override public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -30,7 +40,7 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - holder.bindView(context, position); + holder.bindView(position); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override @@ -43,7 +53,7 @@ @Override public int getItemCount() { - return Constant.ITEMS.size(); + return itemData.size(); } private OnGridItemClickListener clickListener; @@ -56,7 +66,7 @@ this.clickListener = onGridItemClickListener; } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { private ImageView imageView; private TextView textView; @@ -67,9 +77,9 @@ textView = itemView.findViewById(R.id.textView); } - void bindView(Context context, int position) { - imageView.setBackgroundResource(Constant.ICONS.get(position)); - textView.setText(Constant.ITEMS.get(position)); + void bindView(int position) { + imageView.setBackgroundResource(iconData.get(position)); + textView.setText(itemData.get(position)); } } } diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index b9c4615..d9b10e0 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; import java.util.ArrayList; @@ -62,7 +63,10 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - Glide.with(context).load(mediaList.get(position)).into(holder.imageView); + Glide.with(context) + .load(mediaList.get(position)) + .apply(new RequestOptions().error(R.drawable.ic_load_error)) + .into(holder.imageView); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/casic/dcms/base/BaseActivity.java b/app/src/main/java/com/casic/dcms/base/BaseActivity.java index caf0356..2ca87fe 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseActivity.java +++ b/app/src/main/java/com/casic/dcms/base/BaseActivity.java @@ -17,8 +17,8 @@ setContentView(initLayoutView()); ButterKnife.bind(this); QMUIStatusBarHelper.translucent(this);//沉浸式状态栏 - setupTopBarLayout(); initData(); + setupTopBarLayout(); initEvent(); } diff --git a/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java new file mode 100644 index 0000000..8de58a4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java @@ -0,0 +1,78 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CommonSentenceBean { + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 请及时处理 + * id : 156 + * value : 请及时处理 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java new file mode 100644 index 0000000..5258d89 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CommonSentenceBean; +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 CaseCommonSentenceModelImpl implements ICaseCommonSentenceModel { + + private OnGetCommonSentenceListener sentenceListener; + + public CaseCommonSentenceModelImpl(OnGetCommonSentenceListener commonSentenceListener) { + this.sentenceListener = commonSentenceListener; + } + + public interface OnGetCommonSentenceListener { + void onSuccess(CommonSentenceBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCommonSentenceResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (sentenceListener != null) { + sentenceListener.onFailure(e); + } + } + + @Override + public void onNext(CommonSentenceBean resultBean) { + if (resultBean != null) { + sentenceListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java new file mode 100644 index 0000000..a8cb3fc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java @@ -0,0 +1,53 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseUpdateSuperviseModelImpl implements ICaseUpdateSuperviseModel { + + private OnUpdateSuperviseListener listener; + + public CaseUpdateSuperviseModelImpl(OnUpdateSuperviseListener updateSuperviseListener) { + this.listener = updateSuperviseListener; + } + + /** + * 数据回调接口 + */ + public interface OnUpdateSuperviseListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String superviseRemarks) { + Observable observable = RetrofitServiceManager.getUpdateSuperviseResult(id, superviseRemarks); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java new file mode 100644 index 0000000..263ef6c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseCommonSentenceModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java new file mode 100644 index 0000000..518d602 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseUpdateSuperviseModel { + Subscription sendRetrofitRequest(String id, String superviseRemarks); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java new file mode 100644 index 0000000..6b65f13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseCommonSentenceModelImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; + +public class CaseCommonSentencePresenterImpl extends BasePresenter implements ICaseCommonSentencePresenter, + CaseCommonSentenceModelImpl.OnGetCommonSentenceListener { + + private ICaseCommonSentenceView view; + private CaseCommonSentenceModelImpl actionModel; + + public CaseCommonSentencePresenterImpl(ICaseCommonSentenceView commonSentenceView) { + this.view = commonSentenceView; + actionModel = new CaseCommonSentenceModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CommonSentenceBean resultBean) { + view.obtainCommonSentenceData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java new file mode 100644 index 0000000..66e1f44 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseUpdateSuperviseModelImpl; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; + +public class CaseUpdateSupervisePresenterImpl extends BasePresenter implements ICaseUpdateSupervisePresenter, + CaseUpdateSuperviseModelImpl.OnUpdateSuperviseListener { + + private ICaseUpdateSuperviseView view; + private CaseUpdateSuperviseModelImpl actionModel; + + public CaseUpdateSupervisePresenterImpl(ICaseUpdateSuperviseView updateSuperviseView) { + this.view = updateSuperviseView; + actionModel = new CaseUpdateSuperviseModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String superviseRemarks) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, superviseRemarks)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainUpdateSuperviseData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java new file mode 100644 index 0000000..1f8bd09 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseCommonSentencePresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java new file mode 100644 index 0000000..f61f9b2 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseUpdateSupervisePresenter { + void onReadyRetrofitRequest(String id, String superviseRemarks); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java new file mode 100644 index 0000000..9c7b08b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CommonSentenceBean; + +public interface ICaseCommonSentenceView { + void obtainCommonSentenceData(CommonSentenceBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java new file mode 100644 index 0000000..10bcf5a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICaseUpdateSuperviseView { + void showProgress(); + + void hideProgress(); + + void obtainUpdateSuperviseData(ActionResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java index ad70b7a..9143db8 100644 --- a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.ui; +import android.view.View; + +import androidx.core.content.ContextCompat; + import com.bumptech.glide.Glide; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.luck.picture.lib.photoview.PhotoView; -import com.qmuiteam.qmui.util.QMUIStatusBarHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; import butterknife.BindView; @@ -15,6 +19,8 @@ **/ public class BigPictureActivity extends BaseActivity { + @BindView(R.id.imageTopLayout) + QMUITopBarLayout imageTopLayout; @BindView(R.id.photoView) PhotoView photoView; @@ -25,37 +31,24 @@ @Override protected void setupTopBarLayout() { - QMUIStatusBarHelper.setStatusBarLightMode(this); + imageTopLayout.setTitle("查看大图").setTextColor(ContextCompat.getColor(this, R.color.white)); + imageTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + imageTopLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); } @Override public void initData() { -// String mediaJson = getIntent().getStringExtra("mediaJson"); -// -// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() { -// }.getType()); -// -// list = new ArrayList<>(); -// assert mediaList != null; -// for (LocalMedia media : mediaList) { -// list.add(media.getRealPath()); -// } String path = getIntent().getStringExtra("path"); Glide.with(this).load(path).into(photoView); } @Override public void initEvent() { -// //轮播图 -// bigImageBanner.setImageLoader(new ImageLoader() { -// -// @Override -// public void displayImage(Context context, Object path, ImageView imageView) { -// Glide.with(context).load(path).into(imageView); -// } -// }); -// bigImageBanner.isAutoPlay(false); -// bigImageBanner.setImages(list); -// bigImageBanner.start(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index 01a3807..7548cfc 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -329,7 +329,7 @@ caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java new file mode 100644 index 0000000..d4dba38 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -0,0 +1,505 @@ +package com.casic.dcms.ui; + +import android.content.DialogInterface; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseNextNodeBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseHandleView; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseNextNodeView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.IUploadFileView; +import com.casic.dcms.utils.FileUtils; +import com.casic.dcms.utils.GlideLoadEngine; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.luck.picture.lib.PictureSelector; +import com.luck.picture.lib.config.PictureConfig; +import com.luck.picture.lib.config.PictureMimeType; +import com.luck.picture.lib.entity.LocalMedia; +import com.luck.picture.lib.tools.PictureFileUtils; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, + ICaseHandleView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @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) + EditText casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.caseHandleView) + TextView caseHandleView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseStartTimeView) + TextView caseStartTimeView; + @BindView(R.id.caseEndTimeView) + TextView caseEndTimeView; + @BindView(R.id.caseHandleResultView) + TextView caseHandleResultView; + @BindView(R.id.caseHandleRecyclerView) + RecyclerView caseHandleRecyclerView; + @BindView(R.id.addImageView) + ImageView addImageView; + @BindView(R.id.caseReasonView) + EditText caseReasonView; + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private String changeState; + private String caseReason; + private String approvalResult; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private List largeClassBeans = new ArrayList<>(); + private List smallClassBeans = new ArrayList<>(); + private List realPaths = new ArrayList<>();//真实图片路径 + private List mediaList = new ArrayList<>();//上传到服务器的数据集 + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private CaseNextNodePresenterImpl caseNextNodePresenter; + private UploadImagePresenterImpl uploadImagePresenter; + private CaseHandlePresenterImpl caseHandlePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handle_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseNextNodePresenter = new CaseNextNodePresenterImpl(this); + uploadImagePresenter = new UploadImagePresenterImpl(this); + caseHandlePresenter = new CaseHandlePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @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()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + caseStartTimeView.setText(data.getCreateTime()); + caseEndTimeView.setText(data.getNodeLimittime()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeTypeView.setText("无小类"); + } else { + caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 + } + caseSmallTypeView.setText("请选择"); + } + } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallTypeView.setText("无小类"); + } else { + caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 + } + } + } + + @Override + public void obtainNextNodeData(CaseNextNodeBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处理结果"); + for (CaseNextNodeBean.DataBean dataBean : dataBeans) { + 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(); + + CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); + caseHandleResultView.setText(dataBean.getNextOperation()); + changeState = String.valueOf(dataBean.getNextState()); + approvalResult = dataBean.getApprovalResult(); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseClassLayout: + 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(); + + caseTypeView.setText(tag); + //获取案卷大类 + caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseLargeTypeView.setText(tag); + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseSmallTypeView.setText(tag); + } + }).build().show(); + } + } + break; + case R.id.caseHandleResultLayout: + caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); + break; + case R.id.addImageView: + new QMUIDialog.MenuDialogBuilder(this) + .addItem("相册中选取", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //选图 + selectPicture(); + } + }) + .addItem("相机拍照", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //拍照 + takePicture(); + } + }) + .create().show(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String handleResult = caseHandleResultView.getText().toString(); + if (handleResult.equals("请选择")) { + ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); + return; + } + if (handleResult.equals("处理完成")) { + //选择处理完成时,处理图片必传。至少一张,最多两张 + if (mediaList.size() < 1 || mediaList.size() > 2) { + ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); + return; + } + } + if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { + caseReason = caseReasonView.getText().toString(); + if (TextUtils.isEmpty(caseReason)) { + ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); + return; + } + } + caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), + changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); + } + + private void selectPicture() { + PictureSelector.create(this) + .openGallery(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(2) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.CHOOSE_REQUEST); + } + + private void takePicture() { + PictureSelector.create(this) + .openCamera(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(1) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.REQUEST_CAMERA); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == RESULT_OK) { + switch (requestCode) { + case PictureConfig.CHOOSE_REQUEST: + List selectList = PictureSelector.obtainMultipleResult(data); + for (LocalMedia media : selectList) { + String mediaCompressPath = media.getCompressPath(); + uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); + } + break; + case PictureConfig.REQUEST_CAMERA: + LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); + uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); + break; + default: + break; + } + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUploadAudioResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainUploadImageResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + PictureFileUtils.deleteAllCacheDirFile(this); + /** + * 系统路径static拼接图片返回路径 + * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg + */ + //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg + String url = resultBean.getData(); + mediaList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(realPaths); + caseHandleRecyclerView.setVisibility(View.VISIBLE); + caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); + caseHandleRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(realPaths.get(position)); + } + }); + //删除按钮点击事件 + imageAdapter.setDeleteView(true); + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } + } + + @Override + public void obtainUploadVideoResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainCaseHandleResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseNextNodePresenter != null) { + caseNextNodePresenter.disposeRetrofitRequest(); + } + if (uploadImagePresenter != null) { + uploadImagePresenter.disposeRetrofitRequest(); + } + if (caseHandlePresenter != null) { + caseHandlePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java deleted file mode 100644 index bd187c5..0000000 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java +++ /dev/null @@ -1,500 +0,0 @@ -package com.casic.dcms.ui; - -import android.content.DialogInterface; -import android.content.Intent; -import android.text.TextUtils; -import android.view.View; -import android.widget.EditText; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.Nullable; -import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.adapter.ImageRecycleViewAdapter; -import com.casic.dcms.base.BaseCaseActivity; -import com.casic.dcms.bean.ActionResultBean; -import com.casic.dcms.bean.CaseDetailBean; -import com.casic.dcms.bean.CaseLargeClassBean; -import com.casic.dcms.bean.CaseNextNodeBean; -import com.casic.dcms.bean.CaseSmallClassBean; -import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; -import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; -import com.casic.dcms.mvp.view.ICaseDetailView; -import com.casic.dcms.mvp.view.ICaseHandleView; -import com.casic.dcms.mvp.view.ICaseLargeClassView; -import com.casic.dcms.mvp.view.ICaseNextNodeView; -import com.casic.dcms.mvp.view.ICaseSmallClassView; -import com.casic.dcms.mvp.view.IUploadFileView; -import com.casic.dcms.utils.FileUtils; -import com.casic.dcms.utils.GlideLoadEngine; -import com.casic.dcms.utils.ItemDecorationSpace; -import com.casic.dcms.utils.StringHelper; -import com.casic.dcms.utils.ToastHelper; -import com.luck.picture.lib.PictureSelector; -import com.luck.picture.lib.config.PictureConfig; -import com.luck.picture.lib.config.PictureMimeType; -import com.luck.picture.lib.entity.LocalMedia; -import com.luck.picture.lib.tools.PictureFileUtils; -import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; -import com.qmuiteam.qmui.widget.dialog.QMUIDialog; -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; - -import butterknife.BindView; -import butterknife.OnClick; - -public class CaseHandleOvertimeDetailActivity extends BaseCaseActivity implements View.OnClickListener, - ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, - ICaseHandleView { - - @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) - EditText casePlaceView; - @BindView(R.id.caseSituationView) - TextView caseSituationView; - @BindView(R.id.caseHandleView) - TextView caseHandleView; - @BindView(R.id.casePicRecyclerView) - RecyclerView casePicRecyclerView; - @BindView(R.id.caseStartTimeView) - TextView caseStartTimeView; - @BindView(R.id.caseEndTimeView) - TextView caseEndTimeView; - @BindView(R.id.caseHandleResultView) - TextView caseHandleResultView; - @BindView(R.id.caseHandleRecyclerView) - RecyclerView caseHandleRecyclerView; - @BindView(R.id.addImageView) - ImageView addImageView; - @BindView(R.id.caseReasonView) - EditText caseReasonView; - @BindView(R.id.submitButton) - QMUIRoundButton submitButton; - - private String id; - private String changeState; - private String caseReason; - private String approvalResult; - private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); - private List largeClassBeans = new ArrayList<>(); - private List smallClassBeans = new ArrayList<>(); - private List realPaths = new ArrayList<>();//真实图片路径 - private List mediaList = new ArrayList<>();//上传到服务器的数据集 - - private CaseDetailPresenterImpl caseDetailPresenter; - private CaseLargeClassPresenterImpl caseLargeClassPresenter; - private CaseSmallClassPresenterImpl caseSmallClassPresenter; - private CaseNextNodePresenterImpl caseNextNodePresenter; - private UploadImagePresenterImpl uploadImagePresenter; - private CaseHandlePresenterImpl caseHandlePresenter; - - private QMUITipDialog submitDialog; - - @Override - public int initLayoutView() { - return R.layout.activity_case_handle_overtime; - } - - @Override - protected String setTitleName() { - return "超时案卷"; - } - - @Override - public void initData() { - id = getIntent().getStringExtra("id"); - caseDetailPresenter = new CaseDetailPresenterImpl(this); - caseDetailPresenter.onReadyRetrofitRequest(id); - - caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); - caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); - caseNextNodePresenter = new CaseNextNodePresenterImpl(this); - uploadImagePresenter = new UploadImagePresenterImpl(this); - caseHandlePresenter = new CaseHandlePresenterImpl(this); - - submitDialog = new QMUITipDialog.Builder(this) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord("提交中,请稍后") - .create(); - } - - @Override - public void initEvent() { - submitButton.setChangeAlphaWhenPress(true); - } - - @Override - public void obtainCaseDetailData(CaseDetailBean resultBean) { - if (resultBean.isSuccess()) { - this.data = resultBean.getData().get(0); - caseTypeView.setText(data.getEorcName()); - caseLargeTypeView.setText(data.getCasetypeName()); - caseSmallTypeView.setText(data.getCasetypeDetailName()); - caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro()); - caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); - caseStartTimeView.setText(data.getCreateTime()); - caseEndTimeView.setText(data.getNodeLimittime()); - - String verifyImages = data.getFileIdVerify(); - if (!TextUtils.isEmpty(verifyImages)) { - List urls = new ArrayList<>(); - String[] split = verifyImages.split(","); - for (String s : split) { - urls.add(StringHelper.appendCompleteURL(s)); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(urls); - casePicRecyclerView.setVisibility(View.VISIBLE); - casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); - casePicRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(urls.get(position)); - } - }); - imageAdapter.setDeleteView(false); - } - } - } - - private void showBigImage(String path) { - Intent intent = new Intent(this, BigPictureActivity.class); - intent.putExtra("path", path); - startActivity(intent); - } - - @Override - public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { - if (largeClassBean.isSuccess()) { - //设置大类数据 - this.largeClassBeans = largeClassBean.getData(); - if (largeClassBeans.size() == 0) { - caseLargeTypeView.setText("无小类"); - } else { - caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 - } - caseSmallTypeView.setText("请选择"); - } - } - - @Override - public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { - if (smallClassBean.isSuccess()) { - //设置大类数据 - this.smallClassBeans = smallClassBean.getData(); - if (smallClassBeans.size() == 0) { - caseSmallTypeView.setText("无小类"); - } else { - caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 - } - } - } - - @Override - public void obtainNextNodeData(CaseNextNodeBean resultBean) { - if (resultBean.isSuccess()) { - List dataBeans = resultBean.getData(); - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("处理结果"); - for (CaseNextNodeBean.DataBean dataBean : dataBeans) { - 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(); - - CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); - caseHandleResultView.setText(dataBean.getNextOperation()); - changeState = String.valueOf(dataBean.getNextState()); - approvalResult = dataBean.getApprovalResult(); - } - }).build().show(); - } else { - ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); - } - } - - @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) - @Override - public void onClick(View v) { - switch (v.getId()) { - case R.id.caseClassLayout: - 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(); - - caseTypeView.setText(tag); - //获取案卷大类 - caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); - } - }).build().show(); - break; - case R.id.caseLargeClassLayout: - if (largeClassBeans != null) { - if (largeClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷大类"); - for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { - sheetBuilder.addItem(dataBean.getTypeName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseLargeTypeView.setText(tag); - //获取案卷小类 - CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); - String typeId = dataBean.getId(); - caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); - } - }).build().show(); - } - } - break; - case R.id.caseSmallClassLayout: - if (smallClassBeans != null) { - if (smallClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷小类"); - for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { - sheetBuilder.addItem(dataBean.getTypeDetailName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseSmallTypeView.setText(tag); - } - }).build().show(); - } - } - break; - case R.id.caseHandleResultLayout: - caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); - break; - case R.id.addImageView: - new QMUIDialog.MenuDialogBuilder(this) - .addItem("相册中选取", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //选图 - selectPicture(); - } - }) - .addItem("相机拍照", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //拍照 - takePicture(); - } - }) - .create().show(); - break; - case R.id.submitButton: - submitCase();//案卷提交 - break; - default: - break; - } - } - - private void submitCase() { - String handleResult = caseHandleResultView.getText().toString(); - if (handleResult.equals("请选择")) { - ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); - return; - } - if (handleResult.equals("处理完成")) { - //选择处理完成时,处理图片必传。至少一张,最多两张 - if (mediaList.size() < 1 || mediaList.size() > 2) { - ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); - return; - } - } - if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { - caseReason = caseReasonView.getText().toString(); - if (TextUtils.isEmpty(caseReason)) { - ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); - return; - } - } - caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), - changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); - } - - private void selectPicture() { - PictureSelector.create(this) - .openGallery(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(2) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.CHOOSE_REQUEST); - } - - private void takePicture() { - PictureSelector.create(this) - .openCamera(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(1) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.REQUEST_CAMERA); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if (resultCode == RESULT_OK) { - switch (requestCode) { - case PictureConfig.CHOOSE_REQUEST: - List selectList = PictureSelector.obtainMultipleResult(data); - for (LocalMedia media : selectList) { - String mediaCompressPath = media.getCompressPath(); - uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); - } - break; - case PictureConfig.REQUEST_CAMERA: - LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); - uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); - break; - default: - break; - } - } - } - - @Override - public void showProgress() { - submitDialog.show(); - } - - @Override - public void hideProgress() { - submitDialog.hide(); - } - - @Override - public void obtainUploadAudioResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainUploadImageResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - PictureFileUtils.deleteAllCacheDirFile(this); - /** - * 系统路径static拼接图片返回路径 - * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg - */ - //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String url = resultBean.getData(); - mediaList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(realPaths); - caseHandleRecyclerView.setVisibility(View.VISIBLE); - caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); - caseHandleRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(realPaths.get(position)); - } - }); - //删除按钮点击事件 - imageAdapter.setDeleteView(true); - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); - } - } - }); - } - } - - @Override - public void obtainUploadVideoResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainCaseHandleResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); - finish(); - } else { - ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); - } - } - - @Override - protected void onDestroy() { - super.onDestroy(); - if (caseDetailPresenter != null) { - caseDetailPresenter.disposeRetrofitRequest(); - } - if (caseLargeClassPresenter != null) { - caseLargeClassPresenter.disposeRetrofitRequest(); - } - if (caseSmallClassPresenter != null) { - caseSmallClassPresenter.disposeRetrofitRequest(); - } - if (caseNextNodePresenter != null) { - caseNextNodePresenter.disposeRetrofitRequest(); - } - if (uploadImagePresenter != null) { - uploadImagePresenter.disposeRetrofitRequest(); - } - if (caseHandlePresenter != null) { - caseHandlePresenter.disposeRetrofitRequest(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java new file mode 100644 index 0000000..5ea5403 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -0,0 +1,145 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { + + @BindView(R.id.detailTopLayout) + QMUITopBarLayout detailTopLayout; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @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; + + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private CaseDetailPresenterImpl caseDetailPresenter; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handled_detail; + } + + @Override + protected void setupTopBarLayout() { + detailTopLayout.setTitle("已办案卷").setTextColor(ContextCompat.getColor(this, R.color.white)); + detailTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + detailTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + String id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + } + + @Override + public void initEvent() { + + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseHandleStatusView.setText(data.getCaseStateName()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @OnClick(R.id.handleLayout) + @Override + public void onClick(View v) { + if (v.getId() == R.id.handleLayout) { + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java new file mode 100644 index 0000000..3b2d3d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -0,0 +1,228 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.TextView; + +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.presenter.CaseCommonSentencePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseUpdateSupervisePresenterImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseOverTimeView) + TextView caseOverTimeView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @BindView(R.id.casePlaceView) + EditText casePlaceView; + @BindView(R.id.caseDescriptionView) + TextView caseDescriptionView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseHandleResultView) + EditText caseHandleResultView; + @BindView(R.id.caseCommonSentenceView) + TextView caseCommonSentenceView; + + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseCommonSentencePresenterImpl commonSentencePresenter; + private CaseUpdateSupervisePresenterImpl updateSupervisePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_todo_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + commonSentencePresenter = new CaseCommonSentencePresenterImpl(this); + updateSupervisePresenter = new CaseUpdateSupervisePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @Override + public void initEvent() { + + } + + @OnClick({R.id.caseHandleLayout, R.id.caseCommonSentenceLayout, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseHandleLayout: + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + break; + case R.id.caseCommonSentenceLayout: + commonSentencePresenter.onReadyRetrofitRequest(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String remarks = caseHandleResultView.getText().toString(); + if (TextUtils.isEmpty(remarks)) { + ToastHelper.showToast("督办意见不能为空", ToastHelper.WARING); + return; + } + updateSupervisePresenter.onReadyRetrofitRequest(id, remarks); + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseOverTimeView.setText(data.getNodeLimittime()); + caseHandleStatusView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + casePlaceView.setText(data.getFieldintro()); + caseDescriptionView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainCommonSentenceData(CommonSentenceBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("常用语句"); + for (CommonSentenceBean.DataBean dataBean : dataBeans) { + 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(); + + CommonSentenceBean.DataBean dataBean = dataBeans.get(position); + caseCommonSentenceView.setText(dataBean.getName()); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUpdateSuperviseData(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷督办提交成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷督办提交失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (commonSentencePresenter != null) { + commonSentencePresenter.disposeRetrofitRequest(); + } + if (updateSupervisePresenter != null) { + updateSupervisePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 3060e1b..af6a9fe 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -191,7 +191,7 @@ caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); - caseHandleView.setText(data.getUrgeRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); caseSituationView.setText(data.getDescription()); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index 7816221..3989633 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -28,6 +28,7 @@ import com.casic.dcms.ui.OvertimeCaseActivity; import com.casic.dcms.ui.PersonOnlineActivity; import com.casic.dcms.ui.UrgentCaseActivity; +import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.StringHelper; import com.qmuiteam.qmui.widget.QMUIRadiusImageView; @@ -69,62 +70,12 @@ @Override protected void initEvent() { - HomeRecycleAdapter adapter = new HomeRecycleAdapter(context); - homeRecyclerView.setLayoutManager(new GridLayoutManager(context, 3)); - homeRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - Intent intent = new Intent(); - switch (position) { - case 0: - intent.setClass(context, CaseUploadActivity.class); - break; - case 1: - intent.setClass(context, CaseUploadQuicklyActivity.class); - break; - case 2: - intent.setClass(context, FivePackageUploadActivity.class); - break; - case 3: - intent.setClass(context, CaseVerifyActivity.class); - break; - case 4: - intent.setClass(context, CaseCheckActivity.class); - break; - case 5: - intent.setClass(context, CaseHandleActivity.class); - break; - case 6: - intent.setClass(context, UrgentCaseActivity.class); - break; - case 7: - intent.setClass(context, OvertimeCaseActivity.class); - break; - case 8: - intent.setClass(context, DataAnalysisActivity.class); - break; - case 9: - intent.setClass(context, PersonOnlineActivity.class); - break; - case 10: - intent.setClass(context, CaseSearchActivity.class); - break; - case 11: - intent.setClass(context, MapWatchViewActivity.class); - break; - default: - break; - } - startActivity(intent); - } - }); + } @SuppressLint("SetTextI18n") @Override public void obtainUserData(UserBean userBean) { -// Log.d(TAG, "obtainUserData: " + new Gson().toJson(userBean)); if (userBean.isSuccess()) { //QMUIRadiusImageView无法动态设置圆形头像,借助Glide实现圆形头像 Glide.with(this).load(R.mipmap.app_logo).apply(RequestOptions.circleCropTransform()).into(userIconView); @@ -137,6 +88,121 @@ StringHelper.saveUserPhone(data.getPhone()); StringHelper.saveUserDept(data.getDeptName()); StringHelper.saveUserDeptId(data.getDeptId()); + + //权限控制 + String roleTip = data.getRoleTips().get(0); + HomeRecycleAdapter adapter = new HomeRecycleAdapter(context); + homeRecyclerView.setLayoutManager(new GridLayoutManager(context, 3)); + switch (roleTip) { + case "supervisor": + //All + adapter.setItemData(Constant.ALL_ICONS, Constant.ALL_ITEMS); + adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { + @Override + public void onClick(int position) { + Intent intent = new Intent(); + switch (position) { + case 0: + intent.setClass(context, CaseUploadActivity.class); + break; + case 1: + intent.setClass(context, CaseUploadQuicklyActivity.class); + break; + case 2: + intent.setClass(context, FivePackageUploadActivity.class); + break; + case 3: + intent.setClass(context, CaseVerifyActivity.class); + break; + case 4: + intent.setClass(context, CaseCheckActivity.class); + break; + case 5: + intent.setClass(context, CaseHandleActivity.class); + break; + case 6: + intent.setClass(context, UrgentCaseActivity.class); + break; + case 7: + intent.setClass(context, OvertimeCaseActivity.class); + break; + case 8: + intent.setClass(context, DataAnalysisActivity.class); + break; + case 9: + intent.setClass(context, PersonOnlineActivity.class); + break; + case 10: + intent.setClass(context, CaseSearchActivity.class); + break; + case 11: + intent.setClass(context, MapWatchViewActivity.class); + break; + default: + break; + } + startActivity(intent); + } + }); + break; +// case "process": +// //案卷处理、案卷查询 +// adapter.setItemData(Constant.PROCESS_ICONS, Constant.PROCESS_ITEMS); +// adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { +// @Override +// public void onClick(int position) { +// Intent intent = new Intent(); +// switch (position) { +// case 0: +// intent.setClass(context, CaseHandleActivity.class); +// break; +// case 1: +// intent.setClass(context, CaseSearchActivity.class); +// break; +// default: +// break; +// } +// startActivity(intent); +// } +// }); +// break; +// case "leader": +// //案卷上报、紧急要件、超时督办、统计分析、在岗人员、案卷查询 +// adapter.setItemData(Constant.LEADER_ICONS, Constant.LEADER_ITEMS); +// adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { +// @Override +// public void onClick(int position) { +// Intent intent = new Intent(); +// switch (position) { +// case 0: +// intent.setClass(context, CaseUploadActivity.class); +// break; +// case 1: +// intent.setClass(context, UrgentCaseActivity.class); +// break; +// case 2: +// intent.setClass(context, OvertimeCaseActivity.class); +// break; +// case 3: +// intent.setClass(context, DataAnalysisActivity.class); +// break; +// case 4: +// intent.setClass(context, PersonOnlineActivity.class); +// break; +// case 5: +// intent.setClass(context, CaseSearchActivity.class); +// break; +// default: +// break; +// } +// startActivity(intent); +// } +// }); +// break; + default: + break; + } + homeRecyclerView.setAdapter(adapter); } } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java index 430f8be..fa2df7a 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandledBean; import com.casic.dcms.mvp.presenter.CaseHandledListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandledListView; +import com.casic.dcms.ui.CaseHandledDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -128,10 +130,9 @@ adapter.setOnItemClickListener(new CaseHandledAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandledDetailActivity.class); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java index 502c288..05306fe 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -130,10 +132,10 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "待办案卷"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java index 25877de..743a092 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java @@ -17,7 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; -import com.casic.dcms.ui.CaseHandleOvertimeDetailActivity; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -133,7 +133,8 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { - Intent intent = new Intent(context, CaseHandleOvertimeDetailActivity.class); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "超时案卷"); intent.putExtra("id", dataBeans.get(position).getId()); startActivity(intent); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java index f957e26..ae0b3e5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -131,10 +133,10 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "紧急案卷"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java index 18178eb..5d51969 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.OvertimeCaseBean; import com.casic.dcms.mvp.presenter.OvertimeCaseListPresenterImpl; import com.casic.dcms.mvp.view.IOvertimeCaseListView; +import com.casic.dcms.ui.CaseTodoDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -128,10 +130,10 @@ adapter.setOnItemClickListener(new OvertimeCaseAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseTodoDetailActivity.class); + intent.putExtra("title", "超时督办"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java index 19c6766..51bdbd0 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.mvp.presenter.UrgentCaseListPresenterImpl; import com.casic.dcms.mvp.view.IUrgentCaseListView; +import com.casic.dcms.ui.CaseTodoDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -129,10 +131,10 @@ adapter.setOnItemClickListener(new UrgentCaseAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseTodoDetailActivity.class); + intent.putExtra("title", "紧急要件"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } 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 233b5d1..2e68d04 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -9,18 +9,38 @@ import java.util.List; public class Constant { - public static final List ICONS = Arrays.asList( + public static final String[] USER_PERMISSIONS = { + Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION, + Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO, + Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE, + Manifest.permission.CALL_PHONE}; + + public static final List ALL_ICONS = Arrays.asList( R.mipmap.ajsb, R.mipmap.kssb, R.mipmap.sbsb, R.mipmap.ajhs, R.mipmap.ajhc, R.mipmap.ajcl, R.mipmap.jjyj, R.mipmap.csdb, R.mipmap.tjfx, R.mipmap.zgry, R.mipmap.ajcx, R.mipmap.dtck); - public static final List ITEMS = Arrays.asList( + public static final List ALL_ITEMS = Arrays.asList( "案卷上报", "快速上报", "五包上报", "案卷核实", "案卷核查", "案卷处理", "紧急要件", "超时督办", "统计分析", "在岗人员", "案卷查询", "地图查看"); + public static final List PROCESS_ICONS = Arrays.asList( + R.mipmap.ajcl, R.mipmap.ajcx); + + public static final List PROCESS_ITEMS = Arrays.asList( + "案卷处理", "案卷查询"); + + public static final List LEADER_ICONS = Arrays.asList( + R.mipmap.ajsb, R.mipmap.jjyj, R.mipmap.csdb, + R.mipmap.tjfx, R.mipmap.zgry, R.mipmap.ajcx); + + public static final List LEADER_ITEMS = Arrays.asList( + "案卷上报", "紧急要件", "超时督办", + "统计分析", "在岗人员", "案卷查询"); + public static final List ANALYSIS_ICONS = Arrays.asList( R.mipmap.sbsb, R.mipmap.jjyj, R.mipmap.csdb, R.mipmap.ajcl, R.mipmap.tjfx, R.mipmap.ajhc); @@ -29,17 +49,6 @@ "问题来源", "案卷状态", "高发问题", "街道统计", "处理统计", "趋势分析"); - public static final List CATEGORY = Arrays.asList("请选择", "情况属实", "情况不属实"); - - public static final String[] USER_PERMISSIONS = { - Manifest.permission.ACCESS_COARSE_LOCATION, - Manifest.permission.ACCESS_FINE_LOCATION, - Manifest.permission.CAMERA, - Manifest.permission.READ_EXTERNAL_STORAGE, - Manifest.permission.WRITE_EXTERNAL_STORAGE, - Manifest.permission.RECORD_AUDIO, - Manifest.permission.CALL_PHONE}; - //先预置8种颜色 public static final int[] PIE_COLORS = {Color.rgb(28, 197, 220), Color.rgb(255, 223, 107), Color.rgb(242, 17, 112), diff --git a/app/src/main/java/com/casic/dcms/utils/StringHelper.java b/app/src/main/java/com/casic/dcms/utils/StringHelper.java index 1201063..5aeb8f6 100644 --- a/app/src/main/java/com/casic/dcms/utils/StringHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/StringHelper.java @@ -60,7 +60,9 @@ return ""; } String data = url.replace("\\", "/"); - return SaveKeyValues.getValue(Constant.IP_KEY, "http://111.198.10.15:11409") + "/static/" + data; + String imagePath = SaveKeyValues.getValue(Constant.IP_KEY, "http://111.198.10.15:11409") + "/static/" + data; + Log.d(TAG, "appendCompleteURL: "+imagePath); + return imagePath; } public static String reformatURL(List urls) { 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 ec230dd..16bafa1 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 @@ -14,6 +14,7 @@ import com.casic.dcms.bean.CaseStatusBean; import com.casic.dcms.bean.CaseVerifiedBean; import com.casic.dcms.bean.CaseVerifyBean; +import com.casic.dcms.bean.CommonSentenceBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; import com.casic.dcms.bean.LoginResultBean; @@ -345,6 +346,12 @@ @Query("caseState") String caseState); /** + * 获取常见语句 + */ + @GET("/dict/code/commonApproval") + Observable obtainCommonSentence(@Header("token") String token); + + /** * 案卷处理 *

* 案卷核实-仅添加核实意见/核实情况/核实图片 @@ -401,4 +408,12 @@ @Field("communityCode") String communityCode, @Field("gridId") String gridId, @Field("fieldintro") String fieldintro); + + /** + * 紧急要件-超时督办 + */ + @GET("/casedetail/updateSuperviseRemarks") + Observable updateSuperviseRemarks(@Header("token") String token, + @Query("id") String id, + @Query("superviseRemarks") String superviseRemarks); } 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 0c77b61..226b287 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 @@ -16,6 +16,7 @@ import com.casic.dcms.bean.CaseStatusBean; import com.casic.dcms.bean.CaseVerifiedBean; import com.casic.dcms.bean.CaseVerifyBean; +import com.casic.dcms.bean.CommonSentenceBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; import com.casic.dcms.bean.LoginResultBean; @@ -397,6 +398,15 @@ } /** + * 获取常见语句 + */ + public static Observable getCommonSentenceResult() { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainCommonSentence(TokenHelper.getToken()); + } + + /** * 案卷处理 *

* 案卷核实-仅添加核实意见/核实情况/核实图片 @@ -445,4 +455,13 @@ remarks, fileId, eorc, casetypeCode, casetypeDetailCode, lng, lat, caseLevel, areaCode, streetCode, communityCode, gridId, fieldintro); } + + /** + * 紧急要件-超时督办 + */ + public static Observable getUpdateSuperviseResult(String id, String superviseRemarks) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.updateSuperviseRemarks(TokenHelper.getToken(), id, superviseRemarks); + } } diff --git a/app/src/main/res/drawable/ic_load_error.xml b/app/src/main/res/drawable/ic_load_error.xml new file mode 100644 index 0000000..5ad71a1 --- /dev/null +++ b/app/src/main/res/drawable/ic_load_error.xml @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/activity_big_pic.xml b/app/src/main/res/layout/activity_big_pic.xml index 551ed62..bc09ace 100644 --- a/app/src/main/res/layout/activity_big_pic.xml +++ b/app/src/main/res/layout/activity_big_pic.xml @@ -1,16 +1,17 @@ - - + android:layout_height="wrap_content" + android:fitsSystemWindows="true" /> + - \ No newline at end of file + android:layout_height="wrap_content" /> + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_case_check_detail.xml b/app/src/main/res/layout/activity_case_check_detail.xml index 607d1eb..58bc5d4 100644 --- a/app/src/main/res/layout/activity_case_check_detail.xml +++ b/app/src/main/res/layout/activity_case_check_detail.xml @@ -16,28 +16,6 @@ android:layout_height="wrap_content" android:orientation="vertical"> - - - - - - - - - diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml new file mode 100644 index 0000000..44f84e7 --- /dev/null +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_case_handle_overtime.xml b/app/src/main/res/layout/activity_case_handle_overtime.xml deleted file mode 100644 index 44f84e7..0000000 --- a/app/src/main/res/layout/activity_case_handle_overtime.xml +++ /dev/null @@ -1,213 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_case_handled_detail.xml b/app/src/main/res/layout/activity_case_handled_detail.xml new file mode 100644 index 0000000..fdeb450 --- /dev/null +++ b/app/src/main/res/layout/activity_case_handled_detail.xml @@ -0,0 +1,245 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_case_todo_detail.xml b/app/src/main/res/layout/activity_case_todo_detail.xml new file mode 100644 index 0000000..8ff5257 --- /dev/null +++ b/app/src/main/res/layout/activity_case_todo_detail.xml @@ -0,0 +1,242 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_case_verify_detail.xml b/app/src/main/res/layout/activity_case_verify_detail.xml index 2317483..a5d1810 100644 --- a/app/src/main/res/layout/activity_case_verify_detail.xml +++ b/app/src/main/res/layout/activity_case_verify_detail.xml @@ -17,29 +17,7 @@ android:layout_height="wrap_content" android:orientation="vertical"> - - - - - - - - - - + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f6ac20a..2070c95 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -67,12 +67,14 @@ - + - + + + { private Context context; + private List iconData = new ArrayList<>(); + private List itemData = new ArrayList<>(); public HomeRecycleAdapter(Context context) { this.context = context; } + public void setItemData(@Nullable List icons, @Nullable List items) { + this.iconData = icons; + this.itemData = items; + } + @NonNull @Override public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -30,7 +40,7 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - holder.bindView(context, position); + holder.bindView(position); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override @@ -43,7 +53,7 @@ @Override public int getItemCount() { - return Constant.ITEMS.size(); + return itemData.size(); } private OnGridItemClickListener clickListener; @@ -56,7 +66,7 @@ this.clickListener = onGridItemClickListener; } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { private ImageView imageView; private TextView textView; @@ -67,9 +77,9 @@ textView = itemView.findViewById(R.id.textView); } - void bindView(Context context, int position) { - imageView.setBackgroundResource(Constant.ICONS.get(position)); - textView.setText(Constant.ITEMS.get(position)); + void bindView(int position) { + imageView.setBackgroundResource(iconData.get(position)); + textView.setText(itemData.get(position)); } } } diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index b9c4615..d9b10e0 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; import java.util.ArrayList; @@ -62,7 +63,10 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - Glide.with(context).load(mediaList.get(position)).into(holder.imageView); + Glide.with(context) + .load(mediaList.get(position)) + .apply(new RequestOptions().error(R.drawable.ic_load_error)) + .into(holder.imageView); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/casic/dcms/base/BaseActivity.java b/app/src/main/java/com/casic/dcms/base/BaseActivity.java index caf0356..2ca87fe 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseActivity.java +++ b/app/src/main/java/com/casic/dcms/base/BaseActivity.java @@ -17,8 +17,8 @@ setContentView(initLayoutView()); ButterKnife.bind(this); QMUIStatusBarHelper.translucent(this);//沉浸式状态栏 - setupTopBarLayout(); initData(); + setupTopBarLayout(); initEvent(); } diff --git a/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java new file mode 100644 index 0000000..8de58a4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java @@ -0,0 +1,78 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CommonSentenceBean { + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 请及时处理 + * id : 156 + * value : 请及时处理 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java new file mode 100644 index 0000000..5258d89 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CommonSentenceBean; +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 CaseCommonSentenceModelImpl implements ICaseCommonSentenceModel { + + private OnGetCommonSentenceListener sentenceListener; + + public CaseCommonSentenceModelImpl(OnGetCommonSentenceListener commonSentenceListener) { + this.sentenceListener = commonSentenceListener; + } + + public interface OnGetCommonSentenceListener { + void onSuccess(CommonSentenceBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCommonSentenceResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (sentenceListener != null) { + sentenceListener.onFailure(e); + } + } + + @Override + public void onNext(CommonSentenceBean resultBean) { + if (resultBean != null) { + sentenceListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java new file mode 100644 index 0000000..a8cb3fc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java @@ -0,0 +1,53 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseUpdateSuperviseModelImpl implements ICaseUpdateSuperviseModel { + + private OnUpdateSuperviseListener listener; + + public CaseUpdateSuperviseModelImpl(OnUpdateSuperviseListener updateSuperviseListener) { + this.listener = updateSuperviseListener; + } + + /** + * 数据回调接口 + */ + public interface OnUpdateSuperviseListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String superviseRemarks) { + Observable observable = RetrofitServiceManager.getUpdateSuperviseResult(id, superviseRemarks); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java new file mode 100644 index 0000000..263ef6c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseCommonSentenceModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java new file mode 100644 index 0000000..518d602 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseUpdateSuperviseModel { + Subscription sendRetrofitRequest(String id, String superviseRemarks); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java new file mode 100644 index 0000000..6b65f13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseCommonSentenceModelImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; + +public class CaseCommonSentencePresenterImpl extends BasePresenter implements ICaseCommonSentencePresenter, + CaseCommonSentenceModelImpl.OnGetCommonSentenceListener { + + private ICaseCommonSentenceView view; + private CaseCommonSentenceModelImpl actionModel; + + public CaseCommonSentencePresenterImpl(ICaseCommonSentenceView commonSentenceView) { + this.view = commonSentenceView; + actionModel = new CaseCommonSentenceModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CommonSentenceBean resultBean) { + view.obtainCommonSentenceData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java new file mode 100644 index 0000000..66e1f44 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseUpdateSuperviseModelImpl; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; + +public class CaseUpdateSupervisePresenterImpl extends BasePresenter implements ICaseUpdateSupervisePresenter, + CaseUpdateSuperviseModelImpl.OnUpdateSuperviseListener { + + private ICaseUpdateSuperviseView view; + private CaseUpdateSuperviseModelImpl actionModel; + + public CaseUpdateSupervisePresenterImpl(ICaseUpdateSuperviseView updateSuperviseView) { + this.view = updateSuperviseView; + actionModel = new CaseUpdateSuperviseModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String superviseRemarks) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, superviseRemarks)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainUpdateSuperviseData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java new file mode 100644 index 0000000..1f8bd09 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseCommonSentencePresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java new file mode 100644 index 0000000..f61f9b2 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseUpdateSupervisePresenter { + void onReadyRetrofitRequest(String id, String superviseRemarks); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java new file mode 100644 index 0000000..9c7b08b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CommonSentenceBean; + +public interface ICaseCommonSentenceView { + void obtainCommonSentenceData(CommonSentenceBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java new file mode 100644 index 0000000..10bcf5a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICaseUpdateSuperviseView { + void showProgress(); + + void hideProgress(); + + void obtainUpdateSuperviseData(ActionResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java index ad70b7a..9143db8 100644 --- a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.ui; +import android.view.View; + +import androidx.core.content.ContextCompat; + import com.bumptech.glide.Glide; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.luck.picture.lib.photoview.PhotoView; -import com.qmuiteam.qmui.util.QMUIStatusBarHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; import butterknife.BindView; @@ -15,6 +19,8 @@ **/ public class BigPictureActivity extends BaseActivity { + @BindView(R.id.imageTopLayout) + QMUITopBarLayout imageTopLayout; @BindView(R.id.photoView) PhotoView photoView; @@ -25,37 +31,24 @@ @Override protected void setupTopBarLayout() { - QMUIStatusBarHelper.setStatusBarLightMode(this); + imageTopLayout.setTitle("查看大图").setTextColor(ContextCompat.getColor(this, R.color.white)); + imageTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + imageTopLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); } @Override public void initData() { -// String mediaJson = getIntent().getStringExtra("mediaJson"); -// -// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() { -// }.getType()); -// -// list = new ArrayList<>(); -// assert mediaList != null; -// for (LocalMedia media : mediaList) { -// list.add(media.getRealPath()); -// } String path = getIntent().getStringExtra("path"); Glide.with(this).load(path).into(photoView); } @Override public void initEvent() { -// //轮播图 -// bigImageBanner.setImageLoader(new ImageLoader() { -// -// @Override -// public void displayImage(Context context, Object path, ImageView imageView) { -// Glide.with(context).load(path).into(imageView); -// } -// }); -// bigImageBanner.isAutoPlay(false); -// bigImageBanner.setImages(list); -// bigImageBanner.start(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index 01a3807..7548cfc 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -329,7 +329,7 @@ caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java new file mode 100644 index 0000000..d4dba38 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -0,0 +1,505 @@ +package com.casic.dcms.ui; + +import android.content.DialogInterface; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseNextNodeBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseHandleView; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseNextNodeView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.IUploadFileView; +import com.casic.dcms.utils.FileUtils; +import com.casic.dcms.utils.GlideLoadEngine; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.luck.picture.lib.PictureSelector; +import com.luck.picture.lib.config.PictureConfig; +import com.luck.picture.lib.config.PictureMimeType; +import com.luck.picture.lib.entity.LocalMedia; +import com.luck.picture.lib.tools.PictureFileUtils; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, + ICaseHandleView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @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) + EditText casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.caseHandleView) + TextView caseHandleView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseStartTimeView) + TextView caseStartTimeView; + @BindView(R.id.caseEndTimeView) + TextView caseEndTimeView; + @BindView(R.id.caseHandleResultView) + TextView caseHandleResultView; + @BindView(R.id.caseHandleRecyclerView) + RecyclerView caseHandleRecyclerView; + @BindView(R.id.addImageView) + ImageView addImageView; + @BindView(R.id.caseReasonView) + EditText caseReasonView; + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private String changeState; + private String caseReason; + private String approvalResult; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private List largeClassBeans = new ArrayList<>(); + private List smallClassBeans = new ArrayList<>(); + private List realPaths = new ArrayList<>();//真实图片路径 + private List mediaList = new ArrayList<>();//上传到服务器的数据集 + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private CaseNextNodePresenterImpl caseNextNodePresenter; + private UploadImagePresenterImpl uploadImagePresenter; + private CaseHandlePresenterImpl caseHandlePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handle_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseNextNodePresenter = new CaseNextNodePresenterImpl(this); + uploadImagePresenter = new UploadImagePresenterImpl(this); + caseHandlePresenter = new CaseHandlePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @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()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + caseStartTimeView.setText(data.getCreateTime()); + caseEndTimeView.setText(data.getNodeLimittime()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeTypeView.setText("无小类"); + } else { + caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 + } + caseSmallTypeView.setText("请选择"); + } + } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallTypeView.setText("无小类"); + } else { + caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 + } + } + } + + @Override + public void obtainNextNodeData(CaseNextNodeBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处理结果"); + for (CaseNextNodeBean.DataBean dataBean : dataBeans) { + 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(); + + CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); + caseHandleResultView.setText(dataBean.getNextOperation()); + changeState = String.valueOf(dataBean.getNextState()); + approvalResult = dataBean.getApprovalResult(); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseClassLayout: + 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(); + + caseTypeView.setText(tag); + //获取案卷大类 + caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseLargeTypeView.setText(tag); + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseSmallTypeView.setText(tag); + } + }).build().show(); + } + } + break; + case R.id.caseHandleResultLayout: + caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); + break; + case R.id.addImageView: + new QMUIDialog.MenuDialogBuilder(this) + .addItem("相册中选取", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //选图 + selectPicture(); + } + }) + .addItem("相机拍照", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //拍照 + takePicture(); + } + }) + .create().show(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String handleResult = caseHandleResultView.getText().toString(); + if (handleResult.equals("请选择")) { + ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); + return; + } + if (handleResult.equals("处理完成")) { + //选择处理完成时,处理图片必传。至少一张,最多两张 + if (mediaList.size() < 1 || mediaList.size() > 2) { + ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); + return; + } + } + if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { + caseReason = caseReasonView.getText().toString(); + if (TextUtils.isEmpty(caseReason)) { + ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); + return; + } + } + caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), + changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); + } + + private void selectPicture() { + PictureSelector.create(this) + .openGallery(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(2) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.CHOOSE_REQUEST); + } + + private void takePicture() { + PictureSelector.create(this) + .openCamera(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(1) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.REQUEST_CAMERA); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == RESULT_OK) { + switch (requestCode) { + case PictureConfig.CHOOSE_REQUEST: + List selectList = PictureSelector.obtainMultipleResult(data); + for (LocalMedia media : selectList) { + String mediaCompressPath = media.getCompressPath(); + uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); + } + break; + case PictureConfig.REQUEST_CAMERA: + LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); + uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); + break; + default: + break; + } + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUploadAudioResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainUploadImageResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + PictureFileUtils.deleteAllCacheDirFile(this); + /** + * 系统路径static拼接图片返回路径 + * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg + */ + //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg + String url = resultBean.getData(); + mediaList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(realPaths); + caseHandleRecyclerView.setVisibility(View.VISIBLE); + caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); + caseHandleRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(realPaths.get(position)); + } + }); + //删除按钮点击事件 + imageAdapter.setDeleteView(true); + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } + } + + @Override + public void obtainUploadVideoResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainCaseHandleResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseNextNodePresenter != null) { + caseNextNodePresenter.disposeRetrofitRequest(); + } + if (uploadImagePresenter != null) { + uploadImagePresenter.disposeRetrofitRequest(); + } + if (caseHandlePresenter != null) { + caseHandlePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java deleted file mode 100644 index bd187c5..0000000 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java +++ /dev/null @@ -1,500 +0,0 @@ -package com.casic.dcms.ui; - -import android.content.DialogInterface; -import android.content.Intent; -import android.text.TextUtils; -import android.view.View; -import android.widget.EditText; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.Nullable; -import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.adapter.ImageRecycleViewAdapter; -import com.casic.dcms.base.BaseCaseActivity; -import com.casic.dcms.bean.ActionResultBean; -import com.casic.dcms.bean.CaseDetailBean; -import com.casic.dcms.bean.CaseLargeClassBean; -import com.casic.dcms.bean.CaseNextNodeBean; -import com.casic.dcms.bean.CaseSmallClassBean; -import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; -import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; -import com.casic.dcms.mvp.view.ICaseDetailView; -import com.casic.dcms.mvp.view.ICaseHandleView; -import com.casic.dcms.mvp.view.ICaseLargeClassView; -import com.casic.dcms.mvp.view.ICaseNextNodeView; -import com.casic.dcms.mvp.view.ICaseSmallClassView; -import com.casic.dcms.mvp.view.IUploadFileView; -import com.casic.dcms.utils.FileUtils; -import com.casic.dcms.utils.GlideLoadEngine; -import com.casic.dcms.utils.ItemDecorationSpace; -import com.casic.dcms.utils.StringHelper; -import com.casic.dcms.utils.ToastHelper; -import com.luck.picture.lib.PictureSelector; -import com.luck.picture.lib.config.PictureConfig; -import com.luck.picture.lib.config.PictureMimeType; -import com.luck.picture.lib.entity.LocalMedia; -import com.luck.picture.lib.tools.PictureFileUtils; -import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; -import com.qmuiteam.qmui.widget.dialog.QMUIDialog; -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; - -import butterknife.BindView; -import butterknife.OnClick; - -public class CaseHandleOvertimeDetailActivity extends BaseCaseActivity implements View.OnClickListener, - ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, - ICaseHandleView { - - @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) - EditText casePlaceView; - @BindView(R.id.caseSituationView) - TextView caseSituationView; - @BindView(R.id.caseHandleView) - TextView caseHandleView; - @BindView(R.id.casePicRecyclerView) - RecyclerView casePicRecyclerView; - @BindView(R.id.caseStartTimeView) - TextView caseStartTimeView; - @BindView(R.id.caseEndTimeView) - TextView caseEndTimeView; - @BindView(R.id.caseHandleResultView) - TextView caseHandleResultView; - @BindView(R.id.caseHandleRecyclerView) - RecyclerView caseHandleRecyclerView; - @BindView(R.id.addImageView) - ImageView addImageView; - @BindView(R.id.caseReasonView) - EditText caseReasonView; - @BindView(R.id.submitButton) - QMUIRoundButton submitButton; - - private String id; - private String changeState; - private String caseReason; - private String approvalResult; - private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); - private List largeClassBeans = new ArrayList<>(); - private List smallClassBeans = new ArrayList<>(); - private List realPaths = new ArrayList<>();//真实图片路径 - private List mediaList = new ArrayList<>();//上传到服务器的数据集 - - private CaseDetailPresenterImpl caseDetailPresenter; - private CaseLargeClassPresenterImpl caseLargeClassPresenter; - private CaseSmallClassPresenterImpl caseSmallClassPresenter; - private CaseNextNodePresenterImpl caseNextNodePresenter; - private UploadImagePresenterImpl uploadImagePresenter; - private CaseHandlePresenterImpl caseHandlePresenter; - - private QMUITipDialog submitDialog; - - @Override - public int initLayoutView() { - return R.layout.activity_case_handle_overtime; - } - - @Override - protected String setTitleName() { - return "超时案卷"; - } - - @Override - public void initData() { - id = getIntent().getStringExtra("id"); - caseDetailPresenter = new CaseDetailPresenterImpl(this); - caseDetailPresenter.onReadyRetrofitRequest(id); - - caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); - caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); - caseNextNodePresenter = new CaseNextNodePresenterImpl(this); - uploadImagePresenter = new UploadImagePresenterImpl(this); - caseHandlePresenter = new CaseHandlePresenterImpl(this); - - submitDialog = new QMUITipDialog.Builder(this) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord("提交中,请稍后") - .create(); - } - - @Override - public void initEvent() { - submitButton.setChangeAlphaWhenPress(true); - } - - @Override - public void obtainCaseDetailData(CaseDetailBean resultBean) { - if (resultBean.isSuccess()) { - this.data = resultBean.getData().get(0); - caseTypeView.setText(data.getEorcName()); - caseLargeTypeView.setText(data.getCasetypeName()); - caseSmallTypeView.setText(data.getCasetypeDetailName()); - caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro()); - caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); - caseStartTimeView.setText(data.getCreateTime()); - caseEndTimeView.setText(data.getNodeLimittime()); - - String verifyImages = data.getFileIdVerify(); - if (!TextUtils.isEmpty(verifyImages)) { - List urls = new ArrayList<>(); - String[] split = verifyImages.split(","); - for (String s : split) { - urls.add(StringHelper.appendCompleteURL(s)); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(urls); - casePicRecyclerView.setVisibility(View.VISIBLE); - casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); - casePicRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(urls.get(position)); - } - }); - imageAdapter.setDeleteView(false); - } - } - } - - private void showBigImage(String path) { - Intent intent = new Intent(this, BigPictureActivity.class); - intent.putExtra("path", path); - startActivity(intent); - } - - @Override - public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { - if (largeClassBean.isSuccess()) { - //设置大类数据 - this.largeClassBeans = largeClassBean.getData(); - if (largeClassBeans.size() == 0) { - caseLargeTypeView.setText("无小类"); - } else { - caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 - } - caseSmallTypeView.setText("请选择"); - } - } - - @Override - public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { - if (smallClassBean.isSuccess()) { - //设置大类数据 - this.smallClassBeans = smallClassBean.getData(); - if (smallClassBeans.size() == 0) { - caseSmallTypeView.setText("无小类"); - } else { - caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 - } - } - } - - @Override - public void obtainNextNodeData(CaseNextNodeBean resultBean) { - if (resultBean.isSuccess()) { - List dataBeans = resultBean.getData(); - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("处理结果"); - for (CaseNextNodeBean.DataBean dataBean : dataBeans) { - 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(); - - CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); - caseHandleResultView.setText(dataBean.getNextOperation()); - changeState = String.valueOf(dataBean.getNextState()); - approvalResult = dataBean.getApprovalResult(); - } - }).build().show(); - } else { - ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); - } - } - - @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) - @Override - public void onClick(View v) { - switch (v.getId()) { - case R.id.caseClassLayout: - 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(); - - caseTypeView.setText(tag); - //获取案卷大类 - caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); - } - }).build().show(); - break; - case R.id.caseLargeClassLayout: - if (largeClassBeans != null) { - if (largeClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷大类"); - for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { - sheetBuilder.addItem(dataBean.getTypeName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseLargeTypeView.setText(tag); - //获取案卷小类 - CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); - String typeId = dataBean.getId(); - caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); - } - }).build().show(); - } - } - break; - case R.id.caseSmallClassLayout: - if (smallClassBeans != null) { - if (smallClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷小类"); - for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { - sheetBuilder.addItem(dataBean.getTypeDetailName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseSmallTypeView.setText(tag); - } - }).build().show(); - } - } - break; - case R.id.caseHandleResultLayout: - caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); - break; - case R.id.addImageView: - new QMUIDialog.MenuDialogBuilder(this) - .addItem("相册中选取", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //选图 - selectPicture(); - } - }) - .addItem("相机拍照", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //拍照 - takePicture(); - } - }) - .create().show(); - break; - case R.id.submitButton: - submitCase();//案卷提交 - break; - default: - break; - } - } - - private void submitCase() { - String handleResult = caseHandleResultView.getText().toString(); - if (handleResult.equals("请选择")) { - ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); - return; - } - if (handleResult.equals("处理完成")) { - //选择处理完成时,处理图片必传。至少一张,最多两张 - if (mediaList.size() < 1 || mediaList.size() > 2) { - ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); - return; - } - } - if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { - caseReason = caseReasonView.getText().toString(); - if (TextUtils.isEmpty(caseReason)) { - ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); - return; - } - } - caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), - changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); - } - - private void selectPicture() { - PictureSelector.create(this) - .openGallery(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(2) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.CHOOSE_REQUEST); - } - - private void takePicture() { - PictureSelector.create(this) - .openCamera(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(1) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.REQUEST_CAMERA); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if (resultCode == RESULT_OK) { - switch (requestCode) { - case PictureConfig.CHOOSE_REQUEST: - List selectList = PictureSelector.obtainMultipleResult(data); - for (LocalMedia media : selectList) { - String mediaCompressPath = media.getCompressPath(); - uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); - } - break; - case PictureConfig.REQUEST_CAMERA: - LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); - uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); - break; - default: - break; - } - } - } - - @Override - public void showProgress() { - submitDialog.show(); - } - - @Override - public void hideProgress() { - submitDialog.hide(); - } - - @Override - public void obtainUploadAudioResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainUploadImageResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - PictureFileUtils.deleteAllCacheDirFile(this); - /** - * 系统路径static拼接图片返回路径 - * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg - */ - //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String url = resultBean.getData(); - mediaList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(realPaths); - caseHandleRecyclerView.setVisibility(View.VISIBLE); - caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); - caseHandleRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(realPaths.get(position)); - } - }); - //删除按钮点击事件 - imageAdapter.setDeleteView(true); - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); - } - } - }); - } - } - - @Override - public void obtainUploadVideoResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainCaseHandleResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); - finish(); - } else { - ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); - } - } - - @Override - protected void onDestroy() { - super.onDestroy(); - if (caseDetailPresenter != null) { - caseDetailPresenter.disposeRetrofitRequest(); - } - if (caseLargeClassPresenter != null) { - caseLargeClassPresenter.disposeRetrofitRequest(); - } - if (caseSmallClassPresenter != null) { - caseSmallClassPresenter.disposeRetrofitRequest(); - } - if (caseNextNodePresenter != null) { - caseNextNodePresenter.disposeRetrofitRequest(); - } - if (uploadImagePresenter != null) { - uploadImagePresenter.disposeRetrofitRequest(); - } - if (caseHandlePresenter != null) { - caseHandlePresenter.disposeRetrofitRequest(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java new file mode 100644 index 0000000..5ea5403 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -0,0 +1,145 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { + + @BindView(R.id.detailTopLayout) + QMUITopBarLayout detailTopLayout; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @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; + + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private CaseDetailPresenterImpl caseDetailPresenter; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handled_detail; + } + + @Override + protected void setupTopBarLayout() { + detailTopLayout.setTitle("已办案卷").setTextColor(ContextCompat.getColor(this, R.color.white)); + detailTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + detailTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + String id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + } + + @Override + public void initEvent() { + + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseHandleStatusView.setText(data.getCaseStateName()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @OnClick(R.id.handleLayout) + @Override + public void onClick(View v) { + if (v.getId() == R.id.handleLayout) { + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java new file mode 100644 index 0000000..3b2d3d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -0,0 +1,228 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.TextView; + +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.presenter.CaseCommonSentencePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseUpdateSupervisePresenterImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseOverTimeView) + TextView caseOverTimeView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @BindView(R.id.casePlaceView) + EditText casePlaceView; + @BindView(R.id.caseDescriptionView) + TextView caseDescriptionView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseHandleResultView) + EditText caseHandleResultView; + @BindView(R.id.caseCommonSentenceView) + TextView caseCommonSentenceView; + + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseCommonSentencePresenterImpl commonSentencePresenter; + private CaseUpdateSupervisePresenterImpl updateSupervisePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_todo_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + commonSentencePresenter = new CaseCommonSentencePresenterImpl(this); + updateSupervisePresenter = new CaseUpdateSupervisePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @Override + public void initEvent() { + + } + + @OnClick({R.id.caseHandleLayout, R.id.caseCommonSentenceLayout, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseHandleLayout: + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + break; + case R.id.caseCommonSentenceLayout: + commonSentencePresenter.onReadyRetrofitRequest(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String remarks = caseHandleResultView.getText().toString(); + if (TextUtils.isEmpty(remarks)) { + ToastHelper.showToast("督办意见不能为空", ToastHelper.WARING); + return; + } + updateSupervisePresenter.onReadyRetrofitRequest(id, remarks); + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseOverTimeView.setText(data.getNodeLimittime()); + caseHandleStatusView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + casePlaceView.setText(data.getFieldintro()); + caseDescriptionView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainCommonSentenceData(CommonSentenceBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("常用语句"); + for (CommonSentenceBean.DataBean dataBean : dataBeans) { + 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(); + + CommonSentenceBean.DataBean dataBean = dataBeans.get(position); + caseCommonSentenceView.setText(dataBean.getName()); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUpdateSuperviseData(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷督办提交成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷督办提交失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (commonSentencePresenter != null) { + commonSentencePresenter.disposeRetrofitRequest(); + } + if (updateSupervisePresenter != null) { + updateSupervisePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 3060e1b..af6a9fe 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -191,7 +191,7 @@ caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); - caseHandleView.setText(data.getUrgeRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); caseSituationView.setText(data.getDescription()); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index 7816221..3989633 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -28,6 +28,7 @@ import com.casic.dcms.ui.OvertimeCaseActivity; import com.casic.dcms.ui.PersonOnlineActivity; import com.casic.dcms.ui.UrgentCaseActivity; +import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.StringHelper; import com.qmuiteam.qmui.widget.QMUIRadiusImageView; @@ -69,62 +70,12 @@ @Override protected void initEvent() { - HomeRecycleAdapter adapter = new HomeRecycleAdapter(context); - homeRecyclerView.setLayoutManager(new GridLayoutManager(context, 3)); - homeRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - Intent intent = new Intent(); - switch (position) { - case 0: - intent.setClass(context, CaseUploadActivity.class); - break; - case 1: - intent.setClass(context, CaseUploadQuicklyActivity.class); - break; - case 2: - intent.setClass(context, FivePackageUploadActivity.class); - break; - case 3: - intent.setClass(context, CaseVerifyActivity.class); - break; - case 4: - intent.setClass(context, CaseCheckActivity.class); - break; - case 5: - intent.setClass(context, CaseHandleActivity.class); - break; - case 6: - intent.setClass(context, UrgentCaseActivity.class); - break; - case 7: - intent.setClass(context, OvertimeCaseActivity.class); - break; - case 8: - intent.setClass(context, DataAnalysisActivity.class); - break; - case 9: - intent.setClass(context, PersonOnlineActivity.class); - break; - case 10: - intent.setClass(context, CaseSearchActivity.class); - break; - case 11: - intent.setClass(context, MapWatchViewActivity.class); - break; - default: - break; - } - startActivity(intent); - } - }); + } @SuppressLint("SetTextI18n") @Override public void obtainUserData(UserBean userBean) { -// Log.d(TAG, "obtainUserData: " + new Gson().toJson(userBean)); if (userBean.isSuccess()) { //QMUIRadiusImageView无法动态设置圆形头像,借助Glide实现圆形头像 Glide.with(this).load(R.mipmap.app_logo).apply(RequestOptions.circleCropTransform()).into(userIconView); @@ -137,6 +88,121 @@ StringHelper.saveUserPhone(data.getPhone()); StringHelper.saveUserDept(data.getDeptName()); StringHelper.saveUserDeptId(data.getDeptId()); + + //权限控制 + String roleTip = data.getRoleTips().get(0); + HomeRecycleAdapter adapter = new HomeRecycleAdapter(context); + homeRecyclerView.setLayoutManager(new GridLayoutManager(context, 3)); + switch (roleTip) { + case "supervisor": + //All + adapter.setItemData(Constant.ALL_ICONS, Constant.ALL_ITEMS); + adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { + @Override + public void onClick(int position) { + Intent intent = new Intent(); + switch (position) { + case 0: + intent.setClass(context, CaseUploadActivity.class); + break; + case 1: + intent.setClass(context, CaseUploadQuicklyActivity.class); + break; + case 2: + intent.setClass(context, FivePackageUploadActivity.class); + break; + case 3: + intent.setClass(context, CaseVerifyActivity.class); + break; + case 4: + intent.setClass(context, CaseCheckActivity.class); + break; + case 5: + intent.setClass(context, CaseHandleActivity.class); + break; + case 6: + intent.setClass(context, UrgentCaseActivity.class); + break; + case 7: + intent.setClass(context, OvertimeCaseActivity.class); + break; + case 8: + intent.setClass(context, DataAnalysisActivity.class); + break; + case 9: + intent.setClass(context, PersonOnlineActivity.class); + break; + case 10: + intent.setClass(context, CaseSearchActivity.class); + break; + case 11: + intent.setClass(context, MapWatchViewActivity.class); + break; + default: + break; + } + startActivity(intent); + } + }); + break; +// case "process": +// //案卷处理、案卷查询 +// adapter.setItemData(Constant.PROCESS_ICONS, Constant.PROCESS_ITEMS); +// adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { +// @Override +// public void onClick(int position) { +// Intent intent = new Intent(); +// switch (position) { +// case 0: +// intent.setClass(context, CaseHandleActivity.class); +// break; +// case 1: +// intent.setClass(context, CaseSearchActivity.class); +// break; +// default: +// break; +// } +// startActivity(intent); +// } +// }); +// break; +// case "leader": +// //案卷上报、紧急要件、超时督办、统计分析、在岗人员、案卷查询 +// adapter.setItemData(Constant.LEADER_ICONS, Constant.LEADER_ITEMS); +// adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { +// @Override +// public void onClick(int position) { +// Intent intent = new Intent(); +// switch (position) { +// case 0: +// intent.setClass(context, CaseUploadActivity.class); +// break; +// case 1: +// intent.setClass(context, UrgentCaseActivity.class); +// break; +// case 2: +// intent.setClass(context, OvertimeCaseActivity.class); +// break; +// case 3: +// intent.setClass(context, DataAnalysisActivity.class); +// break; +// case 4: +// intent.setClass(context, PersonOnlineActivity.class); +// break; +// case 5: +// intent.setClass(context, CaseSearchActivity.class); +// break; +// default: +// break; +// } +// startActivity(intent); +// } +// }); +// break; + default: + break; + } + homeRecyclerView.setAdapter(adapter); } } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java index 430f8be..fa2df7a 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandledBean; import com.casic.dcms.mvp.presenter.CaseHandledListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandledListView; +import com.casic.dcms.ui.CaseHandledDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -128,10 +130,9 @@ adapter.setOnItemClickListener(new CaseHandledAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandledDetailActivity.class); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java index 502c288..05306fe 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -130,10 +132,10 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "待办案卷"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java index 25877de..743a092 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java @@ -17,7 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; -import com.casic.dcms.ui.CaseHandleOvertimeDetailActivity; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -133,7 +133,8 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { - Intent intent = new Intent(context, CaseHandleOvertimeDetailActivity.class); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "超时案卷"); intent.putExtra("id", dataBeans.get(position).getId()); startActivity(intent); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java index f957e26..ae0b3e5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -131,10 +133,10 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "紧急案卷"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java index 18178eb..5d51969 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.OvertimeCaseBean; import com.casic.dcms.mvp.presenter.OvertimeCaseListPresenterImpl; import com.casic.dcms.mvp.view.IOvertimeCaseListView; +import com.casic.dcms.ui.CaseTodoDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -128,10 +130,10 @@ adapter.setOnItemClickListener(new OvertimeCaseAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseTodoDetailActivity.class); + intent.putExtra("title", "超时督办"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java index 19c6766..51bdbd0 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.mvp.presenter.UrgentCaseListPresenterImpl; import com.casic.dcms.mvp.view.IUrgentCaseListView; +import com.casic.dcms.ui.CaseTodoDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -129,10 +131,10 @@ adapter.setOnItemClickListener(new UrgentCaseAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseTodoDetailActivity.class); + intent.putExtra("title", "紧急要件"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } 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 233b5d1..2e68d04 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -9,18 +9,38 @@ import java.util.List; public class Constant { - public static final List ICONS = Arrays.asList( + public static final String[] USER_PERMISSIONS = { + Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION, + Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO, + Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE, + Manifest.permission.CALL_PHONE}; + + public static final List ALL_ICONS = Arrays.asList( R.mipmap.ajsb, R.mipmap.kssb, R.mipmap.sbsb, R.mipmap.ajhs, R.mipmap.ajhc, R.mipmap.ajcl, R.mipmap.jjyj, R.mipmap.csdb, R.mipmap.tjfx, R.mipmap.zgry, R.mipmap.ajcx, R.mipmap.dtck); - public static final List ITEMS = Arrays.asList( + public static final List ALL_ITEMS = Arrays.asList( "案卷上报", "快速上报", "五包上报", "案卷核实", "案卷核查", "案卷处理", "紧急要件", "超时督办", "统计分析", "在岗人员", "案卷查询", "地图查看"); + public static final List PROCESS_ICONS = Arrays.asList( + R.mipmap.ajcl, R.mipmap.ajcx); + + public static final List PROCESS_ITEMS = Arrays.asList( + "案卷处理", "案卷查询"); + + public static final List LEADER_ICONS = Arrays.asList( + R.mipmap.ajsb, R.mipmap.jjyj, R.mipmap.csdb, + R.mipmap.tjfx, R.mipmap.zgry, R.mipmap.ajcx); + + public static final List LEADER_ITEMS = Arrays.asList( + "案卷上报", "紧急要件", "超时督办", + "统计分析", "在岗人员", "案卷查询"); + public static final List ANALYSIS_ICONS = Arrays.asList( R.mipmap.sbsb, R.mipmap.jjyj, R.mipmap.csdb, R.mipmap.ajcl, R.mipmap.tjfx, R.mipmap.ajhc); @@ -29,17 +49,6 @@ "问题来源", "案卷状态", "高发问题", "街道统计", "处理统计", "趋势分析"); - public static final List CATEGORY = Arrays.asList("请选择", "情况属实", "情况不属实"); - - public static final String[] USER_PERMISSIONS = { - Manifest.permission.ACCESS_COARSE_LOCATION, - Manifest.permission.ACCESS_FINE_LOCATION, - Manifest.permission.CAMERA, - Manifest.permission.READ_EXTERNAL_STORAGE, - Manifest.permission.WRITE_EXTERNAL_STORAGE, - Manifest.permission.RECORD_AUDIO, - Manifest.permission.CALL_PHONE}; - //先预置8种颜色 public static final int[] PIE_COLORS = {Color.rgb(28, 197, 220), Color.rgb(255, 223, 107), Color.rgb(242, 17, 112), diff --git a/app/src/main/java/com/casic/dcms/utils/StringHelper.java b/app/src/main/java/com/casic/dcms/utils/StringHelper.java index 1201063..5aeb8f6 100644 --- a/app/src/main/java/com/casic/dcms/utils/StringHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/StringHelper.java @@ -60,7 +60,9 @@ return ""; } String data = url.replace("\\", "/"); - return SaveKeyValues.getValue(Constant.IP_KEY, "http://111.198.10.15:11409") + "/static/" + data; + String imagePath = SaveKeyValues.getValue(Constant.IP_KEY, "http://111.198.10.15:11409") + "/static/" + data; + Log.d(TAG, "appendCompleteURL: "+imagePath); + return imagePath; } public static String reformatURL(List urls) { 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 ec230dd..16bafa1 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 @@ -14,6 +14,7 @@ import com.casic.dcms.bean.CaseStatusBean; import com.casic.dcms.bean.CaseVerifiedBean; import com.casic.dcms.bean.CaseVerifyBean; +import com.casic.dcms.bean.CommonSentenceBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; import com.casic.dcms.bean.LoginResultBean; @@ -345,6 +346,12 @@ @Query("caseState") String caseState); /** + * 获取常见语句 + */ + @GET("/dict/code/commonApproval") + Observable obtainCommonSentence(@Header("token") String token); + + /** * 案卷处理 *

* 案卷核实-仅添加核实意见/核实情况/核实图片 @@ -401,4 +408,12 @@ @Field("communityCode") String communityCode, @Field("gridId") String gridId, @Field("fieldintro") String fieldintro); + + /** + * 紧急要件-超时督办 + */ + @GET("/casedetail/updateSuperviseRemarks") + Observable updateSuperviseRemarks(@Header("token") String token, + @Query("id") String id, + @Query("superviseRemarks") String superviseRemarks); } 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 0c77b61..226b287 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 @@ -16,6 +16,7 @@ import com.casic.dcms.bean.CaseStatusBean; import com.casic.dcms.bean.CaseVerifiedBean; import com.casic.dcms.bean.CaseVerifyBean; +import com.casic.dcms.bean.CommonSentenceBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; import com.casic.dcms.bean.LoginResultBean; @@ -397,6 +398,15 @@ } /** + * 获取常见语句 + */ + public static Observable getCommonSentenceResult() { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainCommonSentence(TokenHelper.getToken()); + } + + /** * 案卷处理 *

* 案卷核实-仅添加核实意见/核实情况/核实图片 @@ -445,4 +455,13 @@ remarks, fileId, eorc, casetypeCode, casetypeDetailCode, lng, lat, caseLevel, areaCode, streetCode, communityCode, gridId, fieldintro); } + + /** + * 紧急要件-超时督办 + */ + public static Observable getUpdateSuperviseResult(String id, String superviseRemarks) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.updateSuperviseRemarks(TokenHelper.getToken(), id, superviseRemarks); + } } diff --git a/app/src/main/res/drawable/ic_load_error.xml b/app/src/main/res/drawable/ic_load_error.xml new file mode 100644 index 0000000..5ad71a1 --- /dev/null +++ b/app/src/main/res/drawable/ic_load_error.xml @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/activity_big_pic.xml b/app/src/main/res/layout/activity_big_pic.xml index 551ed62..bc09ace 100644 --- a/app/src/main/res/layout/activity_big_pic.xml +++ b/app/src/main/res/layout/activity_big_pic.xml @@ -1,16 +1,17 @@ - - + android:layout_height="wrap_content" + android:fitsSystemWindows="true" /> + - \ No newline at end of file + android:layout_height="wrap_content" /> + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_case_check_detail.xml b/app/src/main/res/layout/activity_case_check_detail.xml index 607d1eb..58bc5d4 100644 --- a/app/src/main/res/layout/activity_case_check_detail.xml +++ b/app/src/main/res/layout/activity_case_check_detail.xml @@ -16,28 +16,6 @@ android:layout_height="wrap_content" android:orientation="vertical"> - - - - - - - - - diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml new file mode 100644 index 0000000..44f84e7 --- /dev/null +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_case_handle_overtime.xml b/app/src/main/res/layout/activity_case_handle_overtime.xml deleted file mode 100644 index 44f84e7..0000000 --- a/app/src/main/res/layout/activity_case_handle_overtime.xml +++ /dev/null @@ -1,213 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_case_handled_detail.xml b/app/src/main/res/layout/activity_case_handled_detail.xml new file mode 100644 index 0000000..fdeb450 --- /dev/null +++ b/app/src/main/res/layout/activity_case_handled_detail.xml @@ -0,0 +1,245 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_case_todo_detail.xml b/app/src/main/res/layout/activity_case_todo_detail.xml new file mode 100644 index 0000000..8ff5257 --- /dev/null +++ b/app/src/main/res/layout/activity_case_todo_detail.xml @@ -0,0 +1,242 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_case_verify_detail.xml b/app/src/main/res/layout/activity_case_verify_detail.xml index 2317483..a5d1810 100644 --- a/app/src/main/res/layout/activity_case_verify_detail.xml +++ b/app/src/main/res/layout/activity_case_verify_detail.xml @@ -17,29 +17,7 @@ android:layout_height="wrap_content" android:orientation="vertical"> - - - - - - - - - - + diff --git a/app/src/main/res/layout/include_case_base_layout.xml b/app/src/main/res/layout/include_case_base_layout.xml index e6090fa..9e0fcd1 100644 --- a/app/src/main/res/layout/include_case_base_layout.xml +++ b/app/src/main/res/layout/include_case_base_layout.xml @@ -4,6 +4,28 @@ android:layout_height="match_parent" android:orientation="vertical"> + + + + + + + + + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f6ac20a..2070c95 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -67,12 +67,14 @@ - + - + + + { private Context context; + private List iconData = new ArrayList<>(); + private List itemData = new ArrayList<>(); public HomeRecycleAdapter(Context context) { this.context = context; } + public void setItemData(@Nullable List icons, @Nullable List items) { + this.iconData = icons; + this.itemData = items; + } + @NonNull @Override public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { @@ -30,7 +40,7 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - holder.bindView(context, position); + holder.bindView(position); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @Override @@ -43,7 +53,7 @@ @Override public int getItemCount() { - return Constant.ITEMS.size(); + return itemData.size(); } private OnGridItemClickListener clickListener; @@ -56,7 +66,7 @@ this.clickListener = onGridItemClickListener; } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { private ImageView imageView; private TextView textView; @@ -67,9 +77,9 @@ textView = itemView.findViewById(R.id.textView); } - void bindView(Context context, int position) { - imageView.setBackgroundResource(Constant.ICONS.get(position)); - textView.setText(Constant.ITEMS.get(position)); + void bindView(int position) { + imageView.setBackgroundResource(iconData.get(position)); + textView.setText(itemData.get(position)); } } } diff --git a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java index b9c4615..d9b10e0 100644 --- a/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/ImageRecycleViewAdapter.java @@ -11,6 +11,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; import java.util.ArrayList; @@ -62,7 +63,10 @@ @Override public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { - Glide.with(context).load(mediaList.get(position)).into(holder.imageView); + Glide.with(context) + .load(mediaList.get(position)) + .apply(new RequestOptions().error(R.drawable.ic_load_error)) + .into(holder.imageView); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/com/casic/dcms/base/BaseActivity.java b/app/src/main/java/com/casic/dcms/base/BaseActivity.java index caf0356..2ca87fe 100644 --- a/app/src/main/java/com/casic/dcms/base/BaseActivity.java +++ b/app/src/main/java/com/casic/dcms/base/BaseActivity.java @@ -17,8 +17,8 @@ setContentView(initLayoutView()); ButterKnife.bind(this); QMUIStatusBarHelper.translucent(this);//沉浸式状态栏 - setupTopBarLayout(); initData(); + setupTopBarLayout(); initEvent(); } diff --git a/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java new file mode 100644 index 0000000..8de58a4 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CommonSentenceBean.java @@ -0,0 +1,78 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CommonSentenceBean { + private int code; + private String message; + private boolean success; + private List data; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 请及时处理 + * id : 156 + * value : 请及时处理 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java new file mode 100644 index 0000000..5258d89 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseCommonSentenceModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CommonSentenceBean; +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 CaseCommonSentenceModelImpl implements ICaseCommonSentenceModel { + + private OnGetCommonSentenceListener sentenceListener; + + public CaseCommonSentenceModelImpl(OnGetCommonSentenceListener commonSentenceListener) { + this.sentenceListener = commonSentenceListener; + } + + public interface OnGetCommonSentenceListener { + void onSuccess(CommonSentenceBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCommonSentenceResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (sentenceListener != null) { + sentenceListener.onFailure(e); + } + } + + @Override + public void onNext(CommonSentenceBean resultBean) { + if (resultBean != null) { + sentenceListener.onSuccess(resultBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java new file mode 100644 index 0000000..a8cb3fc --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseUpdateSuperviseModelImpl.java @@ -0,0 +1,53 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseUpdateSuperviseModelImpl implements ICaseUpdateSuperviseModel { + + private OnUpdateSuperviseListener listener; + + public CaseUpdateSuperviseModelImpl(OnUpdateSuperviseListener updateSuperviseListener) { + this.listener = updateSuperviseListener; + } + + /** + * 数据回调接口 + */ + public interface OnUpdateSuperviseListener { + void onSuccess(ActionResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String id, String superviseRemarks) { + Observable observable = RetrofitServiceManager.getUpdateSuperviseResult(id, superviseRemarks); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(ActionResultBean resultBean) { + if (resultBean != null) { + listener.onSuccess(resultBean); + } + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java new file mode 100644 index 0000000..263ef6c --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseCommonSentenceModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseCommonSentenceModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java new file mode 100644 index 0000000..518d602 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseUpdateSuperviseModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseUpdateSuperviseModel { + Subscription sendRetrofitRequest(String id, String superviseRemarks); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java new file mode 100644 index 0000000..6b65f13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseCommonSentencePresenterImpl.java @@ -0,0 +1,38 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseCommonSentenceModelImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; + +public class CaseCommonSentencePresenterImpl extends BasePresenter implements ICaseCommonSentencePresenter, + CaseCommonSentenceModelImpl.OnGetCommonSentenceListener { + + private ICaseCommonSentenceView view; + private CaseCommonSentenceModelImpl actionModel; + + public CaseCommonSentencePresenterImpl(ICaseCommonSentenceView commonSentenceView) { + this.view = commonSentenceView; + actionModel = new CaseCommonSentenceModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CommonSentenceBean resultBean) { + view.obtainCommonSentenceData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java new file mode 100644 index 0000000..66e1f44 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseUpdateSupervisePresenterImpl.java @@ -0,0 +1,40 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseUpdateSuperviseModelImpl; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; + +public class CaseUpdateSupervisePresenterImpl extends BasePresenter implements ICaseUpdateSupervisePresenter, + CaseUpdateSuperviseModelImpl.OnUpdateSuperviseListener { + + private ICaseUpdateSuperviseView view; + private CaseUpdateSuperviseModelImpl actionModel; + + public CaseUpdateSupervisePresenterImpl(ICaseUpdateSuperviseView updateSuperviseView) { + this.view = updateSuperviseView; + actionModel = new CaseUpdateSuperviseModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String id, String superviseRemarks) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(id, superviseRemarks)); + } + + @Override + public void onSuccess(ActionResultBean resultBean) { + view.hideProgress(); + view.obtainUpdateSuperviseData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java new file mode 100644 index 0000000..1f8bd09 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseCommonSentencePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseCommonSentencePresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java new file mode 100644 index 0000000..f61f9b2 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseUpdateSupervisePresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseUpdateSupervisePresenter { + void onReadyRetrofitRequest(String id, String superviseRemarks); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java new file mode 100644 index 0000000..9c7b08b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseCommonSentenceView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CommonSentenceBean; + +public interface ICaseCommonSentenceView { + void obtainCommonSentenceData(CommonSentenceBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java new file mode 100644 index 0000000..10bcf5a --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseUpdateSuperviseView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.ActionResultBean; + +public interface ICaseUpdateSuperviseView { + void showProgress(); + + void hideProgress(); + + void obtainUpdateSuperviseData(ActionResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java index ad70b7a..9143db8 100644 --- a/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/BigPictureActivity.java @@ -1,10 +1,14 @@ package com.casic.dcms.ui; +import android.view.View; + +import androidx.core.content.ContextCompat; + import com.bumptech.glide.Glide; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.luck.picture.lib.photoview.PhotoView; -import com.qmuiteam.qmui.util.QMUIStatusBarHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; import butterknife.BindView; @@ -15,6 +19,8 @@ **/ public class BigPictureActivity extends BaseActivity { + @BindView(R.id.imageTopLayout) + QMUITopBarLayout imageTopLayout; @BindView(R.id.photoView) PhotoView photoView; @@ -25,37 +31,24 @@ @Override protected void setupTopBarLayout() { - QMUIStatusBarHelper.setStatusBarLightMode(this); + imageTopLayout.setTitle("查看大图").setTextColor(ContextCompat.getColor(this, R.color.white)); + imageTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + imageTopLayout.addLeftImageButton(R.drawable.ic_left_white, 0).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); } @Override public void initData() { -// String mediaJson = getIntent().getStringExtra("mediaJson"); -// -// List mediaList = new Gson().fromJson(mediaJson, new TypeToken>() { -// }.getType()); -// -// list = new ArrayList<>(); -// assert mediaList != null; -// for (LocalMedia media : mediaList) { -// list.add(media.getRealPath()); -// } String path = getIntent().getStringExtra("path"); Glide.with(this).load(path).into(photoView); } @Override public void initEvent() { -// //轮播图 -// bigImageBanner.setImageLoader(new ImageLoader() { -// -// @Override -// public void displayImage(Context context, Object path, ImageView imageView) { -// Glide.with(context).load(path).into(imageView); -// } -// }); -// bigImageBanner.isAutoPlay(false); -// bigImageBanner.setImages(list); -// bigImageBanner.start(); + } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java index 01a3807..7548cfc 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseCheckDetailActivity.java @@ -329,7 +329,7 @@ caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java new file mode 100644 index 0000000..d4dba38 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandleDetailActivity.java @@ -0,0 +1,505 @@ +package com.casic.dcms.ui; + +import android.content.DialogInterface; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseNextNodeBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseHandleView; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseNextNodeView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.IUploadFileView; +import com.casic.dcms.utils.FileUtils; +import com.casic.dcms.utils.GlideLoadEngine; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.luck.picture.lib.PictureSelector; +import com.luck.picture.lib.config.PictureConfig; +import com.luck.picture.lib.config.PictureMimeType; +import com.luck.picture.lib.entity.LocalMedia; +import com.luck.picture.lib.tools.PictureFileUtils; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandleDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, + ICaseHandleView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @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) + EditText casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.caseHandleView) + TextView caseHandleView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseStartTimeView) + TextView caseStartTimeView; + @BindView(R.id.caseEndTimeView) + TextView caseEndTimeView; + @BindView(R.id.caseHandleResultView) + TextView caseHandleResultView; + @BindView(R.id.caseHandleRecyclerView) + RecyclerView caseHandleRecyclerView; + @BindView(R.id.addImageView) + ImageView addImageView; + @BindView(R.id.caseReasonView) + EditText caseReasonView; + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private String changeState; + private String caseReason; + private String approvalResult; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private List largeClassBeans = new ArrayList<>(); + private List smallClassBeans = new ArrayList<>(); + private List realPaths = new ArrayList<>();//真实图片路径 + private List mediaList = new ArrayList<>();//上传到服务器的数据集 + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private CaseNextNodePresenterImpl caseNextNodePresenter; + private UploadImagePresenterImpl uploadImagePresenter; + private CaseHandlePresenterImpl caseHandlePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handle_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseNextNodePresenter = new CaseNextNodePresenterImpl(this); + uploadImagePresenter = new UploadImagePresenterImpl(this); + caseHandlePresenter = new CaseHandlePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @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()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + caseStartTimeView.setText(data.getCreateTime()); + caseEndTimeView.setText(data.getNodeLimittime()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeTypeView.setText("无小类"); + } else { + caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 + } + caseSmallTypeView.setText("请选择"); + } + } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallTypeView.setText("无小类"); + } else { + caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 + } + } + } + + @Override + public void obtainNextNodeData(CaseNextNodeBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处理结果"); + for (CaseNextNodeBean.DataBean dataBean : dataBeans) { + 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(); + + CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); + caseHandleResultView.setText(dataBean.getNextOperation()); + changeState = String.valueOf(dataBean.getNextState()); + approvalResult = dataBean.getApprovalResult(); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseClassLayout: + 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(); + + caseTypeView.setText(tag); + //获取案卷大类 + caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseLargeTypeView.setText(tag); + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseSmallTypeView.setText(tag); + } + }).build().show(); + } + } + break; + case R.id.caseHandleResultLayout: + caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); + break; + case R.id.addImageView: + new QMUIDialog.MenuDialogBuilder(this) + .addItem("相册中选取", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //选图 + selectPicture(); + } + }) + .addItem("相机拍照", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + //拍照 + takePicture(); + } + }) + .create().show(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String handleResult = caseHandleResultView.getText().toString(); + if (handleResult.equals("请选择")) { + ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); + return; + } + if (handleResult.equals("处理完成")) { + //选择处理完成时,处理图片必传。至少一张,最多两张 + if (mediaList.size() < 1 || mediaList.size() > 2) { + ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); + return; + } + } + if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { + caseReason = caseReasonView.getText().toString(); + if (TextUtils.isEmpty(caseReason)) { + ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); + return; + } + } + caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), + changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); + } + + private void selectPicture() { + PictureSelector.create(this) + .openGallery(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(2) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.CHOOSE_REQUEST); + } + + private void takePicture() { + PictureSelector.create(this) + .openCamera(PictureMimeType.ofImage()) + .imageEngine(GlideLoadEngine.createGlideEngine()) + .maxSelectNum(1) + .isCompress(true) + .compressQuality(80) + .compressSavePath(FileUtils.getImageCompressPath()) + .forResult(PictureConfig.REQUEST_CAMERA); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (resultCode == RESULT_OK) { + switch (requestCode) { + case PictureConfig.CHOOSE_REQUEST: + List selectList = PictureSelector.obtainMultipleResult(data); + for (LocalMedia media : selectList) { + String mediaCompressPath = media.getCompressPath(); + uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); + } + break; + case PictureConfig.REQUEST_CAMERA: + LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); + uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); + break; + default: + break; + } + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUploadAudioResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainUploadImageResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + PictureFileUtils.deleteAllCacheDirFile(this); + /** + * 系统路径static拼接图片返回路径 + * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg + */ + //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg + String url = resultBean.getData(); + mediaList.add(url); + realPaths.add(StringHelper.appendCompleteURL(url)); + if (realPaths.size() == 2) { + addImageView.setVisibility(View.GONE); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(realPaths); + caseHandleRecyclerView.setVisibility(View.VISIBLE); + caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); + caseHandleRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(realPaths.get(position)); + } + }); + //删除按钮点击事件 + imageAdapter.setDeleteView(true); + imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { + @Override + public void onClick(int position) { + realPaths.remove(position); + imageAdapter.setMediaList(realPaths); + if (realPaths.size() != 2) { + addImageView.setVisibility(View.VISIBLE); + } + } + }); + } + } + + @Override + public void obtainUploadVideoResult(ActionResultBean resultBean) { + + } + + @Override + public void obtainCaseHandleResult(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseNextNodePresenter != null) { + caseNextNodePresenter.disposeRetrofitRequest(); + } + if (uploadImagePresenter != null) { + uploadImagePresenter.disposeRetrofitRequest(); + } + if (caseHandlePresenter != null) { + caseHandlePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java deleted file mode 100644 index bd187c5..0000000 --- a/app/src/main/java/com/casic/dcms/ui/CaseHandleOvertimeDetailActivity.java +++ /dev/null @@ -1,500 +0,0 @@ -package com.casic.dcms.ui; - -import android.content.DialogInterface; -import android.content.Intent; -import android.text.TextUtils; -import android.view.View; -import android.widget.EditText; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.Nullable; -import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.adapter.ImageRecycleViewAdapter; -import com.casic.dcms.base.BaseCaseActivity; -import com.casic.dcms.bean.ActionResultBean; -import com.casic.dcms.bean.CaseDetailBean; -import com.casic.dcms.bean.CaseLargeClassBean; -import com.casic.dcms.bean.CaseNextNodeBean; -import com.casic.dcms.bean.CaseSmallClassBean; -import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseHandlePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; -import com.casic.dcms.mvp.presenter.CaseNextNodePresenterImpl; -import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; -import com.casic.dcms.mvp.presenter.UploadImagePresenterImpl; -import com.casic.dcms.mvp.view.ICaseDetailView; -import com.casic.dcms.mvp.view.ICaseHandleView; -import com.casic.dcms.mvp.view.ICaseLargeClassView; -import com.casic.dcms.mvp.view.ICaseNextNodeView; -import com.casic.dcms.mvp.view.ICaseSmallClassView; -import com.casic.dcms.mvp.view.IUploadFileView; -import com.casic.dcms.utils.FileUtils; -import com.casic.dcms.utils.GlideLoadEngine; -import com.casic.dcms.utils.ItemDecorationSpace; -import com.casic.dcms.utils.StringHelper; -import com.casic.dcms.utils.ToastHelper; -import com.luck.picture.lib.PictureSelector; -import com.luck.picture.lib.config.PictureConfig; -import com.luck.picture.lib.config.PictureMimeType; -import com.luck.picture.lib.entity.LocalMedia; -import com.luck.picture.lib.tools.PictureFileUtils; -import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; -import com.qmuiteam.qmui.widget.dialog.QMUIDialog; -import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; -import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; - -import butterknife.BindView; -import butterknife.OnClick; - -public class CaseHandleOvertimeDetailActivity extends BaseCaseActivity implements View.OnClickListener, - ICaseDetailView, ICaseLargeClassView, ICaseSmallClassView, ICaseNextNodeView, IUploadFileView, - ICaseHandleView { - - @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) - EditText casePlaceView; - @BindView(R.id.caseSituationView) - TextView caseSituationView; - @BindView(R.id.caseHandleView) - TextView caseHandleView; - @BindView(R.id.casePicRecyclerView) - RecyclerView casePicRecyclerView; - @BindView(R.id.caseStartTimeView) - TextView caseStartTimeView; - @BindView(R.id.caseEndTimeView) - TextView caseEndTimeView; - @BindView(R.id.caseHandleResultView) - TextView caseHandleResultView; - @BindView(R.id.caseHandleRecyclerView) - RecyclerView caseHandleRecyclerView; - @BindView(R.id.addImageView) - ImageView addImageView; - @BindView(R.id.caseReasonView) - EditText caseReasonView; - @BindView(R.id.submitButton) - QMUIRoundButton submitButton; - - private String id; - private String changeState; - private String caseReason; - private String approvalResult; - private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); - private List largeClassBeans = new ArrayList<>(); - private List smallClassBeans = new ArrayList<>(); - private List realPaths = new ArrayList<>();//真实图片路径 - private List mediaList = new ArrayList<>();//上传到服务器的数据集 - - private CaseDetailPresenterImpl caseDetailPresenter; - private CaseLargeClassPresenterImpl caseLargeClassPresenter; - private CaseSmallClassPresenterImpl caseSmallClassPresenter; - private CaseNextNodePresenterImpl caseNextNodePresenter; - private UploadImagePresenterImpl uploadImagePresenter; - private CaseHandlePresenterImpl caseHandlePresenter; - - private QMUITipDialog submitDialog; - - @Override - public int initLayoutView() { - return R.layout.activity_case_handle_overtime; - } - - @Override - protected String setTitleName() { - return "超时案卷"; - } - - @Override - public void initData() { - id = getIntent().getStringExtra("id"); - caseDetailPresenter = new CaseDetailPresenterImpl(this); - caseDetailPresenter.onReadyRetrofitRequest(id); - - caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); - caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); - caseNextNodePresenter = new CaseNextNodePresenterImpl(this); - uploadImagePresenter = new UploadImagePresenterImpl(this); - caseHandlePresenter = new CaseHandlePresenterImpl(this); - - submitDialog = new QMUITipDialog.Builder(this) - .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) - .setTipWord("提交中,请稍后") - .create(); - } - - @Override - public void initEvent() { - submitButton.setChangeAlphaWhenPress(true); - } - - @Override - public void obtainCaseDetailData(CaseDetailBean resultBean) { - if (resultBean.isSuccess()) { - this.data = resultBean.getData().get(0); - caseTypeView.setText(data.getEorcName()); - caseLargeTypeView.setText(data.getCasetypeName()); - caseSmallTypeView.setText(data.getCasetypeDetailName()); - caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); - casePlaceView.setText(data.getFieldintro()); - caseSituationView.setText(data.getDescription()); - caseHandleView.setText(data.getProcessRemarks().equals("") ? "无处理意见" : data.getProcessRemarks()); - caseStartTimeView.setText(data.getCreateTime()); - caseEndTimeView.setText(data.getNodeLimittime()); - - String verifyImages = data.getFileIdVerify(); - if (!TextUtils.isEmpty(verifyImages)) { - List urls = new ArrayList<>(); - String[] split = verifyImages.split(","); - for (String s : split) { - urls.add(StringHelper.appendCompleteURL(s)); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(urls); - casePicRecyclerView.setVisibility(View.VISIBLE); - casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); - casePicRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(urls.get(position)); - } - }); - imageAdapter.setDeleteView(false); - } - } - } - - private void showBigImage(String path) { - Intent intent = new Intent(this, BigPictureActivity.class); - intent.putExtra("path", path); - startActivity(intent); - } - - @Override - public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { - if (largeClassBean.isSuccess()) { - //设置大类数据 - this.largeClassBeans = largeClassBean.getData(); - if (largeClassBeans.size() == 0) { - caseLargeTypeView.setText("无小类"); - } else { - caseLargeTypeView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 - } - caseSmallTypeView.setText("请选择"); - } - } - - @Override - public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { - if (smallClassBean.isSuccess()) { - //设置大类数据 - this.smallClassBeans = smallClassBean.getData(); - if (smallClassBeans.size() == 0) { - caseSmallTypeView.setText("无小类"); - } else { - caseSmallTypeView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 - } - } - } - - @Override - public void obtainNextNodeData(CaseNextNodeBean resultBean) { - if (resultBean.isSuccess()) { - List dataBeans = resultBean.getData(); - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("处理结果"); - for (CaseNextNodeBean.DataBean dataBean : dataBeans) { - 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(); - - CaseNextNodeBean.DataBean dataBean = dataBeans.get(position); - caseHandleResultView.setText(dataBean.getNextOperation()); - changeState = String.valueOf(dataBean.getNextState()); - approvalResult = dataBean.getApprovalResult(); - } - }).build().show(); - } else { - ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); - } - } - - @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseHandleResultLayout, R.id.addImageView, R.id.submitButton}) - @Override - public void onClick(View v) { - switch (v.getId()) { - case R.id.caseClassLayout: - 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(); - - caseTypeView.setText(tag); - //获取案卷大类 - caseLargeClassPresenter.onReadyRetrofitRequest(String.valueOf(position + 1)); - } - }).build().show(); - break; - case R.id.caseLargeClassLayout: - if (largeClassBeans != null) { - if (largeClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷大类"); - for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { - sheetBuilder.addItem(dataBean.getTypeName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseLargeTypeView.setText(tag); - //获取案卷小类 - CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); - String typeId = dataBean.getId(); - caseSmallClassPresenter.onReadyRetrofitRequest(dataBean.getEorc(), typeId); - } - }).build().show(); - } - } - break; - case R.id.caseSmallClassLayout: - if (smallClassBeans != null) { - if (smallClassBeans.size() > 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); - sheetBuilder.setTitle("案卷小类"); - for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { - sheetBuilder.addItem(dataBean.getTypeDetailName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - - caseSmallTypeView.setText(tag); - } - }).build().show(); - } - } - break; - case R.id.caseHandleResultLayout: - caseNextNodePresenter.onReadyRetrofitRequest(String.valueOf(data.getCaseState())); - break; - case R.id.addImageView: - new QMUIDialog.MenuDialogBuilder(this) - .addItem("相册中选取", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //选图 - selectPicture(); - } - }) - .addItem("相机拍照", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - //拍照 - takePicture(); - } - }) - .create().show(); - break; - case R.id.submitButton: - submitCase();//案卷提交 - break; - default: - break; - } - } - - private void submitCase() { - String handleResult = caseHandleResultView.getText().toString(); - if (handleResult.equals("请选择")) { - ToastHelper.showToast("还未选择处理结果", ToastHelper.WARING); - return; - } - if (handleResult.equals("处理完成")) { - //选择处理完成时,处理图片必传。至少一张,最多两张 - if (mediaList.size() < 1 || mediaList.size() > 2) { - ToastHelper.showToast("当前案卷状态必须上传至少一张图片", ToastHelper.WARING); - return; - } - } - if (handleResult.equals("申请延期") || handleResult.equals("申请调整")) { - caseReason = caseReasonView.getText().toString(); - if (TextUtils.isEmpty(caseReason)) { - ToastHelper.showToast("延期/调整的原因必须填写", ToastHelper.WARING); - return; - } - } - caseHandlePresenter.onReadyRetrofitRequest(data.getProcessId(), id, String.valueOf(data.getCaseState()), - changeState, caseReason, StringHelper.reformatURL(mediaList), approvalResult); - } - - private void selectPicture() { - PictureSelector.create(this) - .openGallery(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(2) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.CHOOSE_REQUEST); - } - - private void takePicture() { - PictureSelector.create(this) - .openCamera(PictureMimeType.ofImage()) - .imageEngine(GlideLoadEngine.createGlideEngine()) - .maxSelectNum(1) - .isCompress(true) - .compressQuality(80) - .compressSavePath(FileUtils.getImageCompressPath()) - .forResult(PictureConfig.REQUEST_CAMERA); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if (resultCode == RESULT_OK) { - switch (requestCode) { - case PictureConfig.CHOOSE_REQUEST: - List selectList = PictureSelector.obtainMultipleResult(data); - for (LocalMedia media : selectList) { - String mediaCompressPath = media.getCompressPath(); - uploadImagePresenter.onReadyRetrofitRequest(new File(mediaCompressPath)); - } - break; - case PictureConfig.REQUEST_CAMERA: - LocalMedia localMedia = PictureSelector.obtainMultipleResult(data).get(0); - uploadImagePresenter.onReadyRetrofitRequest(new File(localMedia.getCompressPath())); - break; - default: - break; - } - } - } - - @Override - public void showProgress() { - submitDialog.show(); - } - - @Override - public void hideProgress() { - submitDialog.hide(); - } - - @Override - public void obtainUploadAudioResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainUploadImageResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - PictureFileUtils.deleteAllCacheDirFile(this); - /** - * 系统路径static拼接图片返回路径 - * http://111.198.10.15:11409/static/2021-04/000bcf78345f4c1c86484efa3f9d68a2.jpeg - */ - //2021-04\\000bcf78345f4c1c86484efa3f9d68a2.jpeg - String url = resultBean.getData(); - mediaList.add(url); - realPaths.add(StringHelper.appendCompleteURL(url)); - if (realPaths.size() == 2) { - addImageView.setVisibility(View.GONE); - } - ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); - imageAdapter.setMediaList(realPaths); - caseHandleRecyclerView.setVisibility(View.VISIBLE); - caseHandleRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); - caseHandleRecyclerView.addItemDecoration(new ItemDecorationSpace()); - caseHandleRecyclerView.setAdapter(imageAdapter); - //九宫格点击事件 - imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - //查看大图 - showBigImage(realPaths.get(position)); - } - }); - //删除按钮点击事件 - imageAdapter.setDeleteView(true); - imageAdapter.setOnDeleteClickListener(new ImageRecycleViewAdapter.OnDeleteItemClickListener() { - @Override - public void onClick(int position) { - realPaths.remove(position); - imageAdapter.setMediaList(realPaths); - if (realPaths.size() != 2) { - addImageView.setVisibility(View.VISIBLE); - } - } - }); - } - } - - @Override - public void obtainUploadVideoResult(ActionResultBean resultBean) { - - } - - @Override - public void obtainCaseHandleResult(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - ToastHelper.showToast("案卷处理成功", ToastHelper.SUCCESS); - finish(); - } else { - ToastHelper.showToast("案卷处理失败,请检查", ToastHelper.ERROR); - } - } - - @Override - protected void onDestroy() { - super.onDestroy(); - if (caseDetailPresenter != null) { - caseDetailPresenter.disposeRetrofitRequest(); - } - if (caseLargeClassPresenter != null) { - caseLargeClassPresenter.disposeRetrofitRequest(); - } - if (caseSmallClassPresenter != null) { - caseSmallClassPresenter.disposeRetrofitRequest(); - } - if (caseNextNodePresenter != null) { - caseNextNodePresenter.disposeRetrofitRequest(); - } - if (uploadImagePresenter != null) { - uploadImagePresenter.disposeRetrofitRequest(); - } - if (caseHandlePresenter != null) { - caseHandlePresenter.disposeRetrofitRequest(); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java new file mode 100644 index 0000000..5ea5403 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseHandledDetailActivity.java @@ -0,0 +1,145 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseHandledDetailActivity extends BaseActivity implements View.OnClickListener, ICaseDetailView { + + @BindView(R.id.detailTopLayout) + QMUITopBarLayout detailTopLayout; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @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; + + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + private CaseDetailPresenterImpl caseDetailPresenter; + + @Override + public int initLayoutView() { + return R.layout.activity_case_handled_detail; + } + + @Override + protected void setupTopBarLayout() { + detailTopLayout.setTitle("已办案卷").setTextColor(ContextCompat.getColor(this, R.color.white)); + detailTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + detailTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + String id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + } + + @Override + public void initEvent() { + + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseHandleStatusView.setText(data.getCaseStateName()); + caseTypeView.setText(data.getEorcName()); + caseLargeTypeView.setText(data.getCasetypeName()); + caseSmallTypeView.setText(data.getCasetypeDetailName()); + caseCommunityView.setText(data.getCommunityName().equals("") ? "社区信息未知" : data.getCommunityName()); + casePlaceView.setText(data.getFieldintro()); + caseSituationView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @OnClick(R.id.handleLayout) + @Override + public void onClick(View v) { + if (v.getId() == R.id.handleLayout) { + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java new file mode 100644 index 0000000..3b2d3d3 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseTodoDetailActivity.java @@ -0,0 +1,228 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.EditText; +import android.widget.TextView; + +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.ImageRecycleViewAdapter; +import com.casic.dcms.base.BaseCaseActivity; +import com.casic.dcms.bean.ActionResultBean; +import com.casic.dcms.bean.CaseDetailBean; +import com.casic.dcms.bean.CommonSentenceBean; +import com.casic.dcms.mvp.presenter.CaseCommonSentencePresenterImpl; +import com.casic.dcms.mvp.presenter.CaseDetailPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseUpdateSupervisePresenterImpl; +import com.casic.dcms.mvp.view.ICaseCommonSentenceView; +import com.casic.dcms.mvp.view.ICaseDetailView; +import com.casic.dcms.mvp.view.ICaseUpdateSuperviseView; +import com.casic.dcms.utils.ItemDecorationSpace; +import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.ToastHelper; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseTodoDetailActivity extends BaseCaseActivity implements View.OnClickListener, + ICaseDetailView, ICaseCommonSentenceView, ICaseUpdateSuperviseView { + + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseOverTimeView) + TextView caseOverTimeView; + @BindView(R.id.caseHandleStatusView) + TextView caseHandleStatusView; + @BindView(R.id.casePlaceView) + EditText casePlaceView; + @BindView(R.id.caseDescriptionView) + TextView caseDescriptionView; + @BindView(R.id.casePicRecyclerView) + RecyclerView casePicRecyclerView; + @BindView(R.id.caseHandleResultView) + EditText caseHandleResultView; + @BindView(R.id.caseCommonSentenceView) + TextView caseCommonSentenceView; + + @BindView(R.id.submitButton) + QMUIRoundButton submitButton; + + private String title; + private String id; + private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); + + private CaseDetailPresenterImpl caseDetailPresenter; + private CaseCommonSentencePresenterImpl commonSentencePresenter; + private CaseUpdateSupervisePresenterImpl updateSupervisePresenter; + + private QMUITipDialog submitDialog; + + @Override + public int initLayoutView() { + return R.layout.activity_case_todo_detail; + } + + @Override + protected String setTitleName() { + return title; + } + + @Override + public void initData() { + title = getIntent().getStringExtra("title"); + id = getIntent().getStringExtra("id"); + caseDetailPresenter = new CaseDetailPresenterImpl(this); + caseDetailPresenter.onReadyRetrofitRequest(id); + + commonSentencePresenter = new CaseCommonSentencePresenterImpl(this); + updateSupervisePresenter = new CaseUpdateSupervisePresenterImpl(this); + + submitDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("提交中,请稍后") + .create(); + } + + @Override + public void initEvent() { + + } + + @OnClick({R.id.caseHandleLayout, R.id.caseCommonSentenceLayout, R.id.submitButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseHandleLayout: + Intent intent = new Intent(this, CaseProcessActivity.class); + intent.putExtra("processId", data.getProcessId()); + startActivity(intent); + break; + case R.id.caseCommonSentenceLayout: + commonSentencePresenter.onReadyRetrofitRequest(); + break; + case R.id.submitButton: + submitCase();//案卷提交 + break; + default: + break; + } + } + + private void submitCase() { + String remarks = caseHandleResultView.getText().toString(); + if (TextUtils.isEmpty(remarks)) { + ToastHelper.showToast("督办意见不能为空", ToastHelper.WARING); + return; + } + updateSupervisePresenter.onReadyRetrofitRequest(id, remarks); + } + + @Override + public void obtainCaseDetailData(CaseDetailBean resultBean) { + if (resultBean.isSuccess()) { + this.data = resultBean.getData().get(0); + caseNumberView.setText(data.getCaseid()); + caseOverTimeView.setText(data.getNodeLimittime()); + caseHandleStatusView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); + casePlaceView.setText(data.getFieldintro()); + caseDescriptionView.setText(data.getDescription()); + + String verifyImages = data.getFileIdVerify(); + if (!TextUtils.isEmpty(verifyImages)) { + List urls = new ArrayList<>(); + String[] split = verifyImages.split(","); + for (String s : split) { + urls.add(StringHelper.appendCompleteURL(s)); + } + ImageRecycleViewAdapter imageAdapter = new ImageRecycleViewAdapter(this); + imageAdapter.setMediaList(urls); + casePicRecyclerView.setVisibility(View.VISIBLE); + casePicRecyclerView.setLayoutManager(new GridLayoutManager(this, 2)); + casePicRecyclerView.addItemDecoration(new ItemDecorationSpace()); + casePicRecyclerView.setAdapter(imageAdapter); + //九宫格点击事件 + imageAdapter.setOnItemClickListener(new ImageRecycleViewAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + //查看大图 + showBigImage(urls.get(position)); + } + }); + imageAdapter.setDeleteView(false); + } + } + } + + private void showBigImage(String path) { + Intent intent = new Intent(this, BigPictureActivity.class); + intent.putExtra("path", path); + startActivity(intent); + } + + @Override + public void obtainCommonSentenceData(CommonSentenceBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("常用语句"); + for (CommonSentenceBean.DataBean dataBean : dataBeans) { + 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(); + + CommonSentenceBean.DataBean dataBean = dataBeans.get(position); + caseCommonSentenceView.setText(dataBean.getName()); + } + }).build().show(); + } else { + ToastHelper.showToast("该案卷无下级流转节点", ToastHelper.ERROR); + } + } + + @Override + public void showProgress() { + submitDialog.show(); + } + + @Override + public void hideProgress() { + submitDialog.hide(); + } + + @Override + public void obtainUpdateSuperviseData(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + ToastHelper.showToast("案卷督办提交成功", ToastHelper.SUCCESS); + finish(); + } else { + ToastHelper.showToast("案卷督办提交失败,请检查", ToastHelper.ERROR); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseDetailPresenter != null) { + caseDetailPresenter.disposeRetrofitRequest(); + } + if (commonSentencePresenter != null) { + commonSentencePresenter.disposeRetrofitRequest(); + } + if (updateSupervisePresenter != null) { + updateSupervisePresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java index 3060e1b..af6a9fe 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseVerifyDetailActivity.java @@ -191,7 +191,7 @@ caseSmallTypeView.setText(data.getCasetypeDetailName()); caseCommunityView.setText(data.getCommunityName()); casePlaceView.setText(data.getFieldintro()); - caseHandleView.setText(data.getUrgeRemarks()); + caseHandleView.setText(data.getCaseStateName().equals("") ? "无处理意见" : data.getCaseStateName()); caseStartTimeView.setText(data.getCreateTime()); caseEndTimeView.setText(data.getNodeLimittime()); caseSituationView.setText(data.getDescription()); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index 7816221..3989633 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -28,6 +28,7 @@ import com.casic.dcms.ui.OvertimeCaseActivity; import com.casic.dcms.ui.PersonOnlineActivity; import com.casic.dcms.ui.UrgentCaseActivity; +import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.StringHelper; import com.qmuiteam.qmui.widget.QMUIRadiusImageView; @@ -69,62 +70,12 @@ @Override protected void initEvent() { - HomeRecycleAdapter adapter = new HomeRecycleAdapter(context); - homeRecyclerView.setLayoutManager(new GridLayoutManager(context, 3)); - homeRecyclerView.setAdapter(adapter); - adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { - @Override - public void onClick(int position) { - Intent intent = new Intent(); - switch (position) { - case 0: - intent.setClass(context, CaseUploadActivity.class); - break; - case 1: - intent.setClass(context, CaseUploadQuicklyActivity.class); - break; - case 2: - intent.setClass(context, FivePackageUploadActivity.class); - break; - case 3: - intent.setClass(context, CaseVerifyActivity.class); - break; - case 4: - intent.setClass(context, CaseCheckActivity.class); - break; - case 5: - intent.setClass(context, CaseHandleActivity.class); - break; - case 6: - intent.setClass(context, UrgentCaseActivity.class); - break; - case 7: - intent.setClass(context, OvertimeCaseActivity.class); - break; - case 8: - intent.setClass(context, DataAnalysisActivity.class); - break; - case 9: - intent.setClass(context, PersonOnlineActivity.class); - break; - case 10: - intent.setClass(context, CaseSearchActivity.class); - break; - case 11: - intent.setClass(context, MapWatchViewActivity.class); - break; - default: - break; - } - startActivity(intent); - } - }); + } @SuppressLint("SetTextI18n") @Override public void obtainUserData(UserBean userBean) { -// Log.d(TAG, "obtainUserData: " + new Gson().toJson(userBean)); if (userBean.isSuccess()) { //QMUIRadiusImageView无法动态设置圆形头像,借助Glide实现圆形头像 Glide.with(this).load(R.mipmap.app_logo).apply(RequestOptions.circleCropTransform()).into(userIconView); @@ -137,6 +88,121 @@ StringHelper.saveUserPhone(data.getPhone()); StringHelper.saveUserDept(data.getDeptName()); StringHelper.saveUserDeptId(data.getDeptId()); + + //权限控制 + String roleTip = data.getRoleTips().get(0); + HomeRecycleAdapter adapter = new HomeRecycleAdapter(context); + homeRecyclerView.setLayoutManager(new GridLayoutManager(context, 3)); + switch (roleTip) { + case "supervisor": + //All + adapter.setItemData(Constant.ALL_ICONS, Constant.ALL_ITEMS); + adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { + @Override + public void onClick(int position) { + Intent intent = new Intent(); + switch (position) { + case 0: + intent.setClass(context, CaseUploadActivity.class); + break; + case 1: + intent.setClass(context, CaseUploadQuicklyActivity.class); + break; + case 2: + intent.setClass(context, FivePackageUploadActivity.class); + break; + case 3: + intent.setClass(context, CaseVerifyActivity.class); + break; + case 4: + intent.setClass(context, CaseCheckActivity.class); + break; + case 5: + intent.setClass(context, CaseHandleActivity.class); + break; + case 6: + intent.setClass(context, UrgentCaseActivity.class); + break; + case 7: + intent.setClass(context, OvertimeCaseActivity.class); + break; + case 8: + intent.setClass(context, DataAnalysisActivity.class); + break; + case 9: + intent.setClass(context, PersonOnlineActivity.class); + break; + case 10: + intent.setClass(context, CaseSearchActivity.class); + break; + case 11: + intent.setClass(context, MapWatchViewActivity.class); + break; + default: + break; + } + startActivity(intent); + } + }); + break; +// case "process": +// //案卷处理、案卷查询 +// adapter.setItemData(Constant.PROCESS_ICONS, Constant.PROCESS_ITEMS); +// adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { +// @Override +// public void onClick(int position) { +// Intent intent = new Intent(); +// switch (position) { +// case 0: +// intent.setClass(context, CaseHandleActivity.class); +// break; +// case 1: +// intent.setClass(context, CaseSearchActivity.class); +// break; +// default: +// break; +// } +// startActivity(intent); +// } +// }); +// break; +// case "leader": +// //案卷上报、紧急要件、超时督办、统计分析、在岗人员、案卷查询 +// adapter.setItemData(Constant.LEADER_ICONS, Constant.LEADER_ITEMS); +// adapter.setOnGridItemClickListener(new HomeRecycleAdapter.OnGridItemClickListener() { +// @Override +// public void onClick(int position) { +// Intent intent = new Intent(); +// switch (position) { +// case 0: +// intent.setClass(context, CaseUploadActivity.class); +// break; +// case 1: +// intent.setClass(context, UrgentCaseActivity.class); +// break; +// case 2: +// intent.setClass(context, OvertimeCaseActivity.class); +// break; +// case 3: +// intent.setClass(context, DataAnalysisActivity.class); +// break; +// case 4: +// intent.setClass(context, PersonOnlineActivity.class); +// break; +// case 5: +// intent.setClass(context, CaseSearchActivity.class); +// break; +// default: +// break; +// } +// startActivity(intent); +// } +// }); +// break; + default: + break; + } + homeRecyclerView.setAdapter(adapter); } } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java index 430f8be..fa2df7a 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseHandledFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandledBean; import com.casic.dcms.mvp.presenter.CaseHandledListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandledListView; +import com.casic.dcms.ui.CaseHandledDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -128,10 +130,9 @@ adapter.setOnItemClickListener(new CaseHandledAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandledDetailActivity.class); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java index 502c288..05306fe 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -130,10 +132,10 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "待办案卷"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java index 25877de..743a092 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/OvertimeCaseFragment.java @@ -17,7 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; -import com.casic.dcms.ui.CaseHandleOvertimeDetailActivity; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -133,7 +133,8 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { - Intent intent = new Intent(context, CaseHandleOvertimeDetailActivity.class); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "超时案卷"); intent.putExtra("id", dataBeans.get(position).getId()); startActivity(intent); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java index f957e26..ae0b3e5 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/handle/UrgentCaseFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.CaseHandleBean; import com.casic.dcms.mvp.presenter.CaseHandleListPresenterImpl; import com.casic.dcms.mvp.view.ICaseHandleListView; +import com.casic.dcms.ui.CaseHandleDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -131,10 +133,10 @@ adapter.setOnItemClickListener(new CaseHandleAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseHandleDetailActivity.class); + intent.putExtra("title", "紧急案卷"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java index 18178eb..5d51969 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/overtime/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.OvertimeCaseBean; import com.casic.dcms.mvp.presenter.OvertimeCaseListPresenterImpl; import com.casic.dcms.mvp.view.IOvertimeCaseListView; +import com.casic.dcms.ui.CaseTodoDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -128,10 +130,10 @@ adapter.setOnItemClickListener(new OvertimeCaseAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseTodoDetailActivity.class); + intent.putExtra("title", "超时督办"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java index 19c6766..51bdbd0 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/urgent/CaseTodoFragment.java @@ -2,6 +2,7 @@ import android.annotation.SuppressLint; import android.content.Context; +import android.content.Intent; import android.os.Handler; import android.os.Message; @@ -16,6 +17,7 @@ import com.casic.dcms.bean.UrgentCaseBean; import com.casic.dcms.mvp.presenter.UrgentCaseListPresenterImpl; import com.casic.dcms.mvp.view.IUrgentCaseListView; +import com.casic.dcms.ui.CaseTodoDetailActivity; import com.casic.dcms.utils.ToastHelper; import com.qmuiteam.qmui.widget.QMUIEmptyView; import com.scwang.smartrefresh.layout.SmartRefreshLayout; @@ -129,10 +131,10 @@ adapter.setOnItemClickListener(new UrgentCaseAdapter.OnItemClickListener() { @Override public void onClick(int position) { -// Intent intent = new Intent(context, CaseDetailActivity.class); -// intent.putExtra("id", dataRows.get(position).getId()); -// startActivity( intent); - ToastHelper.showToast("详情页正在完善中", ToastHelper.ERROR); + Intent intent = new Intent(context, CaseTodoDetailActivity.class); + intent.putExtra("title", "紧急要件"); + intent.putExtra("id", dataBeans.get(position).getId()); + startActivity(intent); } }); } 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 233b5d1..2e68d04 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -9,18 +9,38 @@ import java.util.List; public class Constant { - public static final List ICONS = Arrays.asList( + public static final String[] USER_PERMISSIONS = { + Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION, + Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO, + Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE, + Manifest.permission.CALL_PHONE}; + + public static final List ALL_ICONS = Arrays.asList( R.mipmap.ajsb, R.mipmap.kssb, R.mipmap.sbsb, R.mipmap.ajhs, R.mipmap.ajhc, R.mipmap.ajcl, R.mipmap.jjyj, R.mipmap.csdb, R.mipmap.tjfx, R.mipmap.zgry, R.mipmap.ajcx, R.mipmap.dtck); - public static final List ITEMS = Arrays.asList( + public static final List ALL_ITEMS = Arrays.asList( "案卷上报", "快速上报", "五包上报", "案卷核实", "案卷核查", "案卷处理", "紧急要件", "超时督办", "统计分析", "在岗人员", "案卷查询", "地图查看"); + public static final List PROCESS_ICONS = Arrays.asList( + R.mipmap.ajcl, R.mipmap.ajcx); + + public static final List PROCESS_ITEMS = Arrays.asList( + "案卷处理", "案卷查询"); + + public static final List LEADER_ICONS = Arrays.asList( + R.mipmap.ajsb, R.mipmap.jjyj, R.mipmap.csdb, + R.mipmap.tjfx, R.mipmap.zgry, R.mipmap.ajcx); + + public static final List LEADER_ITEMS = Arrays.asList( + "案卷上报", "紧急要件", "超时督办", + "统计分析", "在岗人员", "案卷查询"); + public static final List ANALYSIS_ICONS = Arrays.asList( R.mipmap.sbsb, R.mipmap.jjyj, R.mipmap.csdb, R.mipmap.ajcl, R.mipmap.tjfx, R.mipmap.ajhc); @@ -29,17 +49,6 @@ "问题来源", "案卷状态", "高发问题", "街道统计", "处理统计", "趋势分析"); - public static final List CATEGORY = Arrays.asList("请选择", "情况属实", "情况不属实"); - - public static final String[] USER_PERMISSIONS = { - Manifest.permission.ACCESS_COARSE_LOCATION, - Manifest.permission.ACCESS_FINE_LOCATION, - Manifest.permission.CAMERA, - Manifest.permission.READ_EXTERNAL_STORAGE, - Manifest.permission.WRITE_EXTERNAL_STORAGE, - Manifest.permission.RECORD_AUDIO, - Manifest.permission.CALL_PHONE}; - //先预置8种颜色 public static final int[] PIE_COLORS = {Color.rgb(28, 197, 220), Color.rgb(255, 223, 107), Color.rgb(242, 17, 112), diff --git a/app/src/main/java/com/casic/dcms/utils/StringHelper.java b/app/src/main/java/com/casic/dcms/utils/StringHelper.java index 1201063..5aeb8f6 100644 --- a/app/src/main/java/com/casic/dcms/utils/StringHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/StringHelper.java @@ -60,7 +60,9 @@ return ""; } String data = url.replace("\\", "/"); - return SaveKeyValues.getValue(Constant.IP_KEY, "http://111.198.10.15:11409") + "/static/" + data; + String imagePath = SaveKeyValues.getValue(Constant.IP_KEY, "http://111.198.10.15:11409") + "/static/" + data; + Log.d(TAG, "appendCompleteURL: "+imagePath); + return imagePath; } public static String reformatURL(List urls) { 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 ec230dd..16bafa1 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 @@ -14,6 +14,7 @@ import com.casic.dcms.bean.CaseStatusBean; import com.casic.dcms.bean.CaseVerifiedBean; import com.casic.dcms.bean.CaseVerifyBean; +import com.casic.dcms.bean.CommonSentenceBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; import com.casic.dcms.bean.LoginResultBean; @@ -345,6 +346,12 @@ @Query("caseState") String caseState); /** + * 获取常见语句 + */ + @GET("/dict/code/commonApproval") + Observable obtainCommonSentence(@Header("token") String token); + + /** * 案卷处理 *

* 案卷核实-仅添加核实意见/核实情况/核实图片 @@ -401,4 +408,12 @@ @Field("communityCode") String communityCode, @Field("gridId") String gridId, @Field("fieldintro") String fieldintro); + + /** + * 紧急要件-超时督办 + */ + @GET("/casedetail/updateSuperviseRemarks") + Observable updateSuperviseRemarks(@Header("token") String token, + @Query("id") String id, + @Query("superviseRemarks") String superviseRemarks); } 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 0c77b61..226b287 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 @@ -16,6 +16,7 @@ import com.casic.dcms.bean.CaseStatusBean; import com.casic.dcms.bean.CaseVerifiedBean; import com.casic.dcms.bean.CaseVerifyBean; +import com.casic.dcms.bean.CommonSentenceBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; import com.casic.dcms.bean.LoginResultBean; @@ -397,6 +398,15 @@ } /** + * 获取常见语句 + */ + public static Observable getCommonSentenceResult() { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainCommonSentence(TokenHelper.getToken()); + } + + /** * 案卷处理 *

* 案卷核实-仅添加核实意见/核实情况/核实图片 @@ -445,4 +455,13 @@ remarks, fileId, eorc, casetypeCode, casetypeDetailCode, lng, lat, caseLevel, areaCode, streetCode, communityCode, gridId, fieldintro); } + + /** + * 紧急要件-超时督办 + */ + public static Observable getUpdateSuperviseResult(String id, String superviseRemarks) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.updateSuperviseRemarks(TokenHelper.getToken(), id, superviseRemarks); + } } diff --git a/app/src/main/res/drawable/ic_load_error.xml b/app/src/main/res/drawable/ic_load_error.xml new file mode 100644 index 0000000..5ad71a1 --- /dev/null +++ b/app/src/main/res/drawable/ic_load_error.xml @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/activity_big_pic.xml b/app/src/main/res/layout/activity_big_pic.xml index 551ed62..bc09ace 100644 --- a/app/src/main/res/layout/activity_big_pic.xml +++ b/app/src/main/res/layout/activity_big_pic.xml @@ -1,16 +1,17 @@ - - + android:layout_height="wrap_content" + android:fitsSystemWindows="true" /> + - \ No newline at end of file + android:layout_height="wrap_content" /> + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_case_check_detail.xml b/app/src/main/res/layout/activity_case_check_detail.xml index 607d1eb..58bc5d4 100644 --- a/app/src/main/res/layout/activity_case_check_detail.xml +++ b/app/src/main/res/layout/activity_case_check_detail.xml @@ -16,28 +16,6 @@ android:layout_height="wrap_content" android:orientation="vertical"> - - - - - - - - - diff --git a/app/src/main/res/layout/activity_case_handle_detail.xml b/app/src/main/res/layout/activity_case_handle_detail.xml new file mode 100644 index 0000000..44f84e7 --- /dev/null +++ b/app/src/main/res/layout/activity_case_handle_detail.xml @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_case_handle_overtime.xml b/app/src/main/res/layout/activity_case_handle_overtime.xml deleted file mode 100644 index 44f84e7..0000000 --- a/app/src/main/res/layout/activity_case_handle_overtime.xml +++ /dev/null @@ -1,213 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_case_handled_detail.xml b/app/src/main/res/layout/activity_case_handled_detail.xml new file mode 100644 index 0000000..fdeb450 --- /dev/null +++ b/app/src/main/res/layout/activity_case_handled_detail.xml @@ -0,0 +1,245 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_case_todo_detail.xml b/app/src/main/res/layout/activity_case_todo_detail.xml new file mode 100644 index 0000000..8ff5257 --- /dev/null +++ b/app/src/main/res/layout/activity_case_todo_detail.xml @@ -0,0 +1,242 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_case_verify_detail.xml b/app/src/main/res/layout/activity_case_verify_detail.xml index 2317483..a5d1810 100644 --- a/app/src/main/res/layout/activity_case_verify_detail.xml +++ b/app/src/main/res/layout/activity_case_verify_detail.xml @@ -17,29 +17,7 @@ android:layout_height="wrap_content" android:orientation="vertical"> - - - - - - - - - - + diff --git a/app/src/main/res/layout/include_case_base_layout.xml b/app/src/main/res/layout/include_case_base_layout.xml index e6090fa..9e0fcd1 100644 --- a/app/src/main/res/layout/include_case_base_layout.xml +++ b/app/src/main/res/layout/include_case_base_layout.xml @@ -4,6 +4,28 @@ android:layout_height="match_parent" android:orientation="vertical"> + + + + + + + + + diff --git a/app/src/main/res/layout/include_case_base_layout_read_only.xml b/app/src/main/res/layout/include_case_base_layout_read_only.xml index e7e95bf..88b42de 100644 --- a/app/src/main/res/layout/include_case_base_layout_read_only.xml +++ b/app/src/main/res/layout/include_case_base_layout_read_only.xml @@ -26,9 +26,7 @@ - + - + - +