diff --git a/.idea/misc.xml b/.idea/misc.xml index 4c01f54..53acf2f 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -27,6 +27,7 @@ + diff --git a/.idea/misc.xml b/.idea/misc.xml index 4c01f54..53acf2f 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -27,6 +27,7 @@ + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index eb654a2..d087ae2 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -69,7 +69,7 @@ - + diff --git a/.idea/misc.xml b/.idea/misc.xml index 4c01f54..53acf2f 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -27,6 +27,7 @@ + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index eb654a2..d087ae2 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -69,7 +69,7 @@ - + diff --git a/app/src/main/java/com/casic/dcms/adapter/CaseListResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CaseListResultAdapter.java deleted file mode 100644 index a051fbf..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/CaseListResultAdapter.java +++ /dev/null @@ -1,92 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.text.TextUtils; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.mvvm.model.CaseListResultBean; -import com.casic.dcms.utils.StringHelper; - -import java.util.List; - -public class CaseListResultAdapter extends RecyclerView.Adapter { - - private final List dataRows; - private final LayoutInflater layoutInflater; - - public CaseListResultAdapter(Context context, List dataRows) { - this.dataRows = dataRows; - layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - View view = layoutInflater.inflate(R.layout.item_case_rv, parent, false); - return new ItemViewHolder(view); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.bindView(dataRows.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataRows.size(); - } - - private OnItemClickListener clickListener; - - public interface OnItemClickListener { - void onClick(int position); - } - - public void setOnItemClickListener(OnItemClickListener onItemClickListener) { - this.clickListener = onItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - -// private final TextView leftTextView; - private final TextView caseTitleView; - private final TextView casePlaceView; - private final TextView caseTimeView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); -// leftTextView = itemView.findViewById(R.id.leftTextView); - caseTitleView = itemView.findViewById(R.id.caseTitleView); - casePlaceView = itemView.findViewById(R.id.casePlaceView); - caseTimeView = itemView.findViewById(R.id.caseTimeView); - } - - @SuppressLint("SetTextI18n") - void bindView(CaseListResultBean.DataBean.RowsBean rowsBean) { - String eorcName = rowsBean.getEorcName(); - if (TextUtils.isEmpty(eorcName)) { - eorcName = "未知"; - } -// leftTextView.setText(eorcName.substring(0, 1)); - caseTitleView.setText(StringHelper.filterString(rowsBean.getDescription())); - casePlaceView.setText("发生地点:" + StringHelper.filterString(rowsBean.getFieldintro())); - caseTimeView.setText("上报时间:" + rowsBean.getReportTime()); - } - } -} diff --git a/.idea/misc.xml b/.idea/misc.xml index 4c01f54..53acf2f 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -27,6 +27,7 @@ + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index eb654a2..d087ae2 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -69,7 +69,7 @@ - + diff --git a/app/src/main/java/com/casic/dcms/adapter/CaseListResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CaseListResultAdapter.java deleted file mode 100644 index a051fbf..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/CaseListResultAdapter.java +++ /dev/null @@ -1,92 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.text.TextUtils; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.mvvm.model.CaseListResultBean; -import com.casic.dcms.utils.StringHelper; - -import java.util.List; - -public class CaseListResultAdapter extends RecyclerView.Adapter { - - private final List dataRows; - private final LayoutInflater layoutInflater; - - public CaseListResultAdapter(Context context, List dataRows) { - this.dataRows = dataRows; - layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - View view = layoutInflater.inflate(R.layout.item_case_rv, parent, false); - return new ItemViewHolder(view); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.bindView(dataRows.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataRows.size(); - } - - private OnItemClickListener clickListener; - - public interface OnItemClickListener { - void onClick(int position); - } - - public void setOnItemClickListener(OnItemClickListener onItemClickListener) { - this.clickListener = onItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - -// private final TextView leftTextView; - private final TextView caseTitleView; - private final TextView casePlaceView; - private final TextView caseTimeView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); -// leftTextView = itemView.findViewById(R.id.leftTextView); - caseTitleView = itemView.findViewById(R.id.caseTitleView); - casePlaceView = itemView.findViewById(R.id.casePlaceView); - caseTimeView = itemView.findViewById(R.id.caseTimeView); - } - - @SuppressLint("SetTextI18n") - void bindView(CaseListResultBean.DataBean.RowsBean rowsBean) { - String eorcName = rowsBean.getEorcName(); - if (TextUtils.isEmpty(eorcName)) { - eorcName = "未知"; - } -// leftTextView.setText(eorcName.substring(0, 1)); - caseTitleView.setText(StringHelper.filterString(rowsBean.getDescription())); - casePlaceView.setText("发生地点:" + StringHelper.filterString(rowsBean.getFieldintro())); - caseTimeView.setText("上报时间:" + rowsBean.getReportTime()); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java new file mode 100644 index 0000000..9e4a834 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java @@ -0,0 +1,96 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.mvvm.model.CaseSearchResultBean; +import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUIRadiusImageView; + +import java.util.List; + +public class CaseSearchResultAdapter extends RecyclerView.Adapter { + + private final Context context; + private final List dataRows; + private final LayoutInflater layoutInflater; + + public CaseSearchResultAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ItemViewHolder(layoutInflater.inflate(R.layout.item_case_rv, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { + holder.bindView(dataRows.get(position)); + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private final QMUIRadiusImageView caseImageView; + private final TextView caseTitleView; + private final TextView casePlaceView; + private final TextView caseTimeView; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + caseImageView = itemView.findViewById(R.id.caseImageView); + caseTitleView = itemView.findViewById(R.id.caseTitleView); + casePlaceView = itemView.findViewById(R.id.casePlaceView); + caseTimeView = itemView.findViewById(R.id.caseTimeView); + } + + void bindView(CaseSearchResultBean.DataDTO.RowsDTO rowsBean) { + //核实图片 +// String fileIdVerify = rowsBean.getFileIdVerify(); +// if (!TextUtils.isEmpty(fileIdVerify)) { +// String[] split = fileIdVerify.split(","); +// String firstImage = split[0]; +// if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) { +// Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView); +// } +// } + caseTitleView.setText(StringHelper.filterString(rowsBean.getDescription())); + casePlaceView.setText("发生地点:" + StringHelper.filterString(rowsBean.getFieldintro())); + caseTimeView.setText("上报时间:" + rowsBean.getReportTime()); + } + } +} diff --git a/.idea/misc.xml b/.idea/misc.xml index 4c01f54..53acf2f 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -27,6 +27,7 @@ + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index eb654a2..d087ae2 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -69,7 +69,7 @@ - + diff --git a/app/src/main/java/com/casic/dcms/adapter/CaseListResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CaseListResultAdapter.java deleted file mode 100644 index a051fbf..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/CaseListResultAdapter.java +++ /dev/null @@ -1,92 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.text.TextUtils; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.mvvm.model.CaseListResultBean; -import com.casic.dcms.utils.StringHelper; - -import java.util.List; - -public class CaseListResultAdapter extends RecyclerView.Adapter { - - private final List dataRows; - private final LayoutInflater layoutInflater; - - public CaseListResultAdapter(Context context, List dataRows) { - this.dataRows = dataRows; - layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - View view = layoutInflater.inflate(R.layout.item_case_rv, parent, false); - return new ItemViewHolder(view); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.bindView(dataRows.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataRows.size(); - } - - private OnItemClickListener clickListener; - - public interface OnItemClickListener { - void onClick(int position); - } - - public void setOnItemClickListener(OnItemClickListener onItemClickListener) { - this.clickListener = onItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - -// private final TextView leftTextView; - private final TextView caseTitleView; - private final TextView casePlaceView; - private final TextView caseTimeView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); -// leftTextView = itemView.findViewById(R.id.leftTextView); - caseTitleView = itemView.findViewById(R.id.caseTitleView); - casePlaceView = itemView.findViewById(R.id.casePlaceView); - caseTimeView = itemView.findViewById(R.id.caseTimeView); - } - - @SuppressLint("SetTextI18n") - void bindView(CaseListResultBean.DataBean.RowsBean rowsBean) { - String eorcName = rowsBean.getEorcName(); - if (TextUtils.isEmpty(eorcName)) { - eorcName = "未知"; - } -// leftTextView.setText(eorcName.substring(0, 1)); - caseTitleView.setText(StringHelper.filterString(rowsBean.getDescription())); - casePlaceView.setText("发生地点:" + StringHelper.filterString(rowsBean.getFieldintro())); - caseTimeView.setText("上报时间:" + rowsBean.getReportTime()); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java new file mode 100644 index 0000000..9e4a834 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java @@ -0,0 +1,96 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.mvvm.model.CaseSearchResultBean; +import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUIRadiusImageView; + +import java.util.List; + +public class CaseSearchResultAdapter extends RecyclerView.Adapter { + + private final Context context; + private final List dataRows; + private final LayoutInflater layoutInflater; + + public CaseSearchResultAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ItemViewHolder(layoutInflater.inflate(R.layout.item_case_rv, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { + holder.bindView(dataRows.get(position)); + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private final QMUIRadiusImageView caseImageView; + private final TextView caseTitleView; + private final TextView casePlaceView; + private final TextView caseTimeView; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + caseImageView = itemView.findViewById(R.id.caseImageView); + caseTitleView = itemView.findViewById(R.id.caseTitleView); + casePlaceView = itemView.findViewById(R.id.casePlaceView); + caseTimeView = itemView.findViewById(R.id.caseTimeView); + } + + void bindView(CaseSearchResultBean.DataDTO.RowsDTO rowsBean) { + //核实图片 +// String fileIdVerify = rowsBean.getFileIdVerify(); +// if (!TextUtils.isEmpty(fileIdVerify)) { +// String[] split = fileIdVerify.split(","); +// String firstImage = split[0]; +// if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) { +// Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView); +// } +// } + caseTitleView.setText(StringHelper.filterString(rowsBean.getDescription())); + casePlaceView.setText("发生地点:" + StringHelper.filterString(rowsBean.getFieldintro())); + caseTimeView.setText("上报时间:" + rowsBean.getReportTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvvm/model/CaseListResultBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/CaseListResultBean.java deleted file mode 100644 index 41b3016..0000000 --- a/app/src/main/java/com/casic/dcms/mvvm/model/CaseListResultBean.java +++ /dev/null @@ -1,303 +0,0 @@ -package com.casic.dcms.mvvm.model; - -import java.util.List; - -public class CaseListResultBean { - - private int code; - private DataBean data; - private String message; - private boolean success; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public DataBean getData() { - return data; - } - - public void setData(DataBean data) { - this.data = data; - } - - 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 static class DataBean { - - private int total; - private List rows; - - public int getTotal() { - return total; - } - - public void setTotal(int total) { - this.total = total; - } - - public List getRows() { - return rows; - } - - public void setRows(List rows) { - this.rows = rows; - } - - public static class RowsBean { - - private int isPostpone; - private String description; - private String createUserName; - private int source; - private String eorcName; - private String casetypeDetailName; - private String remainingTime; - private String casetypeName; - private String processId; - private int caseState; - private String id; - private String reportSupervisorId; - private String fieldintro; - private String lat; - private String caseStateName; - private String lng; - private String isOvertime; - private String casetypeDetailCode; - private String onedeptid; - private String eorc; - private String caseid; - private String casetypeCode; - private String createUser; - private String nodeLimittime; - private String sourceName; - private String reportTime; - - public int getIsPostpone() { - return isPostpone; - } - - public void setIsPostpone(int isPostpone) { - this.isPostpone = isPostpone; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public String getCreateUserName() { - return createUserName; - } - - public void setCreateUserName(String createUserName) { - this.createUserName = createUserName; - } - - public int getSource() { - return source; - } - - public void setSource(int source) { - this.source = source; - } - - public String getEorcName() { - return eorcName; - } - - public void setEorcName(String eorcName) { - this.eorcName = eorcName; - } - - public String getCasetypeDetailName() { - return casetypeDetailName; - } - - public void setCasetypeDetailName(String casetypeDetailName) { - this.casetypeDetailName = casetypeDetailName; - } - - public String getRemainingTime() { - return remainingTime; - } - - public void setRemainingTime(String remainingTime) { - this.remainingTime = remainingTime; - } - - public String getCasetypeName() { - return casetypeName; - } - - public void setCasetypeName(String casetypeName) { - this.casetypeName = casetypeName; - } - - public String getProcessId() { - return processId; - } - - public void setProcessId(String processId) { - this.processId = processId; - } - - public int getCaseState() { - return caseState; - } - - public void setCaseState(int caseState) { - this.caseState = caseState; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getReportSupervisorId() { - return reportSupervisorId; - } - - public void setReportSupervisorId(String reportSupervisorId) { - this.reportSupervisorId = reportSupervisorId; - } - - public String getFieldintro() { - return fieldintro; - } - - public void setFieldintro(String fieldintro) { - this.fieldintro = fieldintro; - } - - public String getLat() { - return lat; - } - - public void setLat(String lat) { - this.lat = lat; - } - - public String getCaseStateName() { - return caseStateName; - } - - public void setCaseStateName(String caseStateName) { - this.caseStateName = caseStateName; - } - - public String getLng() { - return lng; - } - - public void setLng(String lng) { - this.lng = lng; - } - - public String getIsOvertime() { - return isOvertime; - } - - public void setIsOvertime(String isOvertime) { - this.isOvertime = isOvertime; - } - - public String getCasetypeDetailCode() { - return casetypeDetailCode; - } - - public void setCasetypeDetailCode(String casetypeDetailCode) { - this.casetypeDetailCode = casetypeDetailCode; - } - - public String getOnedeptid() { - return onedeptid; - } - - public void setOnedeptid(String onedeptid) { - this.onedeptid = onedeptid; - } - - public String getEorc() { - return eorc; - } - - public void setEorc(String eorc) { - this.eorc = eorc; - } - - public String getCaseid() { - return caseid; - } - - public void setCaseid(String caseid) { - this.caseid = caseid; - } - - public String getCasetypeCode() { - return casetypeCode; - } - - public void setCasetypeCode(String casetypeCode) { - this.casetypeCode = casetypeCode; - } - - public String getCreateUser() { - return createUser; - } - - public void setCreateUser(String createUser) { - this.createUser = createUser; - } - - public String getNodeLimittime() { - return nodeLimittime; - } - - public void setNodeLimittime(String nodeLimittime) { - this.nodeLimittime = nodeLimittime; - } - - public String getSourceName() { - return sourceName; - } - - public void setSourceName(String sourceName) { - this.sourceName = sourceName; - } - - public String getReportTime() { - return reportTime; - } - - public void setReportTime(String reportTime) { - this.reportTime = reportTime; - } - } - } -} diff --git a/.idea/misc.xml b/.idea/misc.xml index 4c01f54..53acf2f 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -27,6 +27,7 @@ + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index eb654a2..d087ae2 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -69,7 +69,7 @@ - + diff --git a/app/src/main/java/com/casic/dcms/adapter/CaseListResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CaseListResultAdapter.java deleted file mode 100644 index a051fbf..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/CaseListResultAdapter.java +++ /dev/null @@ -1,92 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.text.TextUtils; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.mvvm.model.CaseListResultBean; -import com.casic.dcms.utils.StringHelper; - -import java.util.List; - -public class CaseListResultAdapter extends RecyclerView.Adapter { - - private final List dataRows; - private final LayoutInflater layoutInflater; - - public CaseListResultAdapter(Context context, List dataRows) { - this.dataRows = dataRows; - layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - View view = layoutInflater.inflate(R.layout.item_case_rv, parent, false); - return new ItemViewHolder(view); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.bindView(dataRows.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataRows.size(); - } - - private OnItemClickListener clickListener; - - public interface OnItemClickListener { - void onClick(int position); - } - - public void setOnItemClickListener(OnItemClickListener onItemClickListener) { - this.clickListener = onItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - -// private final TextView leftTextView; - private final TextView caseTitleView; - private final TextView casePlaceView; - private final TextView caseTimeView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); -// leftTextView = itemView.findViewById(R.id.leftTextView); - caseTitleView = itemView.findViewById(R.id.caseTitleView); - casePlaceView = itemView.findViewById(R.id.casePlaceView); - caseTimeView = itemView.findViewById(R.id.caseTimeView); - } - - @SuppressLint("SetTextI18n") - void bindView(CaseListResultBean.DataBean.RowsBean rowsBean) { - String eorcName = rowsBean.getEorcName(); - if (TextUtils.isEmpty(eorcName)) { - eorcName = "未知"; - } -// leftTextView.setText(eorcName.substring(0, 1)); - caseTitleView.setText(StringHelper.filterString(rowsBean.getDescription())); - casePlaceView.setText("发生地点:" + StringHelper.filterString(rowsBean.getFieldintro())); - caseTimeView.setText("上报时间:" + rowsBean.getReportTime()); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java new file mode 100644 index 0000000..9e4a834 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java @@ -0,0 +1,96 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.mvvm.model.CaseSearchResultBean; +import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUIRadiusImageView; + +import java.util.List; + +public class CaseSearchResultAdapter extends RecyclerView.Adapter { + + private final Context context; + private final List dataRows; + private final LayoutInflater layoutInflater; + + public CaseSearchResultAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ItemViewHolder(layoutInflater.inflate(R.layout.item_case_rv, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { + holder.bindView(dataRows.get(position)); + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private final QMUIRadiusImageView caseImageView; + private final TextView caseTitleView; + private final TextView casePlaceView; + private final TextView caseTimeView; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + caseImageView = itemView.findViewById(R.id.caseImageView); + caseTitleView = itemView.findViewById(R.id.caseTitleView); + casePlaceView = itemView.findViewById(R.id.casePlaceView); + caseTimeView = itemView.findViewById(R.id.caseTimeView); + } + + void bindView(CaseSearchResultBean.DataDTO.RowsDTO rowsBean) { + //核实图片 +// String fileIdVerify = rowsBean.getFileIdVerify(); +// if (!TextUtils.isEmpty(fileIdVerify)) { +// String[] split = fileIdVerify.split(","); +// String firstImage = split[0]; +// if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) { +// Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView); +// } +// } + caseTitleView.setText(StringHelper.filterString(rowsBean.getDescription())); + casePlaceView.setText("发生地点:" + StringHelper.filterString(rowsBean.getFieldintro())); + caseTimeView.setText("上报时间:" + rowsBean.getReportTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvvm/model/CaseListResultBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/CaseListResultBean.java deleted file mode 100644 index 41b3016..0000000 --- a/app/src/main/java/com/casic/dcms/mvvm/model/CaseListResultBean.java +++ /dev/null @@ -1,303 +0,0 @@ -package com.casic.dcms.mvvm.model; - -import java.util.List; - -public class CaseListResultBean { - - private int code; - private DataBean data; - private String message; - private boolean success; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public DataBean getData() { - return data; - } - - public void setData(DataBean data) { - this.data = data; - } - - 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 static class DataBean { - - private int total; - private List rows; - - public int getTotal() { - return total; - } - - public void setTotal(int total) { - this.total = total; - } - - public List getRows() { - return rows; - } - - public void setRows(List rows) { - this.rows = rows; - } - - public static class RowsBean { - - private int isPostpone; - private String description; - private String createUserName; - private int source; - private String eorcName; - private String casetypeDetailName; - private String remainingTime; - private String casetypeName; - private String processId; - private int caseState; - private String id; - private String reportSupervisorId; - private String fieldintro; - private String lat; - private String caseStateName; - private String lng; - private String isOvertime; - private String casetypeDetailCode; - private String onedeptid; - private String eorc; - private String caseid; - private String casetypeCode; - private String createUser; - private String nodeLimittime; - private String sourceName; - private String reportTime; - - public int getIsPostpone() { - return isPostpone; - } - - public void setIsPostpone(int isPostpone) { - this.isPostpone = isPostpone; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public String getCreateUserName() { - return createUserName; - } - - public void setCreateUserName(String createUserName) { - this.createUserName = createUserName; - } - - public int getSource() { - return source; - } - - public void setSource(int source) { - this.source = source; - } - - public String getEorcName() { - return eorcName; - } - - public void setEorcName(String eorcName) { - this.eorcName = eorcName; - } - - public String getCasetypeDetailName() { - return casetypeDetailName; - } - - public void setCasetypeDetailName(String casetypeDetailName) { - this.casetypeDetailName = casetypeDetailName; - } - - public String getRemainingTime() { - return remainingTime; - } - - public void setRemainingTime(String remainingTime) { - this.remainingTime = remainingTime; - } - - public String getCasetypeName() { - return casetypeName; - } - - public void setCasetypeName(String casetypeName) { - this.casetypeName = casetypeName; - } - - public String getProcessId() { - return processId; - } - - public void setProcessId(String processId) { - this.processId = processId; - } - - public int getCaseState() { - return caseState; - } - - public void setCaseState(int caseState) { - this.caseState = caseState; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getReportSupervisorId() { - return reportSupervisorId; - } - - public void setReportSupervisorId(String reportSupervisorId) { - this.reportSupervisorId = reportSupervisorId; - } - - public String getFieldintro() { - return fieldintro; - } - - public void setFieldintro(String fieldintro) { - this.fieldintro = fieldintro; - } - - public String getLat() { - return lat; - } - - public void setLat(String lat) { - this.lat = lat; - } - - public String getCaseStateName() { - return caseStateName; - } - - public void setCaseStateName(String caseStateName) { - this.caseStateName = caseStateName; - } - - public String getLng() { - return lng; - } - - public void setLng(String lng) { - this.lng = lng; - } - - public String getIsOvertime() { - return isOvertime; - } - - public void setIsOvertime(String isOvertime) { - this.isOvertime = isOvertime; - } - - public String getCasetypeDetailCode() { - return casetypeDetailCode; - } - - public void setCasetypeDetailCode(String casetypeDetailCode) { - this.casetypeDetailCode = casetypeDetailCode; - } - - public String getOnedeptid() { - return onedeptid; - } - - public void setOnedeptid(String onedeptid) { - this.onedeptid = onedeptid; - } - - public String getEorc() { - return eorc; - } - - public void setEorc(String eorc) { - this.eorc = eorc; - } - - public String getCaseid() { - return caseid; - } - - public void setCaseid(String caseid) { - this.caseid = caseid; - } - - public String getCasetypeCode() { - return casetypeCode; - } - - public void setCasetypeCode(String casetypeCode) { - this.casetypeCode = casetypeCode; - } - - public String getCreateUser() { - return createUser; - } - - public void setCreateUser(String createUser) { - this.createUser = createUser; - } - - public String getNodeLimittime() { - return nodeLimittime; - } - - public void setNodeLimittime(String nodeLimittime) { - this.nodeLimittime = nodeLimittime; - } - - public String getSourceName() { - return sourceName; - } - - public void setSourceName(String sourceName) { - this.sourceName = sourceName; - } - - public String getReportTime() { - return reportTime; - } - - public void setReportTime(String reportTime) { - this.reportTime = reportTime; - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/mvvm/model/CaseSearchResultBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/CaseSearchResultBean.java new file mode 100644 index 0000000..4d62c22 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvvm/model/CaseSearchResultBean.java @@ -0,0 +1,319 @@ +package com.casic.dcms.mvvm.model; + +import java.util.List; + +public class CaseSearchResultBean { + + private int code; + private DataDTO data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataDTO getData() { + return data; + } + + public void setData(DataDTO data) { + this.data = data; + } + + 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 static class DataDTO { + private List rows; + private int total; + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public static class RowsDTO { + private int isPostpone; + private String description; + private String createUserName; + private int source; + private String eorcName; + private String casetypeDetailName; + private String remainingTime; + private String casetypeName; + private String processId; + private int caseState; + private String id; + private String reportSupervisorId; + private String fieldintro; + private String lat; + private String caseStateName; + private String lng; + private String isOvertime; + private String currRoleName; + private String casetypeDetailCode; + private String onedeptid; + private String eorc; + private String currRoleId; + private String caseid; + private String casetypeCode; + private String createUser; + private String nodeLimittime; + private String sourceName; + private String reportTime; + + public int getIsPostpone() { + return isPostpone; + } + + public void setIsPostpone(int isPostpone) { + this.isPostpone = isPostpone; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public int getSource() { + return source; + } + + public void setSource(int source) { + this.source = source; + } + + public String getEorcName() { + return eorcName; + } + + public void setEorcName(String eorcName) { + this.eorcName = eorcName; + } + + public String getCasetypeDetailName() { + return casetypeDetailName; + } + + public void setCasetypeDetailName(String casetypeDetailName) { + this.casetypeDetailName = casetypeDetailName; + } + + public String getRemainingTime() { + return remainingTime; + } + + public void setRemainingTime(String remainingTime) { + this.remainingTime = remainingTime; + } + + public String getCasetypeName() { + return casetypeName; + } + + public void setCasetypeName(String casetypeName) { + this.casetypeName = casetypeName; + } + + public String getProcessId() { + return processId; + } + + public void setProcessId(String processId) { + this.processId = processId; + } + + public int getCaseState() { + return caseState; + } + + public void setCaseState(int caseState) { + this.caseState = caseState; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getReportSupervisorId() { + return reportSupervisorId; + } + + public void setReportSupervisorId(String reportSupervisorId) { + this.reportSupervisorId = reportSupervisorId; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getLat() { + return lat; + } + + public void setLat(String lat) { + this.lat = lat; + } + + public String getCaseStateName() { + return caseStateName; + } + + public void setCaseStateName(String caseStateName) { + this.caseStateName = caseStateName; + } + + public String getLng() { + return lng; + } + + public void setLng(String lng) { + this.lng = lng; + } + + public String getIsOvertime() { + return isOvertime; + } + + public void setIsOvertime(String isOvertime) { + this.isOvertime = isOvertime; + } + + public String getCurrRoleName() { + return currRoleName; + } + + public void setCurrRoleName(String currRoleName) { + this.currRoleName = currRoleName; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getOnedeptid() { + return onedeptid; + } + + public void setOnedeptid(String onedeptid) { + this.onedeptid = onedeptid; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCurrRoleId() { + return currRoleId; + } + + public void setCurrRoleId(String currRoleId) { + this.currRoleId = currRoleId; + } + + public String getCaseid() { + return caseid; + } + + public void setCaseid(String caseid) { + this.caseid = caseid; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getNodeLimittime() { + return nodeLimittime; + } + + public void setNodeLimittime(String nodeLimittime) { + this.nodeLimittime = nodeLimittime; + } + + public String getSourceName() { + return sourceName; + } + + public void setSourceName(String sourceName) { + this.sourceName = sourceName; + } + + public String getReportTime() { + return reportTime; + } + + public void setReportTime(String reportTime) { + this.reportTime = reportTime; + } + } + } +} diff --git a/.idea/misc.xml b/.idea/misc.xml index 4c01f54..53acf2f 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -27,6 +27,7 @@ + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index eb654a2..d087ae2 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -69,7 +69,7 @@ - + diff --git a/app/src/main/java/com/casic/dcms/adapter/CaseListResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CaseListResultAdapter.java deleted file mode 100644 index a051fbf..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/CaseListResultAdapter.java +++ /dev/null @@ -1,92 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.text.TextUtils; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.mvvm.model.CaseListResultBean; -import com.casic.dcms.utils.StringHelper; - -import java.util.List; - -public class CaseListResultAdapter extends RecyclerView.Adapter { - - private final List dataRows; - private final LayoutInflater layoutInflater; - - public CaseListResultAdapter(Context context, List dataRows) { - this.dataRows = dataRows; - layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - View view = layoutInflater.inflate(R.layout.item_case_rv, parent, false); - return new ItemViewHolder(view); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.bindView(dataRows.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataRows.size(); - } - - private OnItemClickListener clickListener; - - public interface OnItemClickListener { - void onClick(int position); - } - - public void setOnItemClickListener(OnItemClickListener onItemClickListener) { - this.clickListener = onItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - -// private final TextView leftTextView; - private final TextView caseTitleView; - private final TextView casePlaceView; - private final TextView caseTimeView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); -// leftTextView = itemView.findViewById(R.id.leftTextView); - caseTitleView = itemView.findViewById(R.id.caseTitleView); - casePlaceView = itemView.findViewById(R.id.casePlaceView); - caseTimeView = itemView.findViewById(R.id.caseTimeView); - } - - @SuppressLint("SetTextI18n") - void bindView(CaseListResultBean.DataBean.RowsBean rowsBean) { - String eorcName = rowsBean.getEorcName(); - if (TextUtils.isEmpty(eorcName)) { - eorcName = "未知"; - } -// leftTextView.setText(eorcName.substring(0, 1)); - caseTitleView.setText(StringHelper.filterString(rowsBean.getDescription())); - casePlaceView.setText("发生地点:" + StringHelper.filterString(rowsBean.getFieldintro())); - caseTimeView.setText("上报时间:" + rowsBean.getReportTime()); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java new file mode 100644 index 0000000..9e4a834 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java @@ -0,0 +1,96 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.mvvm.model.CaseSearchResultBean; +import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUIRadiusImageView; + +import java.util.List; + +public class CaseSearchResultAdapter extends RecyclerView.Adapter { + + private final Context context; + private final List dataRows; + private final LayoutInflater layoutInflater; + + public CaseSearchResultAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ItemViewHolder(layoutInflater.inflate(R.layout.item_case_rv, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { + holder.bindView(dataRows.get(position)); + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private final QMUIRadiusImageView caseImageView; + private final TextView caseTitleView; + private final TextView casePlaceView; + private final TextView caseTimeView; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + caseImageView = itemView.findViewById(R.id.caseImageView); + caseTitleView = itemView.findViewById(R.id.caseTitleView); + casePlaceView = itemView.findViewById(R.id.casePlaceView); + caseTimeView = itemView.findViewById(R.id.caseTimeView); + } + + void bindView(CaseSearchResultBean.DataDTO.RowsDTO rowsBean) { + //核实图片 +// String fileIdVerify = rowsBean.getFileIdVerify(); +// if (!TextUtils.isEmpty(fileIdVerify)) { +// String[] split = fileIdVerify.split(","); +// String firstImage = split[0]; +// if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) { +// Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView); +// } +// } + caseTitleView.setText(StringHelper.filterString(rowsBean.getDescription())); + casePlaceView.setText("发生地点:" + StringHelper.filterString(rowsBean.getFieldintro())); + caseTimeView.setText("上报时间:" + rowsBean.getReportTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvvm/model/CaseListResultBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/CaseListResultBean.java deleted file mode 100644 index 41b3016..0000000 --- a/app/src/main/java/com/casic/dcms/mvvm/model/CaseListResultBean.java +++ /dev/null @@ -1,303 +0,0 @@ -package com.casic.dcms.mvvm.model; - -import java.util.List; - -public class CaseListResultBean { - - private int code; - private DataBean data; - private String message; - private boolean success; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public DataBean getData() { - return data; - } - - public void setData(DataBean data) { - this.data = data; - } - - 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 static class DataBean { - - private int total; - private List rows; - - public int getTotal() { - return total; - } - - public void setTotal(int total) { - this.total = total; - } - - public List getRows() { - return rows; - } - - public void setRows(List rows) { - this.rows = rows; - } - - public static class RowsBean { - - private int isPostpone; - private String description; - private String createUserName; - private int source; - private String eorcName; - private String casetypeDetailName; - private String remainingTime; - private String casetypeName; - private String processId; - private int caseState; - private String id; - private String reportSupervisorId; - private String fieldintro; - private String lat; - private String caseStateName; - private String lng; - private String isOvertime; - private String casetypeDetailCode; - private String onedeptid; - private String eorc; - private String caseid; - private String casetypeCode; - private String createUser; - private String nodeLimittime; - private String sourceName; - private String reportTime; - - public int getIsPostpone() { - return isPostpone; - } - - public void setIsPostpone(int isPostpone) { - this.isPostpone = isPostpone; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public String getCreateUserName() { - return createUserName; - } - - public void setCreateUserName(String createUserName) { - this.createUserName = createUserName; - } - - public int getSource() { - return source; - } - - public void setSource(int source) { - this.source = source; - } - - public String getEorcName() { - return eorcName; - } - - public void setEorcName(String eorcName) { - this.eorcName = eorcName; - } - - public String getCasetypeDetailName() { - return casetypeDetailName; - } - - public void setCasetypeDetailName(String casetypeDetailName) { - this.casetypeDetailName = casetypeDetailName; - } - - public String getRemainingTime() { - return remainingTime; - } - - public void setRemainingTime(String remainingTime) { - this.remainingTime = remainingTime; - } - - public String getCasetypeName() { - return casetypeName; - } - - public void setCasetypeName(String casetypeName) { - this.casetypeName = casetypeName; - } - - public String getProcessId() { - return processId; - } - - public void setProcessId(String processId) { - this.processId = processId; - } - - public int getCaseState() { - return caseState; - } - - public void setCaseState(int caseState) { - this.caseState = caseState; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getReportSupervisorId() { - return reportSupervisorId; - } - - public void setReportSupervisorId(String reportSupervisorId) { - this.reportSupervisorId = reportSupervisorId; - } - - public String getFieldintro() { - return fieldintro; - } - - public void setFieldintro(String fieldintro) { - this.fieldintro = fieldintro; - } - - public String getLat() { - return lat; - } - - public void setLat(String lat) { - this.lat = lat; - } - - public String getCaseStateName() { - return caseStateName; - } - - public void setCaseStateName(String caseStateName) { - this.caseStateName = caseStateName; - } - - public String getLng() { - return lng; - } - - public void setLng(String lng) { - this.lng = lng; - } - - public String getIsOvertime() { - return isOvertime; - } - - public void setIsOvertime(String isOvertime) { - this.isOvertime = isOvertime; - } - - public String getCasetypeDetailCode() { - return casetypeDetailCode; - } - - public void setCasetypeDetailCode(String casetypeDetailCode) { - this.casetypeDetailCode = casetypeDetailCode; - } - - public String getOnedeptid() { - return onedeptid; - } - - public void setOnedeptid(String onedeptid) { - this.onedeptid = onedeptid; - } - - public String getEorc() { - return eorc; - } - - public void setEorc(String eorc) { - this.eorc = eorc; - } - - public String getCaseid() { - return caseid; - } - - public void setCaseid(String caseid) { - this.caseid = caseid; - } - - public String getCasetypeCode() { - return casetypeCode; - } - - public void setCasetypeCode(String casetypeCode) { - this.casetypeCode = casetypeCode; - } - - public String getCreateUser() { - return createUser; - } - - public void setCreateUser(String createUser) { - this.createUser = createUser; - } - - public String getNodeLimittime() { - return nodeLimittime; - } - - public void setNodeLimittime(String nodeLimittime) { - this.nodeLimittime = nodeLimittime; - } - - public String getSourceName() { - return sourceName; - } - - public void setSourceName(String sourceName) { - this.sourceName = sourceName; - } - - public String getReportTime() { - return reportTime; - } - - public void setReportTime(String reportTime) { - this.reportTime = reportTime; - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/mvvm/model/CaseSearchResultBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/CaseSearchResultBean.java new file mode 100644 index 0000000..4d62c22 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvvm/model/CaseSearchResultBean.java @@ -0,0 +1,319 @@ +package com.casic.dcms.mvvm.model; + +import java.util.List; + +public class CaseSearchResultBean { + + private int code; + private DataDTO data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataDTO getData() { + return data; + } + + public void setData(DataDTO data) { + this.data = data; + } + + 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 static class DataDTO { + private List rows; + private int total; + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public static class RowsDTO { + private int isPostpone; + private String description; + private String createUserName; + private int source; + private String eorcName; + private String casetypeDetailName; + private String remainingTime; + private String casetypeName; + private String processId; + private int caseState; + private String id; + private String reportSupervisorId; + private String fieldintro; + private String lat; + private String caseStateName; + private String lng; + private String isOvertime; + private String currRoleName; + private String casetypeDetailCode; + private String onedeptid; + private String eorc; + private String currRoleId; + private String caseid; + private String casetypeCode; + private String createUser; + private String nodeLimittime; + private String sourceName; + private String reportTime; + + public int getIsPostpone() { + return isPostpone; + } + + public void setIsPostpone(int isPostpone) { + this.isPostpone = isPostpone; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public int getSource() { + return source; + } + + public void setSource(int source) { + this.source = source; + } + + public String getEorcName() { + return eorcName; + } + + public void setEorcName(String eorcName) { + this.eorcName = eorcName; + } + + public String getCasetypeDetailName() { + return casetypeDetailName; + } + + public void setCasetypeDetailName(String casetypeDetailName) { + this.casetypeDetailName = casetypeDetailName; + } + + public String getRemainingTime() { + return remainingTime; + } + + public void setRemainingTime(String remainingTime) { + this.remainingTime = remainingTime; + } + + public String getCasetypeName() { + return casetypeName; + } + + public void setCasetypeName(String casetypeName) { + this.casetypeName = casetypeName; + } + + public String getProcessId() { + return processId; + } + + public void setProcessId(String processId) { + this.processId = processId; + } + + public int getCaseState() { + return caseState; + } + + public void setCaseState(int caseState) { + this.caseState = caseState; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getReportSupervisorId() { + return reportSupervisorId; + } + + public void setReportSupervisorId(String reportSupervisorId) { + this.reportSupervisorId = reportSupervisorId; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getLat() { + return lat; + } + + public void setLat(String lat) { + this.lat = lat; + } + + public String getCaseStateName() { + return caseStateName; + } + + public void setCaseStateName(String caseStateName) { + this.caseStateName = caseStateName; + } + + public String getLng() { + return lng; + } + + public void setLng(String lng) { + this.lng = lng; + } + + public String getIsOvertime() { + return isOvertime; + } + + public void setIsOvertime(String isOvertime) { + this.isOvertime = isOvertime; + } + + public String getCurrRoleName() { + return currRoleName; + } + + public void setCurrRoleName(String currRoleName) { + this.currRoleName = currRoleName; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getOnedeptid() { + return onedeptid; + } + + public void setOnedeptid(String onedeptid) { + this.onedeptid = onedeptid; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCurrRoleId() { + return currRoleId; + } + + public void setCurrRoleId(String currRoleId) { + this.currRoleId = currRoleId; + } + + public String getCaseid() { + return caseid; + } + + public void setCaseid(String caseid) { + this.caseid = caseid; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getNodeLimittime() { + return nodeLimittime; + } + + public void setNodeLimittime(String nodeLimittime) { + this.nodeLimittime = nodeLimittime; + } + + public String getSourceName() { + return sourceName; + } + + public void setSourceName(String sourceName) { + this.sourceName = sourceName; + } + + public String getReportTime() { + return reportTime; + } + + public void setReportTime(String reportTime) { + this.reportTime = reportTime; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/CaseListResultActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/CaseListResultActivity.java deleted file mode 100644 index 3cf287f..0000000 --- a/app/src/main/java/com/casic/dcms/mvvm/view/CaseListResultActivity.java +++ /dev/null @@ -1,170 +0,0 @@ -package com.casic.dcms.mvvm.view; - -import android.content.Context; -import android.os.Handler; -import android.view.View; - -import androidx.annotation.NonNull; -import androidx.core.content.ContextCompat; -import androidx.lifecycle.Observer; -import androidx.lifecycle.ViewModelProvider; - -import com.casic.dcms.R; -import com.casic.dcms.adapter.CaseListResultAdapter; -import com.casic.dcms.databinding.ActivityCaseListBinding; -import com.casic.dcms.mvvm.model.CaseListResultBean; -import com.casic.dcms.mvvm.vm.CaseViewModel; -import com.casic.dcms.utils.OtherUtils; -import com.gyf.immersionbar.ImmersionBar; -import com.pengxh.androidx.lite.base.AndroidxBaseActivity; -import com.pengxh.androidx.lite.utils.ContextUtil; -import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil; -import com.pengxh.androidx.lite.utils.WeakReferenceHandler; -import com.pengxh.androidx.lite.vm.LoadState; -import com.pengxh.androidx.lite.widget.EasyToast; -import com.scwang.smartrefresh.layout.api.RefreshLayout; -import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; -import com.scwang.smartrefresh.layout.listener.OnRefreshListener; - -import java.util.ArrayList; -import java.util.List; - -public class CaseListResultActivity extends AndroidxBaseActivity { - - private final Context context = this; - private WeakReferenceHandler weakReferenceHandler; - private CaseViewModel caseViewModel; - private CaseListResultAdapter adapter; - private String typeCode; - private String typeDetailCode; - private String caseState; - private String startTime; - private String endTime; - private String eorc; - private int pageIndex = 1; - private List dataBeans = new ArrayList<>(); - private boolean isRefresh = false; - private boolean isLoadMore = false; - - @Override - protected void setupTopBarLayout() { - ImmerseStatusBarUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); - ImmersionBar.with(this).statusBarDarkFont(false).init(); - - viewBinding.titleBarLayout.titleView.setText("查询结果"); - viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish()); - } - - @Override - protected void initData() { - weakReferenceHandler = new WeakReferenceHandler(callback); - caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); - - eorc = getIntent().getStringExtra("eorc"); - typeCode = getIntent().getStringExtra("typeCode"); - typeDetailCode = getIntent().getStringExtra("typeDetailCode"); - caseState = getIntent().getStringExtra("caseState"); - startTime = getIntent().getStringExtra("startTime"); - endTime = getIntent().getStringExtra("endTime"); - obtainSearchResult(); - } - - private void obtainSearchResult() { - //加载第一页 - caseViewModel.searchCase(eorc, typeCode, typeDetailCode, caseState, startTime, endTime, "0", pageIndex); - } - - @Override - protected void initEvent() { - viewBinding.refreshLayout.setOnRefreshListener(new OnRefreshListener() { - @Override - public void onRefresh(@NonNull RefreshLayout refreshLayout) { - isRefresh = true; - //刷新之后页码重置 - pageIndex = 1; - obtainSearchResult(); - } - }); - viewBinding.refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { - @Override - public void onLoadMore(@NonNull RefreshLayout refreshLayout) { - isLoadMore = true; - pageIndex++; - obtainSearchResult(); - } - }); - - caseViewModel.searchResultModel.observe(this, new Observer() { - @Override - public void onChanged(CaseListResultBean resultBean) { - if (resultBean.getCode() == 200) { - List dataRows = resultBean.getData().getRows(); - if (isRefresh) { - dataBeans.clear(); //下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; - viewBinding.refreshLayout.finishRefresh(); - isRefresh = false; - } else if (isLoadMore) { - if (dataRows.size() == 0) { - EasyToast.show(context, "到底了,别拉了"); - } - dataBeans.addAll(dataRows); - viewBinding.refreshLayout.finishLoadMore(); - isLoadMore = false; - } else { - dataBeans = dataRows; - } - //更新RecyclerView - weakReferenceHandler.sendEmptyMessage(20210425); - } - } - }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - OtherUtils.showLoadingDialog(context, "案卷查询中,请稍后"); - } else { - OtherUtils.dismissLoadingDialog(); - } - } - }); - } - - /** - * 弱应用Handler,防止内存泄漏 - */ - private final Handler.Callback callback = msg -> { - if (msg.what == 20210425) { - if (isRefresh || isLoadMore) { - adapter.notifyDataSetChanged(); - } else { - //首次加载数据 - if (dataBeans.size() == 0) { - viewBinding.emptyView.show(false, "抱歉,没有查到符合您规定条件的案卷", null, "", new View.OnClickListener() { - @Override - public void onClick(View v) { - pageIndex = 1; - obtainSearchResult(); - } - }); - } else { - viewBinding.emptyView.hide(); - adapter = new CaseListResultAdapter(context, dataBeans); - viewBinding.caseRecyclerView.setAdapter(adapter); - adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - ContextUtil.navigatePageTo( - context, - CaseDetailActivity.class, - dataBeans.get(position).getId() - ); - } - }); - } - } - } - return true; - }; -} \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 4c01f54..53acf2f 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -27,6 +27,7 @@ + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index eb654a2..d087ae2 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -69,7 +69,7 @@ - + diff --git a/app/src/main/java/com/casic/dcms/adapter/CaseListResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CaseListResultAdapter.java deleted file mode 100644 index a051fbf..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/CaseListResultAdapter.java +++ /dev/null @@ -1,92 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.text.TextUtils; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.mvvm.model.CaseListResultBean; -import com.casic.dcms.utils.StringHelper; - -import java.util.List; - -public class CaseListResultAdapter extends RecyclerView.Adapter { - - private final List dataRows; - private final LayoutInflater layoutInflater; - - public CaseListResultAdapter(Context context, List dataRows) { - this.dataRows = dataRows; - layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - View view = layoutInflater.inflate(R.layout.item_case_rv, parent, false); - return new ItemViewHolder(view); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.bindView(dataRows.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataRows.size(); - } - - private OnItemClickListener clickListener; - - public interface OnItemClickListener { - void onClick(int position); - } - - public void setOnItemClickListener(OnItemClickListener onItemClickListener) { - this.clickListener = onItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - -// private final TextView leftTextView; - private final TextView caseTitleView; - private final TextView casePlaceView; - private final TextView caseTimeView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); -// leftTextView = itemView.findViewById(R.id.leftTextView); - caseTitleView = itemView.findViewById(R.id.caseTitleView); - casePlaceView = itemView.findViewById(R.id.casePlaceView); - caseTimeView = itemView.findViewById(R.id.caseTimeView); - } - - @SuppressLint("SetTextI18n") - void bindView(CaseListResultBean.DataBean.RowsBean rowsBean) { - String eorcName = rowsBean.getEorcName(); - if (TextUtils.isEmpty(eorcName)) { - eorcName = "未知"; - } -// leftTextView.setText(eorcName.substring(0, 1)); - caseTitleView.setText(StringHelper.filterString(rowsBean.getDescription())); - casePlaceView.setText("发生地点:" + StringHelper.filterString(rowsBean.getFieldintro())); - caseTimeView.setText("上报时间:" + rowsBean.getReportTime()); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java new file mode 100644 index 0000000..9e4a834 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java @@ -0,0 +1,96 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.mvvm.model.CaseSearchResultBean; +import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUIRadiusImageView; + +import java.util.List; + +public class CaseSearchResultAdapter extends RecyclerView.Adapter { + + private final Context context; + private final List dataRows; + private final LayoutInflater layoutInflater; + + public CaseSearchResultAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ItemViewHolder(layoutInflater.inflate(R.layout.item_case_rv, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { + holder.bindView(dataRows.get(position)); + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private final QMUIRadiusImageView caseImageView; + private final TextView caseTitleView; + private final TextView casePlaceView; + private final TextView caseTimeView; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + caseImageView = itemView.findViewById(R.id.caseImageView); + caseTitleView = itemView.findViewById(R.id.caseTitleView); + casePlaceView = itemView.findViewById(R.id.casePlaceView); + caseTimeView = itemView.findViewById(R.id.caseTimeView); + } + + void bindView(CaseSearchResultBean.DataDTO.RowsDTO rowsBean) { + //核实图片 +// String fileIdVerify = rowsBean.getFileIdVerify(); +// if (!TextUtils.isEmpty(fileIdVerify)) { +// String[] split = fileIdVerify.split(","); +// String firstImage = split[0]; +// if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) { +// Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView); +// } +// } + caseTitleView.setText(StringHelper.filterString(rowsBean.getDescription())); + casePlaceView.setText("发生地点:" + StringHelper.filterString(rowsBean.getFieldintro())); + caseTimeView.setText("上报时间:" + rowsBean.getReportTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvvm/model/CaseListResultBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/CaseListResultBean.java deleted file mode 100644 index 41b3016..0000000 --- a/app/src/main/java/com/casic/dcms/mvvm/model/CaseListResultBean.java +++ /dev/null @@ -1,303 +0,0 @@ -package com.casic.dcms.mvvm.model; - -import java.util.List; - -public class CaseListResultBean { - - private int code; - private DataBean data; - private String message; - private boolean success; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public DataBean getData() { - return data; - } - - public void setData(DataBean data) { - this.data = data; - } - - 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 static class DataBean { - - private int total; - private List rows; - - public int getTotal() { - return total; - } - - public void setTotal(int total) { - this.total = total; - } - - public List getRows() { - return rows; - } - - public void setRows(List rows) { - this.rows = rows; - } - - public static class RowsBean { - - private int isPostpone; - private String description; - private String createUserName; - private int source; - private String eorcName; - private String casetypeDetailName; - private String remainingTime; - private String casetypeName; - private String processId; - private int caseState; - private String id; - private String reportSupervisorId; - private String fieldintro; - private String lat; - private String caseStateName; - private String lng; - private String isOvertime; - private String casetypeDetailCode; - private String onedeptid; - private String eorc; - private String caseid; - private String casetypeCode; - private String createUser; - private String nodeLimittime; - private String sourceName; - private String reportTime; - - public int getIsPostpone() { - return isPostpone; - } - - public void setIsPostpone(int isPostpone) { - this.isPostpone = isPostpone; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public String getCreateUserName() { - return createUserName; - } - - public void setCreateUserName(String createUserName) { - this.createUserName = createUserName; - } - - public int getSource() { - return source; - } - - public void setSource(int source) { - this.source = source; - } - - public String getEorcName() { - return eorcName; - } - - public void setEorcName(String eorcName) { - this.eorcName = eorcName; - } - - public String getCasetypeDetailName() { - return casetypeDetailName; - } - - public void setCasetypeDetailName(String casetypeDetailName) { - this.casetypeDetailName = casetypeDetailName; - } - - public String getRemainingTime() { - return remainingTime; - } - - public void setRemainingTime(String remainingTime) { - this.remainingTime = remainingTime; - } - - public String getCasetypeName() { - return casetypeName; - } - - public void setCasetypeName(String casetypeName) { - this.casetypeName = casetypeName; - } - - public String getProcessId() { - return processId; - } - - public void setProcessId(String processId) { - this.processId = processId; - } - - public int getCaseState() { - return caseState; - } - - public void setCaseState(int caseState) { - this.caseState = caseState; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getReportSupervisorId() { - return reportSupervisorId; - } - - public void setReportSupervisorId(String reportSupervisorId) { - this.reportSupervisorId = reportSupervisorId; - } - - public String getFieldintro() { - return fieldintro; - } - - public void setFieldintro(String fieldintro) { - this.fieldintro = fieldintro; - } - - public String getLat() { - return lat; - } - - public void setLat(String lat) { - this.lat = lat; - } - - public String getCaseStateName() { - return caseStateName; - } - - public void setCaseStateName(String caseStateName) { - this.caseStateName = caseStateName; - } - - public String getLng() { - return lng; - } - - public void setLng(String lng) { - this.lng = lng; - } - - public String getIsOvertime() { - return isOvertime; - } - - public void setIsOvertime(String isOvertime) { - this.isOvertime = isOvertime; - } - - public String getCasetypeDetailCode() { - return casetypeDetailCode; - } - - public void setCasetypeDetailCode(String casetypeDetailCode) { - this.casetypeDetailCode = casetypeDetailCode; - } - - public String getOnedeptid() { - return onedeptid; - } - - public void setOnedeptid(String onedeptid) { - this.onedeptid = onedeptid; - } - - public String getEorc() { - return eorc; - } - - public void setEorc(String eorc) { - this.eorc = eorc; - } - - public String getCaseid() { - return caseid; - } - - public void setCaseid(String caseid) { - this.caseid = caseid; - } - - public String getCasetypeCode() { - return casetypeCode; - } - - public void setCasetypeCode(String casetypeCode) { - this.casetypeCode = casetypeCode; - } - - public String getCreateUser() { - return createUser; - } - - public void setCreateUser(String createUser) { - this.createUser = createUser; - } - - public String getNodeLimittime() { - return nodeLimittime; - } - - public void setNodeLimittime(String nodeLimittime) { - this.nodeLimittime = nodeLimittime; - } - - public String getSourceName() { - return sourceName; - } - - public void setSourceName(String sourceName) { - this.sourceName = sourceName; - } - - public String getReportTime() { - return reportTime; - } - - public void setReportTime(String reportTime) { - this.reportTime = reportTime; - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/mvvm/model/CaseSearchResultBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/CaseSearchResultBean.java new file mode 100644 index 0000000..4d62c22 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvvm/model/CaseSearchResultBean.java @@ -0,0 +1,319 @@ +package com.casic.dcms.mvvm.model; + +import java.util.List; + +public class CaseSearchResultBean { + + private int code; + private DataDTO data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataDTO getData() { + return data; + } + + public void setData(DataDTO data) { + this.data = data; + } + + 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 static class DataDTO { + private List rows; + private int total; + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public static class RowsDTO { + private int isPostpone; + private String description; + private String createUserName; + private int source; + private String eorcName; + private String casetypeDetailName; + private String remainingTime; + private String casetypeName; + private String processId; + private int caseState; + private String id; + private String reportSupervisorId; + private String fieldintro; + private String lat; + private String caseStateName; + private String lng; + private String isOvertime; + private String currRoleName; + private String casetypeDetailCode; + private String onedeptid; + private String eorc; + private String currRoleId; + private String caseid; + private String casetypeCode; + private String createUser; + private String nodeLimittime; + private String sourceName; + private String reportTime; + + public int getIsPostpone() { + return isPostpone; + } + + public void setIsPostpone(int isPostpone) { + this.isPostpone = isPostpone; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public int getSource() { + return source; + } + + public void setSource(int source) { + this.source = source; + } + + public String getEorcName() { + return eorcName; + } + + public void setEorcName(String eorcName) { + this.eorcName = eorcName; + } + + public String getCasetypeDetailName() { + return casetypeDetailName; + } + + public void setCasetypeDetailName(String casetypeDetailName) { + this.casetypeDetailName = casetypeDetailName; + } + + public String getRemainingTime() { + return remainingTime; + } + + public void setRemainingTime(String remainingTime) { + this.remainingTime = remainingTime; + } + + public String getCasetypeName() { + return casetypeName; + } + + public void setCasetypeName(String casetypeName) { + this.casetypeName = casetypeName; + } + + public String getProcessId() { + return processId; + } + + public void setProcessId(String processId) { + this.processId = processId; + } + + public int getCaseState() { + return caseState; + } + + public void setCaseState(int caseState) { + this.caseState = caseState; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getReportSupervisorId() { + return reportSupervisorId; + } + + public void setReportSupervisorId(String reportSupervisorId) { + this.reportSupervisorId = reportSupervisorId; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getLat() { + return lat; + } + + public void setLat(String lat) { + this.lat = lat; + } + + public String getCaseStateName() { + return caseStateName; + } + + public void setCaseStateName(String caseStateName) { + this.caseStateName = caseStateName; + } + + public String getLng() { + return lng; + } + + public void setLng(String lng) { + this.lng = lng; + } + + public String getIsOvertime() { + return isOvertime; + } + + public void setIsOvertime(String isOvertime) { + this.isOvertime = isOvertime; + } + + public String getCurrRoleName() { + return currRoleName; + } + + public void setCurrRoleName(String currRoleName) { + this.currRoleName = currRoleName; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getOnedeptid() { + return onedeptid; + } + + public void setOnedeptid(String onedeptid) { + this.onedeptid = onedeptid; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCurrRoleId() { + return currRoleId; + } + + public void setCurrRoleId(String currRoleId) { + this.currRoleId = currRoleId; + } + + public String getCaseid() { + return caseid; + } + + public void setCaseid(String caseid) { + this.caseid = caseid; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getNodeLimittime() { + return nodeLimittime; + } + + public void setNodeLimittime(String nodeLimittime) { + this.nodeLimittime = nodeLimittime; + } + + public String getSourceName() { + return sourceName; + } + + public void setSourceName(String sourceName) { + this.sourceName = sourceName; + } + + public String getReportTime() { + return reportTime; + } + + public void setReportTime(String reportTime) { + this.reportTime = reportTime; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/CaseListResultActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/CaseListResultActivity.java deleted file mode 100644 index 3cf287f..0000000 --- a/app/src/main/java/com/casic/dcms/mvvm/view/CaseListResultActivity.java +++ /dev/null @@ -1,170 +0,0 @@ -package com.casic.dcms.mvvm.view; - -import android.content.Context; -import android.os.Handler; -import android.view.View; - -import androidx.annotation.NonNull; -import androidx.core.content.ContextCompat; -import androidx.lifecycle.Observer; -import androidx.lifecycle.ViewModelProvider; - -import com.casic.dcms.R; -import com.casic.dcms.adapter.CaseListResultAdapter; -import com.casic.dcms.databinding.ActivityCaseListBinding; -import com.casic.dcms.mvvm.model.CaseListResultBean; -import com.casic.dcms.mvvm.vm.CaseViewModel; -import com.casic.dcms.utils.OtherUtils; -import com.gyf.immersionbar.ImmersionBar; -import com.pengxh.androidx.lite.base.AndroidxBaseActivity; -import com.pengxh.androidx.lite.utils.ContextUtil; -import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil; -import com.pengxh.androidx.lite.utils.WeakReferenceHandler; -import com.pengxh.androidx.lite.vm.LoadState; -import com.pengxh.androidx.lite.widget.EasyToast; -import com.scwang.smartrefresh.layout.api.RefreshLayout; -import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; -import com.scwang.smartrefresh.layout.listener.OnRefreshListener; - -import java.util.ArrayList; -import java.util.List; - -public class CaseListResultActivity extends AndroidxBaseActivity { - - private final Context context = this; - private WeakReferenceHandler weakReferenceHandler; - private CaseViewModel caseViewModel; - private CaseListResultAdapter adapter; - private String typeCode; - private String typeDetailCode; - private String caseState; - private String startTime; - private String endTime; - private String eorc; - private int pageIndex = 1; - private List dataBeans = new ArrayList<>(); - private boolean isRefresh = false; - private boolean isLoadMore = false; - - @Override - protected void setupTopBarLayout() { - ImmerseStatusBarUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); - ImmersionBar.with(this).statusBarDarkFont(false).init(); - - viewBinding.titleBarLayout.titleView.setText("查询结果"); - viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish()); - } - - @Override - protected void initData() { - weakReferenceHandler = new WeakReferenceHandler(callback); - caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); - - eorc = getIntent().getStringExtra("eorc"); - typeCode = getIntent().getStringExtra("typeCode"); - typeDetailCode = getIntent().getStringExtra("typeDetailCode"); - caseState = getIntent().getStringExtra("caseState"); - startTime = getIntent().getStringExtra("startTime"); - endTime = getIntent().getStringExtra("endTime"); - obtainSearchResult(); - } - - private void obtainSearchResult() { - //加载第一页 - caseViewModel.searchCase(eorc, typeCode, typeDetailCode, caseState, startTime, endTime, "0", pageIndex); - } - - @Override - protected void initEvent() { - viewBinding.refreshLayout.setOnRefreshListener(new OnRefreshListener() { - @Override - public void onRefresh(@NonNull RefreshLayout refreshLayout) { - isRefresh = true; - //刷新之后页码重置 - pageIndex = 1; - obtainSearchResult(); - } - }); - viewBinding.refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { - @Override - public void onLoadMore(@NonNull RefreshLayout refreshLayout) { - isLoadMore = true; - pageIndex++; - obtainSearchResult(); - } - }); - - caseViewModel.searchResultModel.observe(this, new Observer() { - @Override - public void onChanged(CaseListResultBean resultBean) { - if (resultBean.getCode() == 200) { - List dataRows = resultBean.getData().getRows(); - if (isRefresh) { - dataBeans.clear(); //下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; - viewBinding.refreshLayout.finishRefresh(); - isRefresh = false; - } else if (isLoadMore) { - if (dataRows.size() == 0) { - EasyToast.show(context, "到底了,别拉了"); - } - dataBeans.addAll(dataRows); - viewBinding.refreshLayout.finishLoadMore(); - isLoadMore = false; - } else { - dataBeans = dataRows; - } - //更新RecyclerView - weakReferenceHandler.sendEmptyMessage(20210425); - } - } - }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - OtherUtils.showLoadingDialog(context, "案卷查询中,请稍后"); - } else { - OtherUtils.dismissLoadingDialog(); - } - } - }); - } - - /** - * 弱应用Handler,防止内存泄漏 - */ - private final Handler.Callback callback = msg -> { - if (msg.what == 20210425) { - if (isRefresh || isLoadMore) { - adapter.notifyDataSetChanged(); - } else { - //首次加载数据 - if (dataBeans.size() == 0) { - viewBinding.emptyView.show(false, "抱歉,没有查到符合您规定条件的案卷", null, "", new View.OnClickListener() { - @Override - public void onClick(View v) { - pageIndex = 1; - obtainSearchResult(); - } - }); - } else { - viewBinding.emptyView.hide(); - adapter = new CaseListResultAdapter(context, dataBeans); - viewBinding.caseRecyclerView.setAdapter(adapter); - adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - ContextUtil.navigatePageTo( - context, - CaseDetailActivity.class, - dataBeans.get(position).getId() - ); - } - }); - } - } - } - return true; - }; -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/CaseSearchResultActivity.java new file mode 100644 index 0000000..12ed207 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvvm/view/CaseSearchResultActivity.java @@ -0,0 +1,172 @@ +package com.casic.dcms.mvvm.view; + +import android.content.Context; +import android.os.Handler; +import android.view.View; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.lifecycle.Observer; +import androidx.lifecycle.ViewModelProvider; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.CaseSearchResultAdapter; +import com.casic.dcms.databinding.ActivityCaseListBinding; +import com.casic.dcms.mvvm.model.CaseSearchResultBean; +import com.casic.dcms.mvvm.vm.CaseViewModel; +import com.casic.dcms.utils.OtherUtils; +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.base.AndroidxBaseActivity; +import com.pengxh.androidx.lite.utils.ContextUtil; +import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; +import com.pengxh.androidx.lite.widget.EasyToast; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.util.ArrayList; +import java.util.List; + +public class CaseSearchResultActivity extends AndroidxBaseActivity { + + private final Context context = this; + private WeakReferenceHandler weakReferenceHandler; + private CaseViewModel caseViewModel; + private CaseSearchResultAdapter adapter; + private String typeCode; + private String typeDetailCode; + private String caseState; + private String startTime; + private String endTime; + private String eorc; + private int pageIndex = 1; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh = false; + private boolean isLoadMore = false; + + @Override + protected void setupTopBarLayout() { + ImmerseStatusBarUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + + viewBinding.titleBarLayout.titleView.setText("查询结果"); + viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish()); + } + + @Override + protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); + + eorc = getIntent().getStringExtra("eorc"); + typeCode = getIntent().getStringExtra("typeCode"); + typeDetailCode = getIntent().getStringExtra("typeDetailCode"); + caseState = getIntent().getStringExtra("caseState"); + startTime = getIntent().getStringExtra("startTime"); + endTime = getIntent().getStringExtra("endTime"); + obtainSearchResult(); + } + + private void obtainSearchResult() { + //加载第一页 + caseViewModel.searchCase(eorc, typeCode, typeDetailCode, caseState, startTime, endTime, "0", pageIndex); + } + + @Override + protected void initEvent() { + viewBinding.refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + obtainSearchResult(); + } + }); + viewBinding.refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + obtainSearchResult(); + } + }); + + caseViewModel.searchResultModel.observe(this, new Observer() { + @Override + public void onChanged(CaseSearchResultBean resultBean) { + if (resultBean.getCode() == 200) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear(); //下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + viewBinding.refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + EasyToast.show(context, "到底了,别拉了"); + } + dataBeans.addAll(dataRows); + viewBinding.refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + //更新RecyclerView + weakReferenceHandler.sendEmptyMessage(20210425); + } + } + }); + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (!isRefresh && !isLoadMore) { + if (loadState == LoadState.Loading) { + OtherUtils.showLoadingDialog(context, "案卷查询中,请稍后"); + } else { + OtherUtils.dismissLoadingDialog(); + } + } + } + }); + } + + /** + * 弱应用Handler,防止内存泄漏 + */ + private final Handler.Callback callback = msg -> { + if (msg.what == 20210425) { + if (isRefresh || isLoadMore) { + adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (dataBeans.size() == 0) { + viewBinding.emptyView.show(false, "抱歉,没有查到符合您规定条件的案卷", null, "", new View.OnClickListener() { + @Override + public void onClick(View v) { + pageIndex = 1; + obtainSearchResult(); + } + }); + } else { + viewBinding.emptyView.hide(); + adapter = new CaseSearchResultAdapter(context, dataBeans); + viewBinding.caseRecyclerView.setAdapter(adapter); + adapter.setOnItemClickListener(new CaseSearchResultAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + ContextUtil.navigatePageTo( + context, + CaseDetailActivity.class, + dataBeans.get(position).getId() + ); + } + }); + } + } + } + return true; + }; +} \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 4c01f54..53acf2f 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -27,6 +27,7 @@ + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index eb654a2..d087ae2 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -69,7 +69,7 @@ - + diff --git a/app/src/main/java/com/casic/dcms/adapter/CaseListResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CaseListResultAdapter.java deleted file mode 100644 index a051fbf..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/CaseListResultAdapter.java +++ /dev/null @@ -1,92 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.text.TextUtils; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.mvvm.model.CaseListResultBean; -import com.casic.dcms.utils.StringHelper; - -import java.util.List; - -public class CaseListResultAdapter extends RecyclerView.Adapter { - - private final List dataRows; - private final LayoutInflater layoutInflater; - - public CaseListResultAdapter(Context context, List dataRows) { - this.dataRows = dataRows; - layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - View view = layoutInflater.inflate(R.layout.item_case_rv, parent, false); - return new ItemViewHolder(view); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.bindView(dataRows.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataRows.size(); - } - - private OnItemClickListener clickListener; - - public interface OnItemClickListener { - void onClick(int position); - } - - public void setOnItemClickListener(OnItemClickListener onItemClickListener) { - this.clickListener = onItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - -// private final TextView leftTextView; - private final TextView caseTitleView; - private final TextView casePlaceView; - private final TextView caseTimeView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); -// leftTextView = itemView.findViewById(R.id.leftTextView); - caseTitleView = itemView.findViewById(R.id.caseTitleView); - casePlaceView = itemView.findViewById(R.id.casePlaceView); - caseTimeView = itemView.findViewById(R.id.caseTimeView); - } - - @SuppressLint("SetTextI18n") - void bindView(CaseListResultBean.DataBean.RowsBean rowsBean) { - String eorcName = rowsBean.getEorcName(); - if (TextUtils.isEmpty(eorcName)) { - eorcName = "未知"; - } -// leftTextView.setText(eorcName.substring(0, 1)); - caseTitleView.setText(StringHelper.filterString(rowsBean.getDescription())); - casePlaceView.setText("发生地点:" + StringHelper.filterString(rowsBean.getFieldintro())); - caseTimeView.setText("上报时间:" + rowsBean.getReportTime()); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java new file mode 100644 index 0000000..9e4a834 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java @@ -0,0 +1,96 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.mvvm.model.CaseSearchResultBean; +import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUIRadiusImageView; + +import java.util.List; + +public class CaseSearchResultAdapter extends RecyclerView.Adapter { + + private final Context context; + private final List dataRows; + private final LayoutInflater layoutInflater; + + public CaseSearchResultAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ItemViewHolder(layoutInflater.inflate(R.layout.item_case_rv, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { + holder.bindView(dataRows.get(position)); + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private final QMUIRadiusImageView caseImageView; + private final TextView caseTitleView; + private final TextView casePlaceView; + private final TextView caseTimeView; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + caseImageView = itemView.findViewById(R.id.caseImageView); + caseTitleView = itemView.findViewById(R.id.caseTitleView); + casePlaceView = itemView.findViewById(R.id.casePlaceView); + caseTimeView = itemView.findViewById(R.id.caseTimeView); + } + + void bindView(CaseSearchResultBean.DataDTO.RowsDTO rowsBean) { + //核实图片 +// String fileIdVerify = rowsBean.getFileIdVerify(); +// if (!TextUtils.isEmpty(fileIdVerify)) { +// String[] split = fileIdVerify.split(","); +// String firstImage = split[0]; +// if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) { +// Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView); +// } +// } + caseTitleView.setText(StringHelper.filterString(rowsBean.getDescription())); + casePlaceView.setText("发生地点:" + StringHelper.filterString(rowsBean.getFieldintro())); + caseTimeView.setText("上报时间:" + rowsBean.getReportTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvvm/model/CaseListResultBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/CaseListResultBean.java deleted file mode 100644 index 41b3016..0000000 --- a/app/src/main/java/com/casic/dcms/mvvm/model/CaseListResultBean.java +++ /dev/null @@ -1,303 +0,0 @@ -package com.casic.dcms.mvvm.model; - -import java.util.List; - -public class CaseListResultBean { - - private int code; - private DataBean data; - private String message; - private boolean success; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public DataBean getData() { - return data; - } - - public void setData(DataBean data) { - this.data = data; - } - - 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 static class DataBean { - - private int total; - private List rows; - - public int getTotal() { - return total; - } - - public void setTotal(int total) { - this.total = total; - } - - public List getRows() { - return rows; - } - - public void setRows(List rows) { - this.rows = rows; - } - - public static class RowsBean { - - private int isPostpone; - private String description; - private String createUserName; - private int source; - private String eorcName; - private String casetypeDetailName; - private String remainingTime; - private String casetypeName; - private String processId; - private int caseState; - private String id; - private String reportSupervisorId; - private String fieldintro; - private String lat; - private String caseStateName; - private String lng; - private String isOvertime; - private String casetypeDetailCode; - private String onedeptid; - private String eorc; - private String caseid; - private String casetypeCode; - private String createUser; - private String nodeLimittime; - private String sourceName; - private String reportTime; - - public int getIsPostpone() { - return isPostpone; - } - - public void setIsPostpone(int isPostpone) { - this.isPostpone = isPostpone; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public String getCreateUserName() { - return createUserName; - } - - public void setCreateUserName(String createUserName) { - this.createUserName = createUserName; - } - - public int getSource() { - return source; - } - - public void setSource(int source) { - this.source = source; - } - - public String getEorcName() { - return eorcName; - } - - public void setEorcName(String eorcName) { - this.eorcName = eorcName; - } - - public String getCasetypeDetailName() { - return casetypeDetailName; - } - - public void setCasetypeDetailName(String casetypeDetailName) { - this.casetypeDetailName = casetypeDetailName; - } - - public String getRemainingTime() { - return remainingTime; - } - - public void setRemainingTime(String remainingTime) { - this.remainingTime = remainingTime; - } - - public String getCasetypeName() { - return casetypeName; - } - - public void setCasetypeName(String casetypeName) { - this.casetypeName = casetypeName; - } - - public String getProcessId() { - return processId; - } - - public void setProcessId(String processId) { - this.processId = processId; - } - - public int getCaseState() { - return caseState; - } - - public void setCaseState(int caseState) { - this.caseState = caseState; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getReportSupervisorId() { - return reportSupervisorId; - } - - public void setReportSupervisorId(String reportSupervisorId) { - this.reportSupervisorId = reportSupervisorId; - } - - public String getFieldintro() { - return fieldintro; - } - - public void setFieldintro(String fieldintro) { - this.fieldintro = fieldintro; - } - - public String getLat() { - return lat; - } - - public void setLat(String lat) { - this.lat = lat; - } - - public String getCaseStateName() { - return caseStateName; - } - - public void setCaseStateName(String caseStateName) { - this.caseStateName = caseStateName; - } - - public String getLng() { - return lng; - } - - public void setLng(String lng) { - this.lng = lng; - } - - public String getIsOvertime() { - return isOvertime; - } - - public void setIsOvertime(String isOvertime) { - this.isOvertime = isOvertime; - } - - public String getCasetypeDetailCode() { - return casetypeDetailCode; - } - - public void setCasetypeDetailCode(String casetypeDetailCode) { - this.casetypeDetailCode = casetypeDetailCode; - } - - public String getOnedeptid() { - return onedeptid; - } - - public void setOnedeptid(String onedeptid) { - this.onedeptid = onedeptid; - } - - public String getEorc() { - return eorc; - } - - public void setEorc(String eorc) { - this.eorc = eorc; - } - - public String getCaseid() { - return caseid; - } - - public void setCaseid(String caseid) { - this.caseid = caseid; - } - - public String getCasetypeCode() { - return casetypeCode; - } - - public void setCasetypeCode(String casetypeCode) { - this.casetypeCode = casetypeCode; - } - - public String getCreateUser() { - return createUser; - } - - public void setCreateUser(String createUser) { - this.createUser = createUser; - } - - public String getNodeLimittime() { - return nodeLimittime; - } - - public void setNodeLimittime(String nodeLimittime) { - this.nodeLimittime = nodeLimittime; - } - - public String getSourceName() { - return sourceName; - } - - public void setSourceName(String sourceName) { - this.sourceName = sourceName; - } - - public String getReportTime() { - return reportTime; - } - - public void setReportTime(String reportTime) { - this.reportTime = reportTime; - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/mvvm/model/CaseSearchResultBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/CaseSearchResultBean.java new file mode 100644 index 0000000..4d62c22 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvvm/model/CaseSearchResultBean.java @@ -0,0 +1,319 @@ +package com.casic.dcms.mvvm.model; + +import java.util.List; + +public class CaseSearchResultBean { + + private int code; + private DataDTO data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataDTO getData() { + return data; + } + + public void setData(DataDTO data) { + this.data = data; + } + + 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 static class DataDTO { + private List rows; + private int total; + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public static class RowsDTO { + private int isPostpone; + private String description; + private String createUserName; + private int source; + private String eorcName; + private String casetypeDetailName; + private String remainingTime; + private String casetypeName; + private String processId; + private int caseState; + private String id; + private String reportSupervisorId; + private String fieldintro; + private String lat; + private String caseStateName; + private String lng; + private String isOvertime; + private String currRoleName; + private String casetypeDetailCode; + private String onedeptid; + private String eorc; + private String currRoleId; + private String caseid; + private String casetypeCode; + private String createUser; + private String nodeLimittime; + private String sourceName; + private String reportTime; + + public int getIsPostpone() { + return isPostpone; + } + + public void setIsPostpone(int isPostpone) { + this.isPostpone = isPostpone; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public int getSource() { + return source; + } + + public void setSource(int source) { + this.source = source; + } + + public String getEorcName() { + return eorcName; + } + + public void setEorcName(String eorcName) { + this.eorcName = eorcName; + } + + public String getCasetypeDetailName() { + return casetypeDetailName; + } + + public void setCasetypeDetailName(String casetypeDetailName) { + this.casetypeDetailName = casetypeDetailName; + } + + public String getRemainingTime() { + return remainingTime; + } + + public void setRemainingTime(String remainingTime) { + this.remainingTime = remainingTime; + } + + public String getCasetypeName() { + return casetypeName; + } + + public void setCasetypeName(String casetypeName) { + this.casetypeName = casetypeName; + } + + public String getProcessId() { + return processId; + } + + public void setProcessId(String processId) { + this.processId = processId; + } + + public int getCaseState() { + return caseState; + } + + public void setCaseState(int caseState) { + this.caseState = caseState; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getReportSupervisorId() { + return reportSupervisorId; + } + + public void setReportSupervisorId(String reportSupervisorId) { + this.reportSupervisorId = reportSupervisorId; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getLat() { + return lat; + } + + public void setLat(String lat) { + this.lat = lat; + } + + public String getCaseStateName() { + return caseStateName; + } + + public void setCaseStateName(String caseStateName) { + this.caseStateName = caseStateName; + } + + public String getLng() { + return lng; + } + + public void setLng(String lng) { + this.lng = lng; + } + + public String getIsOvertime() { + return isOvertime; + } + + public void setIsOvertime(String isOvertime) { + this.isOvertime = isOvertime; + } + + public String getCurrRoleName() { + return currRoleName; + } + + public void setCurrRoleName(String currRoleName) { + this.currRoleName = currRoleName; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getOnedeptid() { + return onedeptid; + } + + public void setOnedeptid(String onedeptid) { + this.onedeptid = onedeptid; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCurrRoleId() { + return currRoleId; + } + + public void setCurrRoleId(String currRoleId) { + this.currRoleId = currRoleId; + } + + public String getCaseid() { + return caseid; + } + + public void setCaseid(String caseid) { + this.caseid = caseid; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getNodeLimittime() { + return nodeLimittime; + } + + public void setNodeLimittime(String nodeLimittime) { + this.nodeLimittime = nodeLimittime; + } + + public String getSourceName() { + return sourceName; + } + + public void setSourceName(String sourceName) { + this.sourceName = sourceName; + } + + public String getReportTime() { + return reportTime; + } + + public void setReportTime(String reportTime) { + this.reportTime = reportTime; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/CaseListResultActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/CaseListResultActivity.java deleted file mode 100644 index 3cf287f..0000000 --- a/app/src/main/java/com/casic/dcms/mvvm/view/CaseListResultActivity.java +++ /dev/null @@ -1,170 +0,0 @@ -package com.casic.dcms.mvvm.view; - -import android.content.Context; -import android.os.Handler; -import android.view.View; - -import androidx.annotation.NonNull; -import androidx.core.content.ContextCompat; -import androidx.lifecycle.Observer; -import androidx.lifecycle.ViewModelProvider; - -import com.casic.dcms.R; -import com.casic.dcms.adapter.CaseListResultAdapter; -import com.casic.dcms.databinding.ActivityCaseListBinding; -import com.casic.dcms.mvvm.model.CaseListResultBean; -import com.casic.dcms.mvvm.vm.CaseViewModel; -import com.casic.dcms.utils.OtherUtils; -import com.gyf.immersionbar.ImmersionBar; -import com.pengxh.androidx.lite.base.AndroidxBaseActivity; -import com.pengxh.androidx.lite.utils.ContextUtil; -import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil; -import com.pengxh.androidx.lite.utils.WeakReferenceHandler; -import com.pengxh.androidx.lite.vm.LoadState; -import com.pengxh.androidx.lite.widget.EasyToast; -import com.scwang.smartrefresh.layout.api.RefreshLayout; -import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; -import com.scwang.smartrefresh.layout.listener.OnRefreshListener; - -import java.util.ArrayList; -import java.util.List; - -public class CaseListResultActivity extends AndroidxBaseActivity { - - private final Context context = this; - private WeakReferenceHandler weakReferenceHandler; - private CaseViewModel caseViewModel; - private CaseListResultAdapter adapter; - private String typeCode; - private String typeDetailCode; - private String caseState; - private String startTime; - private String endTime; - private String eorc; - private int pageIndex = 1; - private List dataBeans = new ArrayList<>(); - private boolean isRefresh = false; - private boolean isLoadMore = false; - - @Override - protected void setupTopBarLayout() { - ImmerseStatusBarUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); - ImmersionBar.with(this).statusBarDarkFont(false).init(); - - viewBinding.titleBarLayout.titleView.setText("查询结果"); - viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish()); - } - - @Override - protected void initData() { - weakReferenceHandler = new WeakReferenceHandler(callback); - caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); - - eorc = getIntent().getStringExtra("eorc"); - typeCode = getIntent().getStringExtra("typeCode"); - typeDetailCode = getIntent().getStringExtra("typeDetailCode"); - caseState = getIntent().getStringExtra("caseState"); - startTime = getIntent().getStringExtra("startTime"); - endTime = getIntent().getStringExtra("endTime"); - obtainSearchResult(); - } - - private void obtainSearchResult() { - //加载第一页 - caseViewModel.searchCase(eorc, typeCode, typeDetailCode, caseState, startTime, endTime, "0", pageIndex); - } - - @Override - protected void initEvent() { - viewBinding.refreshLayout.setOnRefreshListener(new OnRefreshListener() { - @Override - public void onRefresh(@NonNull RefreshLayout refreshLayout) { - isRefresh = true; - //刷新之后页码重置 - pageIndex = 1; - obtainSearchResult(); - } - }); - viewBinding.refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { - @Override - public void onLoadMore(@NonNull RefreshLayout refreshLayout) { - isLoadMore = true; - pageIndex++; - obtainSearchResult(); - } - }); - - caseViewModel.searchResultModel.observe(this, new Observer() { - @Override - public void onChanged(CaseListResultBean resultBean) { - if (resultBean.getCode() == 200) { - List dataRows = resultBean.getData().getRows(); - if (isRefresh) { - dataBeans.clear(); //下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; - viewBinding.refreshLayout.finishRefresh(); - isRefresh = false; - } else if (isLoadMore) { - if (dataRows.size() == 0) { - EasyToast.show(context, "到底了,别拉了"); - } - dataBeans.addAll(dataRows); - viewBinding.refreshLayout.finishLoadMore(); - isLoadMore = false; - } else { - dataBeans = dataRows; - } - //更新RecyclerView - weakReferenceHandler.sendEmptyMessage(20210425); - } - } - }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - OtherUtils.showLoadingDialog(context, "案卷查询中,请稍后"); - } else { - OtherUtils.dismissLoadingDialog(); - } - } - }); - } - - /** - * 弱应用Handler,防止内存泄漏 - */ - private final Handler.Callback callback = msg -> { - if (msg.what == 20210425) { - if (isRefresh || isLoadMore) { - adapter.notifyDataSetChanged(); - } else { - //首次加载数据 - if (dataBeans.size() == 0) { - viewBinding.emptyView.show(false, "抱歉,没有查到符合您规定条件的案卷", null, "", new View.OnClickListener() { - @Override - public void onClick(View v) { - pageIndex = 1; - obtainSearchResult(); - } - }); - } else { - viewBinding.emptyView.hide(); - adapter = new CaseListResultAdapter(context, dataBeans); - viewBinding.caseRecyclerView.setAdapter(adapter); - adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - ContextUtil.navigatePageTo( - context, - CaseDetailActivity.class, - dataBeans.get(position).getId() - ); - } - }); - } - } - } - return true; - }; -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/CaseSearchResultActivity.java new file mode 100644 index 0000000..12ed207 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvvm/view/CaseSearchResultActivity.java @@ -0,0 +1,172 @@ +package com.casic.dcms.mvvm.view; + +import android.content.Context; +import android.os.Handler; +import android.view.View; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.lifecycle.Observer; +import androidx.lifecycle.ViewModelProvider; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.CaseSearchResultAdapter; +import com.casic.dcms.databinding.ActivityCaseListBinding; +import com.casic.dcms.mvvm.model.CaseSearchResultBean; +import com.casic.dcms.mvvm.vm.CaseViewModel; +import com.casic.dcms.utils.OtherUtils; +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.base.AndroidxBaseActivity; +import com.pengxh.androidx.lite.utils.ContextUtil; +import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; +import com.pengxh.androidx.lite.widget.EasyToast; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.util.ArrayList; +import java.util.List; + +public class CaseSearchResultActivity extends AndroidxBaseActivity { + + private final Context context = this; + private WeakReferenceHandler weakReferenceHandler; + private CaseViewModel caseViewModel; + private CaseSearchResultAdapter adapter; + private String typeCode; + private String typeDetailCode; + private String caseState; + private String startTime; + private String endTime; + private String eorc; + private int pageIndex = 1; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh = false; + private boolean isLoadMore = false; + + @Override + protected void setupTopBarLayout() { + ImmerseStatusBarUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + + viewBinding.titleBarLayout.titleView.setText("查询结果"); + viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish()); + } + + @Override + protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); + + eorc = getIntent().getStringExtra("eorc"); + typeCode = getIntent().getStringExtra("typeCode"); + typeDetailCode = getIntent().getStringExtra("typeDetailCode"); + caseState = getIntent().getStringExtra("caseState"); + startTime = getIntent().getStringExtra("startTime"); + endTime = getIntent().getStringExtra("endTime"); + obtainSearchResult(); + } + + private void obtainSearchResult() { + //加载第一页 + caseViewModel.searchCase(eorc, typeCode, typeDetailCode, caseState, startTime, endTime, "0", pageIndex); + } + + @Override + protected void initEvent() { + viewBinding.refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + obtainSearchResult(); + } + }); + viewBinding.refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + obtainSearchResult(); + } + }); + + caseViewModel.searchResultModel.observe(this, new Observer() { + @Override + public void onChanged(CaseSearchResultBean resultBean) { + if (resultBean.getCode() == 200) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear(); //下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + viewBinding.refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + EasyToast.show(context, "到底了,别拉了"); + } + dataBeans.addAll(dataRows); + viewBinding.refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + //更新RecyclerView + weakReferenceHandler.sendEmptyMessage(20210425); + } + } + }); + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (!isRefresh && !isLoadMore) { + if (loadState == LoadState.Loading) { + OtherUtils.showLoadingDialog(context, "案卷查询中,请稍后"); + } else { + OtherUtils.dismissLoadingDialog(); + } + } + } + }); + } + + /** + * 弱应用Handler,防止内存泄漏 + */ + private final Handler.Callback callback = msg -> { + if (msg.what == 20210425) { + if (isRefresh || isLoadMore) { + adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (dataBeans.size() == 0) { + viewBinding.emptyView.show(false, "抱歉,没有查到符合您规定条件的案卷", null, "", new View.OnClickListener() { + @Override + public void onClick(View v) { + pageIndex = 1; + obtainSearchResult(); + } + }); + } else { + viewBinding.emptyView.hide(); + adapter = new CaseSearchResultAdapter(context, dataBeans); + viewBinding.caseRecyclerView.setAdapter(adapter); + adapter.setOnItemClickListener(new CaseSearchResultAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + ContextUtil.navigatePageTo( + context, + CaseDetailActivity.class, + dataBeans.get(position).getId() + ); + } + }); + } + } + } + return true; + }; +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/SearchCaseActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/SearchCaseActivity.java index 0bfe6b3..dfd357e 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/SearchCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/SearchCaseActivity.java @@ -263,7 +263,7 @@ viewBinding.searchButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - Intent intent = new Intent(context, CaseListResultActivity.class); + Intent intent = new Intent(context, CaseSearchResultActivity.class); intent.putExtra("eorc", eorc); intent.putExtra("typeCode", typeCode); intent.putExtra("typeDetailCode", typeDetailCode); diff --git a/.idea/misc.xml b/.idea/misc.xml index 4c01f54..53acf2f 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -27,6 +27,7 @@ + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index eb654a2..d087ae2 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -69,7 +69,7 @@ - + diff --git a/app/src/main/java/com/casic/dcms/adapter/CaseListResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CaseListResultAdapter.java deleted file mode 100644 index a051fbf..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/CaseListResultAdapter.java +++ /dev/null @@ -1,92 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.text.TextUtils; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.mvvm.model.CaseListResultBean; -import com.casic.dcms.utils.StringHelper; - -import java.util.List; - -public class CaseListResultAdapter extends RecyclerView.Adapter { - - private final List dataRows; - private final LayoutInflater layoutInflater; - - public CaseListResultAdapter(Context context, List dataRows) { - this.dataRows = dataRows; - layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - View view = layoutInflater.inflate(R.layout.item_case_rv, parent, false); - return new ItemViewHolder(view); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.bindView(dataRows.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataRows.size(); - } - - private OnItemClickListener clickListener; - - public interface OnItemClickListener { - void onClick(int position); - } - - public void setOnItemClickListener(OnItemClickListener onItemClickListener) { - this.clickListener = onItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - -// private final TextView leftTextView; - private final TextView caseTitleView; - private final TextView casePlaceView; - private final TextView caseTimeView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); -// leftTextView = itemView.findViewById(R.id.leftTextView); - caseTitleView = itemView.findViewById(R.id.caseTitleView); - casePlaceView = itemView.findViewById(R.id.casePlaceView); - caseTimeView = itemView.findViewById(R.id.caseTimeView); - } - - @SuppressLint("SetTextI18n") - void bindView(CaseListResultBean.DataBean.RowsBean rowsBean) { - String eorcName = rowsBean.getEorcName(); - if (TextUtils.isEmpty(eorcName)) { - eorcName = "未知"; - } -// leftTextView.setText(eorcName.substring(0, 1)); - caseTitleView.setText(StringHelper.filterString(rowsBean.getDescription())); - casePlaceView.setText("发生地点:" + StringHelper.filterString(rowsBean.getFieldintro())); - caseTimeView.setText("上报时间:" + rowsBean.getReportTime()); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java new file mode 100644 index 0000000..9e4a834 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java @@ -0,0 +1,96 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.mvvm.model.CaseSearchResultBean; +import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUIRadiusImageView; + +import java.util.List; + +public class CaseSearchResultAdapter extends RecyclerView.Adapter { + + private final Context context; + private final List dataRows; + private final LayoutInflater layoutInflater; + + public CaseSearchResultAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ItemViewHolder(layoutInflater.inflate(R.layout.item_case_rv, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { + holder.bindView(dataRows.get(position)); + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private final QMUIRadiusImageView caseImageView; + private final TextView caseTitleView; + private final TextView casePlaceView; + private final TextView caseTimeView; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + caseImageView = itemView.findViewById(R.id.caseImageView); + caseTitleView = itemView.findViewById(R.id.caseTitleView); + casePlaceView = itemView.findViewById(R.id.casePlaceView); + caseTimeView = itemView.findViewById(R.id.caseTimeView); + } + + void bindView(CaseSearchResultBean.DataDTO.RowsDTO rowsBean) { + //核实图片 +// String fileIdVerify = rowsBean.getFileIdVerify(); +// if (!TextUtils.isEmpty(fileIdVerify)) { +// String[] split = fileIdVerify.split(","); +// String firstImage = split[0]; +// if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) { +// Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView); +// } +// } + caseTitleView.setText(StringHelper.filterString(rowsBean.getDescription())); + casePlaceView.setText("发生地点:" + StringHelper.filterString(rowsBean.getFieldintro())); + caseTimeView.setText("上报时间:" + rowsBean.getReportTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvvm/model/CaseListResultBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/CaseListResultBean.java deleted file mode 100644 index 41b3016..0000000 --- a/app/src/main/java/com/casic/dcms/mvvm/model/CaseListResultBean.java +++ /dev/null @@ -1,303 +0,0 @@ -package com.casic.dcms.mvvm.model; - -import java.util.List; - -public class CaseListResultBean { - - private int code; - private DataBean data; - private String message; - private boolean success; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public DataBean getData() { - return data; - } - - public void setData(DataBean data) { - this.data = data; - } - - 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 static class DataBean { - - private int total; - private List rows; - - public int getTotal() { - return total; - } - - public void setTotal(int total) { - this.total = total; - } - - public List getRows() { - return rows; - } - - public void setRows(List rows) { - this.rows = rows; - } - - public static class RowsBean { - - private int isPostpone; - private String description; - private String createUserName; - private int source; - private String eorcName; - private String casetypeDetailName; - private String remainingTime; - private String casetypeName; - private String processId; - private int caseState; - private String id; - private String reportSupervisorId; - private String fieldintro; - private String lat; - private String caseStateName; - private String lng; - private String isOvertime; - private String casetypeDetailCode; - private String onedeptid; - private String eorc; - private String caseid; - private String casetypeCode; - private String createUser; - private String nodeLimittime; - private String sourceName; - private String reportTime; - - public int getIsPostpone() { - return isPostpone; - } - - public void setIsPostpone(int isPostpone) { - this.isPostpone = isPostpone; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public String getCreateUserName() { - return createUserName; - } - - public void setCreateUserName(String createUserName) { - this.createUserName = createUserName; - } - - public int getSource() { - return source; - } - - public void setSource(int source) { - this.source = source; - } - - public String getEorcName() { - return eorcName; - } - - public void setEorcName(String eorcName) { - this.eorcName = eorcName; - } - - public String getCasetypeDetailName() { - return casetypeDetailName; - } - - public void setCasetypeDetailName(String casetypeDetailName) { - this.casetypeDetailName = casetypeDetailName; - } - - public String getRemainingTime() { - return remainingTime; - } - - public void setRemainingTime(String remainingTime) { - this.remainingTime = remainingTime; - } - - public String getCasetypeName() { - return casetypeName; - } - - public void setCasetypeName(String casetypeName) { - this.casetypeName = casetypeName; - } - - public String getProcessId() { - return processId; - } - - public void setProcessId(String processId) { - this.processId = processId; - } - - public int getCaseState() { - return caseState; - } - - public void setCaseState(int caseState) { - this.caseState = caseState; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getReportSupervisorId() { - return reportSupervisorId; - } - - public void setReportSupervisorId(String reportSupervisorId) { - this.reportSupervisorId = reportSupervisorId; - } - - public String getFieldintro() { - return fieldintro; - } - - public void setFieldintro(String fieldintro) { - this.fieldintro = fieldintro; - } - - public String getLat() { - return lat; - } - - public void setLat(String lat) { - this.lat = lat; - } - - public String getCaseStateName() { - return caseStateName; - } - - public void setCaseStateName(String caseStateName) { - this.caseStateName = caseStateName; - } - - public String getLng() { - return lng; - } - - public void setLng(String lng) { - this.lng = lng; - } - - public String getIsOvertime() { - return isOvertime; - } - - public void setIsOvertime(String isOvertime) { - this.isOvertime = isOvertime; - } - - public String getCasetypeDetailCode() { - return casetypeDetailCode; - } - - public void setCasetypeDetailCode(String casetypeDetailCode) { - this.casetypeDetailCode = casetypeDetailCode; - } - - public String getOnedeptid() { - return onedeptid; - } - - public void setOnedeptid(String onedeptid) { - this.onedeptid = onedeptid; - } - - public String getEorc() { - return eorc; - } - - public void setEorc(String eorc) { - this.eorc = eorc; - } - - public String getCaseid() { - return caseid; - } - - public void setCaseid(String caseid) { - this.caseid = caseid; - } - - public String getCasetypeCode() { - return casetypeCode; - } - - public void setCasetypeCode(String casetypeCode) { - this.casetypeCode = casetypeCode; - } - - public String getCreateUser() { - return createUser; - } - - public void setCreateUser(String createUser) { - this.createUser = createUser; - } - - public String getNodeLimittime() { - return nodeLimittime; - } - - public void setNodeLimittime(String nodeLimittime) { - this.nodeLimittime = nodeLimittime; - } - - public String getSourceName() { - return sourceName; - } - - public void setSourceName(String sourceName) { - this.sourceName = sourceName; - } - - public String getReportTime() { - return reportTime; - } - - public void setReportTime(String reportTime) { - this.reportTime = reportTime; - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/mvvm/model/CaseSearchResultBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/CaseSearchResultBean.java new file mode 100644 index 0000000..4d62c22 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvvm/model/CaseSearchResultBean.java @@ -0,0 +1,319 @@ +package com.casic.dcms.mvvm.model; + +import java.util.List; + +public class CaseSearchResultBean { + + private int code; + private DataDTO data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataDTO getData() { + return data; + } + + public void setData(DataDTO data) { + this.data = data; + } + + 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 static class DataDTO { + private List rows; + private int total; + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public static class RowsDTO { + private int isPostpone; + private String description; + private String createUserName; + private int source; + private String eorcName; + private String casetypeDetailName; + private String remainingTime; + private String casetypeName; + private String processId; + private int caseState; + private String id; + private String reportSupervisorId; + private String fieldintro; + private String lat; + private String caseStateName; + private String lng; + private String isOvertime; + private String currRoleName; + private String casetypeDetailCode; + private String onedeptid; + private String eorc; + private String currRoleId; + private String caseid; + private String casetypeCode; + private String createUser; + private String nodeLimittime; + private String sourceName; + private String reportTime; + + public int getIsPostpone() { + return isPostpone; + } + + public void setIsPostpone(int isPostpone) { + this.isPostpone = isPostpone; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public int getSource() { + return source; + } + + public void setSource(int source) { + this.source = source; + } + + public String getEorcName() { + return eorcName; + } + + public void setEorcName(String eorcName) { + this.eorcName = eorcName; + } + + public String getCasetypeDetailName() { + return casetypeDetailName; + } + + public void setCasetypeDetailName(String casetypeDetailName) { + this.casetypeDetailName = casetypeDetailName; + } + + public String getRemainingTime() { + return remainingTime; + } + + public void setRemainingTime(String remainingTime) { + this.remainingTime = remainingTime; + } + + public String getCasetypeName() { + return casetypeName; + } + + public void setCasetypeName(String casetypeName) { + this.casetypeName = casetypeName; + } + + public String getProcessId() { + return processId; + } + + public void setProcessId(String processId) { + this.processId = processId; + } + + public int getCaseState() { + return caseState; + } + + public void setCaseState(int caseState) { + this.caseState = caseState; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getReportSupervisorId() { + return reportSupervisorId; + } + + public void setReportSupervisorId(String reportSupervisorId) { + this.reportSupervisorId = reportSupervisorId; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getLat() { + return lat; + } + + public void setLat(String lat) { + this.lat = lat; + } + + public String getCaseStateName() { + return caseStateName; + } + + public void setCaseStateName(String caseStateName) { + this.caseStateName = caseStateName; + } + + public String getLng() { + return lng; + } + + public void setLng(String lng) { + this.lng = lng; + } + + public String getIsOvertime() { + return isOvertime; + } + + public void setIsOvertime(String isOvertime) { + this.isOvertime = isOvertime; + } + + public String getCurrRoleName() { + return currRoleName; + } + + public void setCurrRoleName(String currRoleName) { + this.currRoleName = currRoleName; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getOnedeptid() { + return onedeptid; + } + + public void setOnedeptid(String onedeptid) { + this.onedeptid = onedeptid; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCurrRoleId() { + return currRoleId; + } + + public void setCurrRoleId(String currRoleId) { + this.currRoleId = currRoleId; + } + + public String getCaseid() { + return caseid; + } + + public void setCaseid(String caseid) { + this.caseid = caseid; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getNodeLimittime() { + return nodeLimittime; + } + + public void setNodeLimittime(String nodeLimittime) { + this.nodeLimittime = nodeLimittime; + } + + public String getSourceName() { + return sourceName; + } + + public void setSourceName(String sourceName) { + this.sourceName = sourceName; + } + + public String getReportTime() { + return reportTime; + } + + public void setReportTime(String reportTime) { + this.reportTime = reportTime; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/CaseListResultActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/CaseListResultActivity.java deleted file mode 100644 index 3cf287f..0000000 --- a/app/src/main/java/com/casic/dcms/mvvm/view/CaseListResultActivity.java +++ /dev/null @@ -1,170 +0,0 @@ -package com.casic.dcms.mvvm.view; - -import android.content.Context; -import android.os.Handler; -import android.view.View; - -import androidx.annotation.NonNull; -import androidx.core.content.ContextCompat; -import androidx.lifecycle.Observer; -import androidx.lifecycle.ViewModelProvider; - -import com.casic.dcms.R; -import com.casic.dcms.adapter.CaseListResultAdapter; -import com.casic.dcms.databinding.ActivityCaseListBinding; -import com.casic.dcms.mvvm.model.CaseListResultBean; -import com.casic.dcms.mvvm.vm.CaseViewModel; -import com.casic.dcms.utils.OtherUtils; -import com.gyf.immersionbar.ImmersionBar; -import com.pengxh.androidx.lite.base.AndroidxBaseActivity; -import com.pengxh.androidx.lite.utils.ContextUtil; -import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil; -import com.pengxh.androidx.lite.utils.WeakReferenceHandler; -import com.pengxh.androidx.lite.vm.LoadState; -import com.pengxh.androidx.lite.widget.EasyToast; -import com.scwang.smartrefresh.layout.api.RefreshLayout; -import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; -import com.scwang.smartrefresh.layout.listener.OnRefreshListener; - -import java.util.ArrayList; -import java.util.List; - -public class CaseListResultActivity extends AndroidxBaseActivity { - - private final Context context = this; - private WeakReferenceHandler weakReferenceHandler; - private CaseViewModel caseViewModel; - private CaseListResultAdapter adapter; - private String typeCode; - private String typeDetailCode; - private String caseState; - private String startTime; - private String endTime; - private String eorc; - private int pageIndex = 1; - private List dataBeans = new ArrayList<>(); - private boolean isRefresh = false; - private boolean isLoadMore = false; - - @Override - protected void setupTopBarLayout() { - ImmerseStatusBarUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); - ImmersionBar.with(this).statusBarDarkFont(false).init(); - - viewBinding.titleBarLayout.titleView.setText("查询结果"); - viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish()); - } - - @Override - protected void initData() { - weakReferenceHandler = new WeakReferenceHandler(callback); - caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); - - eorc = getIntent().getStringExtra("eorc"); - typeCode = getIntent().getStringExtra("typeCode"); - typeDetailCode = getIntent().getStringExtra("typeDetailCode"); - caseState = getIntent().getStringExtra("caseState"); - startTime = getIntent().getStringExtra("startTime"); - endTime = getIntent().getStringExtra("endTime"); - obtainSearchResult(); - } - - private void obtainSearchResult() { - //加载第一页 - caseViewModel.searchCase(eorc, typeCode, typeDetailCode, caseState, startTime, endTime, "0", pageIndex); - } - - @Override - protected void initEvent() { - viewBinding.refreshLayout.setOnRefreshListener(new OnRefreshListener() { - @Override - public void onRefresh(@NonNull RefreshLayout refreshLayout) { - isRefresh = true; - //刷新之后页码重置 - pageIndex = 1; - obtainSearchResult(); - } - }); - viewBinding.refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { - @Override - public void onLoadMore(@NonNull RefreshLayout refreshLayout) { - isLoadMore = true; - pageIndex++; - obtainSearchResult(); - } - }); - - caseViewModel.searchResultModel.observe(this, new Observer() { - @Override - public void onChanged(CaseListResultBean resultBean) { - if (resultBean.getCode() == 200) { - List dataRows = resultBean.getData().getRows(); - if (isRefresh) { - dataBeans.clear(); //下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; - viewBinding.refreshLayout.finishRefresh(); - isRefresh = false; - } else if (isLoadMore) { - if (dataRows.size() == 0) { - EasyToast.show(context, "到底了,别拉了"); - } - dataBeans.addAll(dataRows); - viewBinding.refreshLayout.finishLoadMore(); - isLoadMore = false; - } else { - dataBeans = dataRows; - } - //更新RecyclerView - weakReferenceHandler.sendEmptyMessage(20210425); - } - } - }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - OtherUtils.showLoadingDialog(context, "案卷查询中,请稍后"); - } else { - OtherUtils.dismissLoadingDialog(); - } - } - }); - } - - /** - * 弱应用Handler,防止内存泄漏 - */ - private final Handler.Callback callback = msg -> { - if (msg.what == 20210425) { - if (isRefresh || isLoadMore) { - adapter.notifyDataSetChanged(); - } else { - //首次加载数据 - if (dataBeans.size() == 0) { - viewBinding.emptyView.show(false, "抱歉,没有查到符合您规定条件的案卷", null, "", new View.OnClickListener() { - @Override - public void onClick(View v) { - pageIndex = 1; - obtainSearchResult(); - } - }); - } else { - viewBinding.emptyView.hide(); - adapter = new CaseListResultAdapter(context, dataBeans); - viewBinding.caseRecyclerView.setAdapter(adapter); - adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - ContextUtil.navigatePageTo( - context, - CaseDetailActivity.class, - dataBeans.get(position).getId() - ); - } - }); - } - } - } - return true; - }; -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/CaseSearchResultActivity.java new file mode 100644 index 0000000..12ed207 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvvm/view/CaseSearchResultActivity.java @@ -0,0 +1,172 @@ +package com.casic.dcms.mvvm.view; + +import android.content.Context; +import android.os.Handler; +import android.view.View; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.lifecycle.Observer; +import androidx.lifecycle.ViewModelProvider; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.CaseSearchResultAdapter; +import com.casic.dcms.databinding.ActivityCaseListBinding; +import com.casic.dcms.mvvm.model.CaseSearchResultBean; +import com.casic.dcms.mvvm.vm.CaseViewModel; +import com.casic.dcms.utils.OtherUtils; +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.base.AndroidxBaseActivity; +import com.pengxh.androidx.lite.utils.ContextUtil; +import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; +import com.pengxh.androidx.lite.widget.EasyToast; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.util.ArrayList; +import java.util.List; + +public class CaseSearchResultActivity extends AndroidxBaseActivity { + + private final Context context = this; + private WeakReferenceHandler weakReferenceHandler; + private CaseViewModel caseViewModel; + private CaseSearchResultAdapter adapter; + private String typeCode; + private String typeDetailCode; + private String caseState; + private String startTime; + private String endTime; + private String eorc; + private int pageIndex = 1; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh = false; + private boolean isLoadMore = false; + + @Override + protected void setupTopBarLayout() { + ImmerseStatusBarUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + + viewBinding.titleBarLayout.titleView.setText("查询结果"); + viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish()); + } + + @Override + protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); + + eorc = getIntent().getStringExtra("eorc"); + typeCode = getIntent().getStringExtra("typeCode"); + typeDetailCode = getIntent().getStringExtra("typeDetailCode"); + caseState = getIntent().getStringExtra("caseState"); + startTime = getIntent().getStringExtra("startTime"); + endTime = getIntent().getStringExtra("endTime"); + obtainSearchResult(); + } + + private void obtainSearchResult() { + //加载第一页 + caseViewModel.searchCase(eorc, typeCode, typeDetailCode, caseState, startTime, endTime, "0", pageIndex); + } + + @Override + protected void initEvent() { + viewBinding.refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + obtainSearchResult(); + } + }); + viewBinding.refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + obtainSearchResult(); + } + }); + + caseViewModel.searchResultModel.observe(this, new Observer() { + @Override + public void onChanged(CaseSearchResultBean resultBean) { + if (resultBean.getCode() == 200) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear(); //下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + viewBinding.refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + EasyToast.show(context, "到底了,别拉了"); + } + dataBeans.addAll(dataRows); + viewBinding.refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + //更新RecyclerView + weakReferenceHandler.sendEmptyMessage(20210425); + } + } + }); + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (!isRefresh && !isLoadMore) { + if (loadState == LoadState.Loading) { + OtherUtils.showLoadingDialog(context, "案卷查询中,请稍后"); + } else { + OtherUtils.dismissLoadingDialog(); + } + } + } + }); + } + + /** + * 弱应用Handler,防止内存泄漏 + */ + private final Handler.Callback callback = msg -> { + if (msg.what == 20210425) { + if (isRefresh || isLoadMore) { + adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (dataBeans.size() == 0) { + viewBinding.emptyView.show(false, "抱歉,没有查到符合您规定条件的案卷", null, "", new View.OnClickListener() { + @Override + public void onClick(View v) { + pageIndex = 1; + obtainSearchResult(); + } + }); + } else { + viewBinding.emptyView.hide(); + adapter = new CaseSearchResultAdapter(context, dataBeans); + viewBinding.caseRecyclerView.setAdapter(adapter); + adapter.setOnItemClickListener(new CaseSearchResultAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + ContextUtil.navigatePageTo( + context, + CaseDetailActivity.class, + dataBeans.get(position).getId() + ); + } + }); + } + } + } + return true; + }; +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/SearchCaseActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/SearchCaseActivity.java index 0bfe6b3..dfd357e 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/SearchCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/SearchCaseActivity.java @@ -263,7 +263,7 @@ viewBinding.searchButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - Intent intent = new Intent(context, CaseListResultActivity.class); + Intent intent = new Intent(context, CaseSearchResultActivity.class); intent.putExtra("eorc", eorc); intent.putExtra("typeCode", typeCode); intent.putExtra("typeDetailCode", typeDetailCode); diff --git a/app/src/main/java/com/casic/dcms/mvvm/vm/CaseViewModel.java b/app/src/main/java/com/casic/dcms/mvvm/vm/CaseViewModel.java index 8b8a61d..64a368b 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/vm/CaseViewModel.java +++ b/app/src/main/java/com/casic/dcms/mvvm/vm/CaseViewModel.java @@ -6,7 +6,7 @@ import com.casic.dcms.mvvm.model.CaseDetailBean; import com.casic.dcms.mvvm.model.CaseHandleBean; import com.casic.dcms.mvvm.model.CaseHandledBean; -import com.casic.dcms.mvvm.model.CaseListResultBean; +import com.casic.dcms.mvvm.model.CaseSearchResultBean; import com.casic.dcms.mvvm.model.CaseVerifyBean; import com.casic.dcms.mvvm.model.OvertimeCaseBean; import com.casic.dcms.mvvm.model.PackageCaseBean; @@ -35,7 +35,7 @@ public MutableLiveData caseUrgentModel = new MutableLiveData<>(); public MutableLiveData caseOvertimeModel = new MutableLiveData<>(); public MutableLiveData shopCaseModel = new MutableLiveData<>(); - public MutableLiveData searchResultModel = new MutableLiveData<>(); + public MutableLiveData searchResultModel = new MutableLiveData<>(); public MutableLiveData caseDetailModel = new MutableLiveData<>(); /** @@ -292,7 +292,7 @@ String response = responseBody.string(); int responseCode = StringHelper.separateResponseCode(response); if (responseCode == 200) { - CaseListResultBean resultBean = gson.fromJson(response, new TypeToken() { + CaseSearchResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); searchResultModel.setValue(resultBean); } else { diff --git a/.idea/misc.xml b/.idea/misc.xml index 4c01f54..53acf2f 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -27,6 +27,7 @@ + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index eb654a2..d087ae2 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -69,7 +69,7 @@ - + diff --git a/app/src/main/java/com/casic/dcms/adapter/CaseListResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CaseListResultAdapter.java deleted file mode 100644 index a051fbf..0000000 --- a/app/src/main/java/com/casic/dcms/adapter/CaseListResultAdapter.java +++ /dev/null @@ -1,92 +0,0 @@ -package com.casic.dcms.adapter; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.text.TextUtils; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.casic.dcms.R; -import com.casic.dcms.mvvm.model.CaseListResultBean; -import com.casic.dcms.utils.StringHelper; - -import java.util.List; - -public class CaseListResultAdapter extends RecyclerView.Adapter { - - private final List dataRows; - private final LayoutInflater layoutInflater; - - public CaseListResultAdapter(Context context, List dataRows) { - this.dataRows = dataRows; - layoutInflater = LayoutInflater.from(context); - } - - @NonNull - @Override - public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - View view = layoutInflater.inflate(R.layout.item_case_rv, parent, false); - return new ItemViewHolder(view); - } - - @Override - public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { - holder.bindView(dataRows.get(position)); - if (clickListener != null) { - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - clickListener.onClick(position); - } - }); - } - } - - @Override - public int getItemCount() { - return dataRows.size(); - } - - private OnItemClickListener clickListener; - - public interface OnItemClickListener { - void onClick(int position); - } - - public void setOnItemClickListener(OnItemClickListener onItemClickListener) { - this.clickListener = onItemClickListener; - } - - static class ItemViewHolder extends RecyclerView.ViewHolder { - -// private final TextView leftTextView; - private final TextView caseTitleView; - private final TextView casePlaceView; - private final TextView caseTimeView; - - ItemViewHolder(@NonNull View itemView) { - super(itemView); -// leftTextView = itemView.findViewById(R.id.leftTextView); - caseTitleView = itemView.findViewById(R.id.caseTitleView); - casePlaceView = itemView.findViewById(R.id.casePlaceView); - caseTimeView = itemView.findViewById(R.id.caseTimeView); - } - - @SuppressLint("SetTextI18n") - void bindView(CaseListResultBean.DataBean.RowsBean rowsBean) { - String eorcName = rowsBean.getEorcName(); - if (TextUtils.isEmpty(eorcName)) { - eorcName = "未知"; - } -// leftTextView.setText(eorcName.substring(0, 1)); - caseTitleView.setText(StringHelper.filterString(rowsBean.getDescription())); - casePlaceView.setText("发生地点:" + StringHelper.filterString(rowsBean.getFieldintro())); - caseTimeView.setText("上报时间:" + rowsBean.getReportTime()); - } - } -} diff --git a/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java b/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java new file mode 100644 index 0000000..9e4a834 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/adapter/CaseSearchResultAdapter.java @@ -0,0 +1,96 @@ +package com.casic.dcms.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.mvvm.model.CaseSearchResultBean; +import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUIRadiusImageView; + +import java.util.List; + +public class CaseSearchResultAdapter extends RecyclerView.Adapter { + + private final Context context; + private final List dataRows; + private final LayoutInflater layoutInflater; + + public CaseSearchResultAdapter(Context context, List dataRows) { + this.context = context; + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return new ItemViewHolder(layoutInflater.inflate(R.layout.item_case_rv, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { + holder.bindView(dataRows.get(position)); + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + class ItemViewHolder extends RecyclerView.ViewHolder { + + private final QMUIRadiusImageView caseImageView; + private final TextView caseTitleView; + private final TextView casePlaceView; + private final TextView caseTimeView; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + caseImageView = itemView.findViewById(R.id.caseImageView); + caseTitleView = itemView.findViewById(R.id.caseTitleView); + casePlaceView = itemView.findViewById(R.id.casePlaceView); + caseTimeView = itemView.findViewById(R.id.caseTimeView); + } + + void bindView(CaseSearchResultBean.DataDTO.RowsDTO rowsBean) { + //核实图片 +// String fileIdVerify = rowsBean.getFileIdVerify(); +// if (!TextUtils.isEmpty(fileIdVerify)) { +// String[] split = fileIdVerify.split(","); +// String firstImage = split[0]; +// if (firstImage.endsWith(".jpg") || firstImage.contains(".jpeg") || firstImage.contains(".png")) { +// Glide.with(context).load(StringHelper.appendCompleteURL(firstImage)).into(caseImageView); +// } +// } + caseTitleView.setText(StringHelper.filterString(rowsBean.getDescription())); + casePlaceView.setText("发生地点:" + StringHelper.filterString(rowsBean.getFieldintro())); + caseTimeView.setText("上报时间:" + rowsBean.getReportTime()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvvm/model/CaseListResultBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/CaseListResultBean.java deleted file mode 100644 index 41b3016..0000000 --- a/app/src/main/java/com/casic/dcms/mvvm/model/CaseListResultBean.java +++ /dev/null @@ -1,303 +0,0 @@ -package com.casic.dcms.mvvm.model; - -import java.util.List; - -public class CaseListResultBean { - - private int code; - private DataBean data; - private String message; - private boolean success; - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - public DataBean getData() { - return data; - } - - public void setData(DataBean data) { - this.data = data; - } - - 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 static class DataBean { - - private int total; - private List rows; - - public int getTotal() { - return total; - } - - public void setTotal(int total) { - this.total = total; - } - - public List getRows() { - return rows; - } - - public void setRows(List rows) { - this.rows = rows; - } - - public static class RowsBean { - - private int isPostpone; - private String description; - private String createUserName; - private int source; - private String eorcName; - private String casetypeDetailName; - private String remainingTime; - private String casetypeName; - private String processId; - private int caseState; - private String id; - private String reportSupervisorId; - private String fieldintro; - private String lat; - private String caseStateName; - private String lng; - private String isOvertime; - private String casetypeDetailCode; - private String onedeptid; - private String eorc; - private String caseid; - private String casetypeCode; - private String createUser; - private String nodeLimittime; - private String sourceName; - private String reportTime; - - public int getIsPostpone() { - return isPostpone; - } - - public void setIsPostpone(int isPostpone) { - this.isPostpone = isPostpone; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public String getCreateUserName() { - return createUserName; - } - - public void setCreateUserName(String createUserName) { - this.createUserName = createUserName; - } - - public int getSource() { - return source; - } - - public void setSource(int source) { - this.source = source; - } - - public String getEorcName() { - return eorcName; - } - - public void setEorcName(String eorcName) { - this.eorcName = eorcName; - } - - public String getCasetypeDetailName() { - return casetypeDetailName; - } - - public void setCasetypeDetailName(String casetypeDetailName) { - this.casetypeDetailName = casetypeDetailName; - } - - public String getRemainingTime() { - return remainingTime; - } - - public void setRemainingTime(String remainingTime) { - this.remainingTime = remainingTime; - } - - public String getCasetypeName() { - return casetypeName; - } - - public void setCasetypeName(String casetypeName) { - this.casetypeName = casetypeName; - } - - public String getProcessId() { - return processId; - } - - public void setProcessId(String processId) { - this.processId = processId; - } - - public int getCaseState() { - return caseState; - } - - public void setCaseState(int caseState) { - this.caseState = caseState; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getReportSupervisorId() { - return reportSupervisorId; - } - - public void setReportSupervisorId(String reportSupervisorId) { - this.reportSupervisorId = reportSupervisorId; - } - - public String getFieldintro() { - return fieldintro; - } - - public void setFieldintro(String fieldintro) { - this.fieldintro = fieldintro; - } - - public String getLat() { - return lat; - } - - public void setLat(String lat) { - this.lat = lat; - } - - public String getCaseStateName() { - return caseStateName; - } - - public void setCaseStateName(String caseStateName) { - this.caseStateName = caseStateName; - } - - public String getLng() { - return lng; - } - - public void setLng(String lng) { - this.lng = lng; - } - - public String getIsOvertime() { - return isOvertime; - } - - public void setIsOvertime(String isOvertime) { - this.isOvertime = isOvertime; - } - - public String getCasetypeDetailCode() { - return casetypeDetailCode; - } - - public void setCasetypeDetailCode(String casetypeDetailCode) { - this.casetypeDetailCode = casetypeDetailCode; - } - - public String getOnedeptid() { - return onedeptid; - } - - public void setOnedeptid(String onedeptid) { - this.onedeptid = onedeptid; - } - - public String getEorc() { - return eorc; - } - - public void setEorc(String eorc) { - this.eorc = eorc; - } - - public String getCaseid() { - return caseid; - } - - public void setCaseid(String caseid) { - this.caseid = caseid; - } - - public String getCasetypeCode() { - return casetypeCode; - } - - public void setCasetypeCode(String casetypeCode) { - this.casetypeCode = casetypeCode; - } - - public String getCreateUser() { - return createUser; - } - - public void setCreateUser(String createUser) { - this.createUser = createUser; - } - - public String getNodeLimittime() { - return nodeLimittime; - } - - public void setNodeLimittime(String nodeLimittime) { - this.nodeLimittime = nodeLimittime; - } - - public String getSourceName() { - return sourceName; - } - - public void setSourceName(String sourceName) { - this.sourceName = sourceName; - } - - public String getReportTime() { - return reportTime; - } - - public void setReportTime(String reportTime) { - this.reportTime = reportTime; - } - } - } -} diff --git a/app/src/main/java/com/casic/dcms/mvvm/model/CaseSearchResultBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/CaseSearchResultBean.java new file mode 100644 index 0000000..4d62c22 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvvm/model/CaseSearchResultBean.java @@ -0,0 +1,319 @@ +package com.casic.dcms.mvvm.model; + +import java.util.List; + +public class CaseSearchResultBean { + + private int code; + private DataDTO data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataDTO getData() { + return data; + } + + public void setData(DataDTO data) { + this.data = data; + } + + 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 static class DataDTO { + private List rows; + private int total; + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public static class RowsDTO { + private int isPostpone; + private String description; + private String createUserName; + private int source; + private String eorcName; + private String casetypeDetailName; + private String remainingTime; + private String casetypeName; + private String processId; + private int caseState; + private String id; + private String reportSupervisorId; + private String fieldintro; + private String lat; + private String caseStateName; + private String lng; + private String isOvertime; + private String currRoleName; + private String casetypeDetailCode; + private String onedeptid; + private String eorc; + private String currRoleId; + private String caseid; + private String casetypeCode; + private String createUser; + private String nodeLimittime; + private String sourceName; + private String reportTime; + + public int getIsPostpone() { + return isPostpone; + } + + public void setIsPostpone(int isPostpone) { + this.isPostpone = isPostpone; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public int getSource() { + return source; + } + + public void setSource(int source) { + this.source = source; + } + + public String getEorcName() { + return eorcName; + } + + public void setEorcName(String eorcName) { + this.eorcName = eorcName; + } + + public String getCasetypeDetailName() { + return casetypeDetailName; + } + + public void setCasetypeDetailName(String casetypeDetailName) { + this.casetypeDetailName = casetypeDetailName; + } + + public String getRemainingTime() { + return remainingTime; + } + + public void setRemainingTime(String remainingTime) { + this.remainingTime = remainingTime; + } + + public String getCasetypeName() { + return casetypeName; + } + + public void setCasetypeName(String casetypeName) { + this.casetypeName = casetypeName; + } + + public String getProcessId() { + return processId; + } + + public void setProcessId(String processId) { + this.processId = processId; + } + + public int getCaseState() { + return caseState; + } + + public void setCaseState(int caseState) { + this.caseState = caseState; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getReportSupervisorId() { + return reportSupervisorId; + } + + public void setReportSupervisorId(String reportSupervisorId) { + this.reportSupervisorId = reportSupervisorId; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getLat() { + return lat; + } + + public void setLat(String lat) { + this.lat = lat; + } + + public String getCaseStateName() { + return caseStateName; + } + + public void setCaseStateName(String caseStateName) { + this.caseStateName = caseStateName; + } + + public String getLng() { + return lng; + } + + public void setLng(String lng) { + this.lng = lng; + } + + public String getIsOvertime() { + return isOvertime; + } + + public void setIsOvertime(String isOvertime) { + this.isOvertime = isOvertime; + } + + public String getCurrRoleName() { + return currRoleName; + } + + public void setCurrRoleName(String currRoleName) { + this.currRoleName = currRoleName; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getOnedeptid() { + return onedeptid; + } + + public void setOnedeptid(String onedeptid) { + this.onedeptid = onedeptid; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCurrRoleId() { + return currRoleId; + } + + public void setCurrRoleId(String currRoleId) { + this.currRoleId = currRoleId; + } + + public String getCaseid() { + return caseid; + } + + public void setCaseid(String caseid) { + this.caseid = caseid; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getNodeLimittime() { + return nodeLimittime; + } + + public void setNodeLimittime(String nodeLimittime) { + this.nodeLimittime = nodeLimittime; + } + + public String getSourceName() { + return sourceName; + } + + public void setSourceName(String sourceName) { + this.sourceName = sourceName; + } + + public String getReportTime() { + return reportTime; + } + + public void setReportTime(String reportTime) { + this.reportTime = reportTime; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/CaseListResultActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/CaseListResultActivity.java deleted file mode 100644 index 3cf287f..0000000 --- a/app/src/main/java/com/casic/dcms/mvvm/view/CaseListResultActivity.java +++ /dev/null @@ -1,170 +0,0 @@ -package com.casic.dcms.mvvm.view; - -import android.content.Context; -import android.os.Handler; -import android.view.View; - -import androidx.annotation.NonNull; -import androidx.core.content.ContextCompat; -import androidx.lifecycle.Observer; -import androidx.lifecycle.ViewModelProvider; - -import com.casic.dcms.R; -import com.casic.dcms.adapter.CaseListResultAdapter; -import com.casic.dcms.databinding.ActivityCaseListBinding; -import com.casic.dcms.mvvm.model.CaseListResultBean; -import com.casic.dcms.mvvm.vm.CaseViewModel; -import com.casic.dcms.utils.OtherUtils; -import com.gyf.immersionbar.ImmersionBar; -import com.pengxh.androidx.lite.base.AndroidxBaseActivity; -import com.pengxh.androidx.lite.utils.ContextUtil; -import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil; -import com.pengxh.androidx.lite.utils.WeakReferenceHandler; -import com.pengxh.androidx.lite.vm.LoadState; -import com.pengxh.androidx.lite.widget.EasyToast; -import com.scwang.smartrefresh.layout.api.RefreshLayout; -import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; -import com.scwang.smartrefresh.layout.listener.OnRefreshListener; - -import java.util.ArrayList; -import java.util.List; - -public class CaseListResultActivity extends AndroidxBaseActivity { - - private final Context context = this; - private WeakReferenceHandler weakReferenceHandler; - private CaseViewModel caseViewModel; - private CaseListResultAdapter adapter; - private String typeCode; - private String typeDetailCode; - private String caseState; - private String startTime; - private String endTime; - private String eorc; - private int pageIndex = 1; - private List dataBeans = new ArrayList<>(); - private boolean isRefresh = false; - private boolean isLoadMore = false; - - @Override - protected void setupTopBarLayout() { - ImmerseStatusBarUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); - ImmersionBar.with(this).statusBarDarkFont(false).init(); - - viewBinding.titleBarLayout.titleView.setText("查询结果"); - viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish()); - } - - @Override - protected void initData() { - weakReferenceHandler = new WeakReferenceHandler(callback); - caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); - - eorc = getIntent().getStringExtra("eorc"); - typeCode = getIntent().getStringExtra("typeCode"); - typeDetailCode = getIntent().getStringExtra("typeDetailCode"); - caseState = getIntent().getStringExtra("caseState"); - startTime = getIntent().getStringExtra("startTime"); - endTime = getIntent().getStringExtra("endTime"); - obtainSearchResult(); - } - - private void obtainSearchResult() { - //加载第一页 - caseViewModel.searchCase(eorc, typeCode, typeDetailCode, caseState, startTime, endTime, "0", pageIndex); - } - - @Override - protected void initEvent() { - viewBinding.refreshLayout.setOnRefreshListener(new OnRefreshListener() { - @Override - public void onRefresh(@NonNull RefreshLayout refreshLayout) { - isRefresh = true; - //刷新之后页码重置 - pageIndex = 1; - obtainSearchResult(); - } - }); - viewBinding.refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { - @Override - public void onLoadMore(@NonNull RefreshLayout refreshLayout) { - isLoadMore = true; - pageIndex++; - obtainSearchResult(); - } - }); - - caseViewModel.searchResultModel.observe(this, new Observer() { - @Override - public void onChanged(CaseListResultBean resultBean) { - if (resultBean.getCode() == 200) { - List dataRows = resultBean.getData().getRows(); - if (isRefresh) { - dataBeans.clear(); //下拉刷新必须先清空之前的List,不然会出现数据重复的问题 - dataBeans = dataRows; - viewBinding.refreshLayout.finishRefresh(); - isRefresh = false; - } else if (isLoadMore) { - if (dataRows.size() == 0) { - EasyToast.show(context, "到底了,别拉了"); - } - dataBeans.addAll(dataRows); - viewBinding.refreshLayout.finishLoadMore(); - isLoadMore = false; - } else { - dataBeans = dataRows; - } - //更新RecyclerView - weakReferenceHandler.sendEmptyMessage(20210425); - } - } - }); - caseViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - OtherUtils.showLoadingDialog(context, "案卷查询中,请稍后"); - } else { - OtherUtils.dismissLoadingDialog(); - } - } - }); - } - - /** - * 弱应用Handler,防止内存泄漏 - */ - private final Handler.Callback callback = msg -> { - if (msg.what == 20210425) { - if (isRefresh || isLoadMore) { - adapter.notifyDataSetChanged(); - } else { - //首次加载数据 - if (dataBeans.size() == 0) { - viewBinding.emptyView.show(false, "抱歉,没有查到符合您规定条件的案卷", null, "", new View.OnClickListener() { - @Override - public void onClick(View v) { - pageIndex = 1; - obtainSearchResult(); - } - }); - } else { - viewBinding.emptyView.hide(); - adapter = new CaseListResultAdapter(context, dataBeans); - viewBinding.caseRecyclerView.setAdapter(adapter); - adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() { - @Override - public void onClick(int position) { - ContextUtil.navigatePageTo( - context, - CaseDetailActivity.class, - dataBeans.get(position).getId() - ); - } - }); - } - } - } - return true; - }; -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/CaseSearchResultActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/CaseSearchResultActivity.java new file mode 100644 index 0000000..12ed207 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvvm/view/CaseSearchResultActivity.java @@ -0,0 +1,172 @@ +package com.casic.dcms.mvvm.view; + +import android.content.Context; +import android.os.Handler; +import android.view.View; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.lifecycle.Observer; +import androidx.lifecycle.ViewModelProvider; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.CaseSearchResultAdapter; +import com.casic.dcms.databinding.ActivityCaseListBinding; +import com.casic.dcms.mvvm.model.CaseSearchResultBean; +import com.casic.dcms.mvvm.vm.CaseViewModel; +import com.casic.dcms.utils.OtherUtils; +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.base.AndroidxBaseActivity; +import com.pengxh.androidx.lite.utils.ContextUtil; +import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; +import com.pengxh.androidx.lite.widget.EasyToast; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.util.ArrayList; +import java.util.List; + +public class CaseSearchResultActivity extends AndroidxBaseActivity { + + private final Context context = this; + private WeakReferenceHandler weakReferenceHandler; + private CaseViewModel caseViewModel; + private CaseSearchResultAdapter adapter; + private String typeCode; + private String typeDetailCode; + private String caseState; + private String startTime; + private String endTime; + private String eorc; + private int pageIndex = 1; + private List dataBeans = new ArrayList<>(); + private boolean isRefresh = false; + private boolean isLoadMore = false; + + @Override + protected void setupTopBarLayout() { + ImmerseStatusBarUtil.setColor(this, ContextCompat.getColor(this, R.color.mainThemeColor)); + ImmersionBar.with(this).statusBarDarkFont(false).init(); + + viewBinding.titleBarLayout.titleView.setText("查询结果"); + viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish()); + } + + @Override + protected void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); + + eorc = getIntent().getStringExtra("eorc"); + typeCode = getIntent().getStringExtra("typeCode"); + typeDetailCode = getIntent().getStringExtra("typeDetailCode"); + caseState = getIntent().getStringExtra("caseState"); + startTime = getIntent().getStringExtra("startTime"); + endTime = getIntent().getStringExtra("endTime"); + obtainSearchResult(); + } + + private void obtainSearchResult() { + //加载第一页 + caseViewModel.searchCase(eorc, typeCode, typeDetailCode, caseState, startTime, endTime, "0", pageIndex); + } + + @Override + protected void initEvent() { + viewBinding.refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + obtainSearchResult(); + } + }); + viewBinding.refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + obtainSearchResult(); + } + }); + + caseViewModel.searchResultModel.observe(this, new Observer() { + @Override + public void onChanged(CaseSearchResultBean resultBean) { + if (resultBean.getCode() == 200) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + dataBeans.clear(); //下拉刷新必须先清空之前的List,不然会出现数据重复的问题 + dataBeans = dataRows; + viewBinding.refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + EasyToast.show(context, "到底了,别拉了"); + } + dataBeans.addAll(dataRows); + viewBinding.refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + } + //更新RecyclerView + weakReferenceHandler.sendEmptyMessage(20210425); + } + } + }); + caseViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (!isRefresh && !isLoadMore) { + if (loadState == LoadState.Loading) { + OtherUtils.showLoadingDialog(context, "案卷查询中,请稍后"); + } else { + OtherUtils.dismissLoadingDialog(); + } + } + } + }); + } + + /** + * 弱应用Handler,防止内存泄漏 + */ + private final Handler.Callback callback = msg -> { + if (msg.what == 20210425) { + if (isRefresh || isLoadMore) { + adapter.notifyDataSetChanged(); + } else { + //首次加载数据 + if (dataBeans.size() == 0) { + viewBinding.emptyView.show(false, "抱歉,没有查到符合您规定条件的案卷", null, "", new View.OnClickListener() { + @Override + public void onClick(View v) { + pageIndex = 1; + obtainSearchResult(); + } + }); + } else { + viewBinding.emptyView.hide(); + adapter = new CaseSearchResultAdapter(context, dataBeans); + viewBinding.caseRecyclerView.setAdapter(adapter); + adapter.setOnItemClickListener(new CaseSearchResultAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + ContextUtil.navigatePageTo( + context, + CaseDetailActivity.class, + dataBeans.get(position).getId() + ); + } + }); + } + } + } + return true; + }; +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/SearchCaseActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/SearchCaseActivity.java index 0bfe6b3..dfd357e 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/SearchCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/SearchCaseActivity.java @@ -263,7 +263,7 @@ viewBinding.searchButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - Intent intent = new Intent(context, CaseListResultActivity.class); + Intent intent = new Intent(context, CaseSearchResultActivity.class); intent.putExtra("eorc", eorc); intent.putExtra("typeCode", typeCode); intent.putExtra("typeDetailCode", typeDetailCode); diff --git a/app/src/main/java/com/casic/dcms/mvvm/vm/CaseViewModel.java b/app/src/main/java/com/casic/dcms/mvvm/vm/CaseViewModel.java index 8b8a61d..64a368b 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/vm/CaseViewModel.java +++ b/app/src/main/java/com/casic/dcms/mvvm/vm/CaseViewModel.java @@ -6,7 +6,7 @@ import com.casic.dcms.mvvm.model.CaseDetailBean; import com.casic.dcms.mvvm.model.CaseHandleBean; import com.casic.dcms.mvvm.model.CaseHandledBean; -import com.casic.dcms.mvvm.model.CaseListResultBean; +import com.casic.dcms.mvvm.model.CaseSearchResultBean; import com.casic.dcms.mvvm.model.CaseVerifyBean; import com.casic.dcms.mvvm.model.OvertimeCaseBean; import com.casic.dcms.mvvm.model.PackageCaseBean; @@ -35,7 +35,7 @@ public MutableLiveData caseUrgentModel = new MutableLiveData<>(); public MutableLiveData caseOvertimeModel = new MutableLiveData<>(); public MutableLiveData shopCaseModel = new MutableLiveData<>(); - public MutableLiveData searchResultModel = new MutableLiveData<>(); + public MutableLiveData searchResultModel = new MutableLiveData<>(); public MutableLiveData caseDetailModel = new MutableLiveData<>(); /** @@ -292,7 +292,7 @@ String response = responseBody.string(); int responseCode = StringHelper.separateResponseCode(response); if (responseCode == 200) { - CaseListResultBean resultBean = gson.fromJson(response, new TypeToken() { + CaseSearchResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); searchResultModel.setValue(resultBean); } else { diff --git a/app/src/main/res/layout/activity_case_list.xml b/app/src/main/res/layout/activity_case_list.xml index 3070d85..dd90668 100644 --- a/app/src/main/res/layout/activity_case_list.xml +++ b/app/src/main/res/layout/activity_case_list.xml @@ -3,7 +3,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="@color/white" + android:background="@color/mainBackColor" android:orientation="vertical"> + android:layout_height="match_parent" + android:layout_marginTop="@dimen/dp_5">