diff --git a/.idea/misc.xml b/.idea/misc.xml index 552f6c3..d6ee830 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -35,6 +35,10 @@ + + + + @@ -48,6 +52,7 @@ + diff --git a/.idea/misc.xml b/.idea/misc.xml index 552f6c3..d6ee830 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -35,6 +35,10 @@ + + + + @@ -48,6 +52,7 @@ + diff --git a/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java b/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java index 6c4a6a6..1fafc8b 100644 --- a/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java @@ -11,35 +11,35 @@ import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; +import com.bumptech.glide.Glide; import com.casic.dcms.R; import com.casic.dcms.mvvm.model.DeptCaseBean; import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUIRadiusImageView; import java.util.List; -/** - * {@link PackageCaseListAdapter 不适用二级派遣员部门处置列表,因为该列表不光有三包案卷,还有普通案卷} - */ public class DeptTodoOrHandledAdapter extends RecyclerView.Adapter { - private final List dataBeans; + private final Context context; + private final List dataBeans; private final LayoutInflater layoutInflater; private PunishTypeAdapter adapter; - public DeptTodoOrHandledAdapter(Context context, List dataRows) { + public DeptTodoOrHandledAdapter(Context context, List dataRows) { + this.context = context; this.dataBeans = dataRows; layoutInflater = LayoutInflater.from(context); } @NonNull @Override - public DeptTodoOrHandledAdapter.ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - View view = layoutInflater.inflate(R.layout.item_case_rv, parent, false); - return new ItemViewHolder(view); + 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 DeptTodoOrHandledAdapter.ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { + public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { holder.bindView(dataBeans.get(position)); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @@ -56,28 +56,30 @@ return dataBeans.size(); } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { -// private final TextView leftTextView; + private final QMUIRadiusImageView caseImageView; private final TextView caseTitleView; private final TextView casePlaceView; private final TextView caseTimeView; ItemViewHolder(@NonNull View itemView) { super(itemView); -// leftTextView = itemView.findViewById(R.id.leftTextView); + caseImageView = itemView.findViewById(R.id.caseImageView); caseTitleView = itemView.findViewById(R.id.caseTitleView); casePlaceView = itemView.findViewById(R.id.casePlaceView); caseTimeView = itemView.findViewById(R.id.caseTimeView); } - @SuppressLint("SetTextI18n") - void bindView(DeptCaseBean.DataBean.RowsBean rowsBean) { - String eorcName = rowsBean.getEorcName(); - if (TextUtils.isEmpty(eorcName)) { - eorcName = "未知"; + void bindView(DeptCaseBean.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); + } } -// 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 552f6c3..d6ee830 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -35,6 +35,10 @@ + + + + @@ -48,6 +52,7 @@ + diff --git a/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java b/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java index 6c4a6a6..1fafc8b 100644 --- a/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java @@ -11,35 +11,35 @@ import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; +import com.bumptech.glide.Glide; import com.casic.dcms.R; import com.casic.dcms.mvvm.model.DeptCaseBean; import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUIRadiusImageView; import java.util.List; -/** - * {@link PackageCaseListAdapter 不适用二级派遣员部门处置列表,因为该列表不光有三包案卷,还有普通案卷} - */ public class DeptTodoOrHandledAdapter extends RecyclerView.Adapter { - private final List dataBeans; + private final Context context; + private final List dataBeans; private final LayoutInflater layoutInflater; private PunishTypeAdapter adapter; - public DeptTodoOrHandledAdapter(Context context, List dataRows) { + public DeptTodoOrHandledAdapter(Context context, List dataRows) { + this.context = context; this.dataBeans = dataRows; layoutInflater = LayoutInflater.from(context); } @NonNull @Override - public DeptTodoOrHandledAdapter.ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - View view = layoutInflater.inflate(R.layout.item_case_rv, parent, false); - return new ItemViewHolder(view); + 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 DeptTodoOrHandledAdapter.ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { + public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { holder.bindView(dataBeans.get(position)); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @@ -56,28 +56,30 @@ return dataBeans.size(); } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { -// private final TextView leftTextView; + private final QMUIRadiusImageView caseImageView; private final TextView caseTitleView; private final TextView casePlaceView; private final TextView caseTimeView; ItemViewHolder(@NonNull View itemView) { super(itemView); -// leftTextView = itemView.findViewById(R.id.leftTextView); + caseImageView = itemView.findViewById(R.id.caseImageView); caseTitleView = itemView.findViewById(R.id.caseTitleView); casePlaceView = itemView.findViewById(R.id.casePlaceView); caseTimeView = itemView.findViewById(R.id.caseTimeView); } - @SuppressLint("SetTextI18n") - void bindView(DeptCaseBean.DataBean.RowsBean rowsBean) { - String eorcName = rowsBean.getEorcName(); - if (TextUtils.isEmpty(eorcName)) { - eorcName = "未知"; + void bindView(DeptCaseBean.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); + } } -// 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/mvvm/model/DeptCaseBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/DeptCaseBean.java index 1a4ac47..79163d8 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/model/DeptCaseBean.java +++ b/app/src/main/java/com/casic/dcms/mvvm/model/DeptCaseBean.java @@ -8,7 +8,7 @@ public class DeptCaseBean { private int code; - private DataBean data; + private DataDTO data; private String message; private boolean success; @@ -20,11 +20,11 @@ this.code = code; } - public DataBean getData() { + public DataDTO getData() { return data; } - public void setData(DataBean data) { + public void setData(DataDTO data) { this.data = data; } @@ -44,10 +44,17 @@ this.success = success; } - public static class DataBean { - + public static class DataDTO { + private List rows; private int total; - private List rows; + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } public int getTotal() { return total; @@ -57,26 +64,14 @@ this.total = total; } - public List getRows() { - return rows; - } - - public void setRows(List rows) { - this.rows = rows; - } - - public static class RowsBean { - + public static class RowsDTO { private int isPostpone; - private int preState; private String description; private int source; private String eorcName; private String casetypeDetailName; private String remainingTime; private String casetypeName; - private String currUserId; - private String currUserName; private String processId; private int caseState; private String id; @@ -84,10 +79,10 @@ private String fieldintro; private String lat; private String caseStateName; - private String preOperator; private String lng; private String isOvertime; private String currRoleName; + private String fileIdVerify; private String casetypeDetailCode; private String onedeptid; private String eorc; @@ -95,8 +90,14 @@ private String caseid; private String casetypeCode; private String nodeLimittime; + private String taskName; private String sourceName; + private String fileIdProcess; private String reportTime; + private String currUserId; + private String currUserName; + private String currDeptId; + private String currDeptName; private String onedeptName; public int getIsPostpone() { @@ -107,14 +108,6 @@ this.isPostpone = isPostpone; } - public int getPreState() { - return preState; - } - - public void setPreState(int preState) { - this.preState = preState; - } - public String getDescription() { return description; } @@ -163,22 +156,6 @@ this.casetypeName = casetypeName; } - public String getCurrUserId() { - return currUserId; - } - - public void setCurrUserId(String currUserId) { - this.currUserId = currUserId; - } - - public String getCurrUserName() { - return currUserName; - } - - public void setCurrUserName(String currUserName) { - this.currUserName = currUserName; - } - public String getProcessId() { return processId; } @@ -235,14 +212,6 @@ this.caseStateName = caseStateName; } - public String getPreOperator() { - return preOperator; - } - - public void setPreOperator(String preOperator) { - this.preOperator = preOperator; - } - public String getLng() { return lng; } @@ -267,6 +236,14 @@ this.currRoleName = currRoleName; } + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + public String getCasetypeDetailCode() { return casetypeDetailCode; } @@ -323,6 +300,14 @@ this.nodeLimittime = nodeLimittime; } + public String getTaskName() { + return taskName; + } + + public void setTaskName(String taskName) { + this.taskName = taskName; + } + public String getSourceName() { return sourceName; } @@ -331,6 +316,14 @@ this.sourceName = sourceName; } + public String getFileIdProcess() { + return fileIdProcess; + } + + public void setFileIdProcess(String fileIdProcess) { + this.fileIdProcess = fileIdProcess; + } + public String getReportTime() { return reportTime; } @@ -339,6 +332,38 @@ this.reportTime = reportTime; } + public String getCurrUserId() { + return currUserId; + } + + public void setCurrUserId(String currUserId) { + this.currUserId = currUserId; + } + + public String getCurrUserName() { + return currUserName; + } + + public void setCurrUserName(String currUserName) { + this.currUserName = currUserName; + } + + public String getCurrDeptId() { + return currDeptId; + } + + public void setCurrDeptId(String currDeptId) { + this.currDeptId = currDeptId; + } + + public String getCurrDeptName() { + return currDeptName; + } + + public void setCurrDeptName(String currDeptName) { + this.currDeptName = currDeptName; + } + public String getOnedeptName() { return onedeptName; } diff --git a/.idea/misc.xml b/.idea/misc.xml index 552f6c3..d6ee830 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -35,6 +35,10 @@ + + + + @@ -48,6 +52,7 @@ + diff --git a/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java b/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java index 6c4a6a6..1fafc8b 100644 --- a/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java @@ -11,35 +11,35 @@ import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; +import com.bumptech.glide.Glide; import com.casic.dcms.R; import com.casic.dcms.mvvm.model.DeptCaseBean; import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUIRadiusImageView; import java.util.List; -/** - * {@link PackageCaseListAdapter 不适用二级派遣员部门处置列表,因为该列表不光有三包案卷,还有普通案卷} - */ public class DeptTodoOrHandledAdapter extends RecyclerView.Adapter { - private final List dataBeans; + private final Context context; + private final List dataBeans; private final LayoutInflater layoutInflater; private PunishTypeAdapter adapter; - public DeptTodoOrHandledAdapter(Context context, List dataRows) { + public DeptTodoOrHandledAdapter(Context context, List dataRows) { + this.context = context; this.dataBeans = dataRows; layoutInflater = LayoutInflater.from(context); } @NonNull @Override - public DeptTodoOrHandledAdapter.ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - View view = layoutInflater.inflate(R.layout.item_case_rv, parent, false); - return new ItemViewHolder(view); + 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 DeptTodoOrHandledAdapter.ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { + public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { holder.bindView(dataBeans.get(position)); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @@ -56,28 +56,30 @@ return dataBeans.size(); } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { -// private final TextView leftTextView; + private final QMUIRadiusImageView caseImageView; private final TextView caseTitleView; private final TextView casePlaceView; private final TextView caseTimeView; ItemViewHolder(@NonNull View itemView) { super(itemView); -// leftTextView = itemView.findViewById(R.id.leftTextView); + caseImageView = itemView.findViewById(R.id.caseImageView); caseTitleView = itemView.findViewById(R.id.caseTitleView); casePlaceView = itemView.findViewById(R.id.casePlaceView); caseTimeView = itemView.findViewById(R.id.caseTimeView); } - @SuppressLint("SetTextI18n") - void bindView(DeptCaseBean.DataBean.RowsBean rowsBean) { - String eorcName = rowsBean.getEorcName(); - if (TextUtils.isEmpty(eorcName)) { - eorcName = "未知"; + void bindView(DeptCaseBean.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); + } } -// 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/mvvm/model/DeptCaseBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/DeptCaseBean.java index 1a4ac47..79163d8 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/model/DeptCaseBean.java +++ b/app/src/main/java/com/casic/dcms/mvvm/model/DeptCaseBean.java @@ -8,7 +8,7 @@ public class DeptCaseBean { private int code; - private DataBean data; + private DataDTO data; private String message; private boolean success; @@ -20,11 +20,11 @@ this.code = code; } - public DataBean getData() { + public DataDTO getData() { return data; } - public void setData(DataBean data) { + public void setData(DataDTO data) { this.data = data; } @@ -44,10 +44,17 @@ this.success = success; } - public static class DataBean { - + public static class DataDTO { + private List rows; private int total; - private List rows; + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } public int getTotal() { return total; @@ -57,26 +64,14 @@ this.total = total; } - public List getRows() { - return rows; - } - - public void setRows(List rows) { - this.rows = rows; - } - - public static class RowsBean { - + public static class RowsDTO { private int isPostpone; - private int preState; private String description; private int source; private String eorcName; private String casetypeDetailName; private String remainingTime; private String casetypeName; - private String currUserId; - private String currUserName; private String processId; private int caseState; private String id; @@ -84,10 +79,10 @@ private String fieldintro; private String lat; private String caseStateName; - private String preOperator; private String lng; private String isOvertime; private String currRoleName; + private String fileIdVerify; private String casetypeDetailCode; private String onedeptid; private String eorc; @@ -95,8 +90,14 @@ private String caseid; private String casetypeCode; private String nodeLimittime; + private String taskName; private String sourceName; + private String fileIdProcess; private String reportTime; + private String currUserId; + private String currUserName; + private String currDeptId; + private String currDeptName; private String onedeptName; public int getIsPostpone() { @@ -107,14 +108,6 @@ this.isPostpone = isPostpone; } - public int getPreState() { - return preState; - } - - public void setPreState(int preState) { - this.preState = preState; - } - public String getDescription() { return description; } @@ -163,22 +156,6 @@ this.casetypeName = casetypeName; } - public String getCurrUserId() { - return currUserId; - } - - public void setCurrUserId(String currUserId) { - this.currUserId = currUserId; - } - - public String getCurrUserName() { - return currUserName; - } - - public void setCurrUserName(String currUserName) { - this.currUserName = currUserName; - } - public String getProcessId() { return processId; } @@ -235,14 +212,6 @@ this.caseStateName = caseStateName; } - public String getPreOperator() { - return preOperator; - } - - public void setPreOperator(String preOperator) { - this.preOperator = preOperator; - } - public String getLng() { return lng; } @@ -267,6 +236,14 @@ this.currRoleName = currRoleName; } + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + public String getCasetypeDetailCode() { return casetypeDetailCode; } @@ -323,6 +300,14 @@ this.nodeLimittime = nodeLimittime; } + public String getTaskName() { + return taskName; + } + + public void setTaskName(String taskName) { + this.taskName = taskName; + } + public String getSourceName() { return sourceName; } @@ -331,6 +316,14 @@ this.sourceName = sourceName; } + public String getFileIdProcess() { + return fileIdProcess; + } + + public void setFileIdProcess(String fileIdProcess) { + this.fileIdProcess = fileIdProcess; + } + public String getReportTime() { return reportTime; } @@ -339,6 +332,38 @@ this.reportTime = reportTime; } + public String getCurrUserId() { + return currUserId; + } + + public void setCurrUserId(String currUserId) { + this.currUserId = currUserId; + } + + public String getCurrUserName() { + return currUserName; + } + + public void setCurrUserName(String currUserName) { + this.currUserName = currUserName; + } + + public String getCurrDeptId() { + return currDeptId; + } + + public void setCurrDeptId(String currDeptId) { + this.currDeptId = currDeptId; + } + + public String getCurrDeptName() { + return currDeptName; + } + + public void setCurrDeptName(String currDeptName) { + this.currDeptName = currDeptName; + } + public String getOnedeptName() { return onedeptName; } diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java index de23222..9e72c93 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java @@ -15,6 +15,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.mvvm.model.CaseDetailBean; import com.casic.dcms.mvvm.model.CaseNextNodeBean; +import com.casic.dcms.mvvm.vm.CaseOperateViewModel; import com.casic.dcms.mvvm.vm.CaseViewModel; import com.casic.dcms.mvvm.vm.NodeViewModel; import com.casic.dcms.utils.JzExoMedia; @@ -40,6 +41,7 @@ private final Context context = this; private CaseViewModel caseViewModel; private NodeViewModel nodeViewModel; + private CaseOperateViewModel operateViewModel; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private List nodeDataBeans; private String id; @@ -62,6 +64,7 @@ caseViewModel.obtainCaseDetail(id); nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); + operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); } @Override @@ -230,8 +233,6 @@ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { dialog.dismiss(); viewBinding.commonTipsView.setText(tag); - - viewBinding.optionEditView.setText(tag); } }).build().show(); } @@ -245,14 +246,28 @@ EasyToast.show(context, "还未选择操作类型"); return; } - String optionInput = StringHelper.filterString(viewBinding.optionEditView.getText().toString()); + String optionInput = StringHelper.filterString(viewBinding.commonTipsView.getText().toString()); if (TextUtils.isEmpty(optionInput)) { EasyToast.show(context, "不同意/同意的意见必须填写"); return; } -// caseViewModel.dispatcherHandleCase(data.getProcessId(), id, -// String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, -// data.getProcessPersonid()); + operateViewModel.dispatcherHandleCase(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, + data.getProcessPersonid()); + } + }); + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + OtherUtils.showLoadingDialog(context, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + OtherUtils.dismissLoadingDialog(); + finish(); + } else { + EasyToast.show(context, "处理失败,请重试"); + OtherUtils.dismissLoadingDialog(); + } } }); } diff --git a/.idea/misc.xml b/.idea/misc.xml index 552f6c3..d6ee830 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -35,6 +35,10 @@ + + + + @@ -48,6 +52,7 @@ + diff --git a/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java b/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java index 6c4a6a6..1fafc8b 100644 --- a/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java @@ -11,35 +11,35 @@ import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; +import com.bumptech.glide.Glide; import com.casic.dcms.R; import com.casic.dcms.mvvm.model.DeptCaseBean; import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUIRadiusImageView; import java.util.List; -/** - * {@link PackageCaseListAdapter 不适用二级派遣员部门处置列表,因为该列表不光有三包案卷,还有普通案卷} - */ public class DeptTodoOrHandledAdapter extends RecyclerView.Adapter { - private final List dataBeans; + private final Context context; + private final List dataBeans; private final LayoutInflater layoutInflater; private PunishTypeAdapter adapter; - public DeptTodoOrHandledAdapter(Context context, List dataRows) { + public DeptTodoOrHandledAdapter(Context context, List dataRows) { + this.context = context; this.dataBeans = dataRows; layoutInflater = LayoutInflater.from(context); } @NonNull @Override - public DeptTodoOrHandledAdapter.ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - View view = layoutInflater.inflate(R.layout.item_case_rv, parent, false); - return new ItemViewHolder(view); + 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 DeptTodoOrHandledAdapter.ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { + public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { holder.bindView(dataBeans.get(position)); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @@ -56,28 +56,30 @@ return dataBeans.size(); } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { -// private final TextView leftTextView; + private final QMUIRadiusImageView caseImageView; private final TextView caseTitleView; private final TextView casePlaceView; private final TextView caseTimeView; ItemViewHolder(@NonNull View itemView) { super(itemView); -// leftTextView = itemView.findViewById(R.id.leftTextView); + caseImageView = itemView.findViewById(R.id.caseImageView); caseTitleView = itemView.findViewById(R.id.caseTitleView); casePlaceView = itemView.findViewById(R.id.casePlaceView); caseTimeView = itemView.findViewById(R.id.caseTimeView); } - @SuppressLint("SetTextI18n") - void bindView(DeptCaseBean.DataBean.RowsBean rowsBean) { - String eorcName = rowsBean.getEorcName(); - if (TextUtils.isEmpty(eorcName)) { - eorcName = "未知"; + void bindView(DeptCaseBean.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); + } } -// 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/mvvm/model/DeptCaseBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/DeptCaseBean.java index 1a4ac47..79163d8 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/model/DeptCaseBean.java +++ b/app/src/main/java/com/casic/dcms/mvvm/model/DeptCaseBean.java @@ -8,7 +8,7 @@ public class DeptCaseBean { private int code; - private DataBean data; + private DataDTO data; private String message; private boolean success; @@ -20,11 +20,11 @@ this.code = code; } - public DataBean getData() { + public DataDTO getData() { return data; } - public void setData(DataBean data) { + public void setData(DataDTO data) { this.data = data; } @@ -44,10 +44,17 @@ this.success = success; } - public static class DataBean { - + public static class DataDTO { + private List rows; private int total; - private List rows; + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } public int getTotal() { return total; @@ -57,26 +64,14 @@ this.total = total; } - public List getRows() { - return rows; - } - - public void setRows(List rows) { - this.rows = rows; - } - - public static class RowsBean { - + public static class RowsDTO { private int isPostpone; - private int preState; private String description; private int source; private String eorcName; private String casetypeDetailName; private String remainingTime; private String casetypeName; - private String currUserId; - private String currUserName; private String processId; private int caseState; private String id; @@ -84,10 +79,10 @@ private String fieldintro; private String lat; private String caseStateName; - private String preOperator; private String lng; private String isOvertime; private String currRoleName; + private String fileIdVerify; private String casetypeDetailCode; private String onedeptid; private String eorc; @@ -95,8 +90,14 @@ private String caseid; private String casetypeCode; private String nodeLimittime; + private String taskName; private String sourceName; + private String fileIdProcess; private String reportTime; + private String currUserId; + private String currUserName; + private String currDeptId; + private String currDeptName; private String onedeptName; public int getIsPostpone() { @@ -107,14 +108,6 @@ this.isPostpone = isPostpone; } - public int getPreState() { - return preState; - } - - public void setPreState(int preState) { - this.preState = preState; - } - public String getDescription() { return description; } @@ -163,22 +156,6 @@ this.casetypeName = casetypeName; } - public String getCurrUserId() { - return currUserId; - } - - public void setCurrUserId(String currUserId) { - this.currUserId = currUserId; - } - - public String getCurrUserName() { - return currUserName; - } - - public void setCurrUserName(String currUserName) { - this.currUserName = currUserName; - } - public String getProcessId() { return processId; } @@ -235,14 +212,6 @@ this.caseStateName = caseStateName; } - public String getPreOperator() { - return preOperator; - } - - public void setPreOperator(String preOperator) { - this.preOperator = preOperator; - } - public String getLng() { return lng; } @@ -267,6 +236,14 @@ this.currRoleName = currRoleName; } + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + public String getCasetypeDetailCode() { return casetypeDetailCode; } @@ -323,6 +300,14 @@ this.nodeLimittime = nodeLimittime; } + public String getTaskName() { + return taskName; + } + + public void setTaskName(String taskName) { + this.taskName = taskName; + } + public String getSourceName() { return sourceName; } @@ -331,6 +316,14 @@ this.sourceName = sourceName; } + public String getFileIdProcess() { + return fileIdProcess; + } + + public void setFileIdProcess(String fileIdProcess) { + this.fileIdProcess = fileIdProcess; + } + public String getReportTime() { return reportTime; } @@ -339,6 +332,38 @@ this.reportTime = reportTime; } + public String getCurrUserId() { + return currUserId; + } + + public void setCurrUserId(String currUserId) { + this.currUserId = currUserId; + } + + public String getCurrUserName() { + return currUserName; + } + + public void setCurrUserName(String currUserName) { + this.currUserName = currUserName; + } + + public String getCurrDeptId() { + return currDeptId; + } + + public void setCurrDeptId(String currDeptId) { + this.currDeptId = currDeptId; + } + + public String getCurrDeptName() { + return currDeptName; + } + + public void setCurrDeptName(String currDeptName) { + this.currDeptName = currDeptName; + } + public String getOnedeptName() { return onedeptName; } diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java index de23222..9e72c93 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java @@ -15,6 +15,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.mvvm.model.CaseDetailBean; import com.casic.dcms.mvvm.model.CaseNextNodeBean; +import com.casic.dcms.mvvm.vm.CaseOperateViewModel; import com.casic.dcms.mvvm.vm.CaseViewModel; import com.casic.dcms.mvvm.vm.NodeViewModel; import com.casic.dcms.utils.JzExoMedia; @@ -40,6 +41,7 @@ private final Context context = this; private CaseViewModel caseViewModel; private NodeViewModel nodeViewModel; + private CaseOperateViewModel operateViewModel; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private List nodeDataBeans; private String id; @@ -62,6 +64,7 @@ caseViewModel.obtainCaseDetail(id); nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); + operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); } @Override @@ -230,8 +233,6 @@ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { dialog.dismiss(); viewBinding.commonTipsView.setText(tag); - - viewBinding.optionEditView.setText(tag); } }).build().show(); } @@ -245,14 +246,28 @@ EasyToast.show(context, "还未选择操作类型"); return; } - String optionInput = StringHelper.filterString(viewBinding.optionEditView.getText().toString()); + String optionInput = StringHelper.filterString(viewBinding.commonTipsView.getText().toString()); if (TextUtils.isEmpty(optionInput)) { EasyToast.show(context, "不同意/同意的意见必须填写"); return; } -// caseViewModel.dispatcherHandleCase(data.getProcessId(), id, -// String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, -// data.getProcessPersonid()); + operateViewModel.dispatcherHandleCase(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, + data.getProcessPersonid()); + } + }); + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + OtherUtils.showLoadingDialog(context, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + OtherUtils.dismissLoadingDialog(); + finish(); + } else { + EasyToast.show(context, "处理失败,请重试"); + OtherUtils.dismissLoadingDialog(); + } } }); } diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java index 31fc6a0..f23fc0b 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java @@ -16,6 +16,7 @@ import com.casic.dcms.mvvm.model.CaseDetailBean; import com.casic.dcms.mvvm.model.CaseNextNodeBean; import com.casic.dcms.mvvm.model.ProcessPersonBean; +import com.casic.dcms.mvvm.vm.CaseOperateViewModel; import com.casic.dcms.mvvm.vm.CaseViewModel; import com.casic.dcms.mvvm.vm.NodeViewModel; import com.casic.dcms.mvvm.vm.PersonViewModel; @@ -26,6 +27,7 @@ import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.ReadOnlyImageAdapter; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; +import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil; import com.pengxh.androidx.lite.vm.LoadState; import com.pengxh.androidx.lite.widget.EasyToast; @@ -36,13 +38,14 @@ import cn.jzvd.Jzvd; -public class DeptAuthorizeDetailActivity extends AndroidxBaseActivity implements View.OnClickListener { +public class DeptAuthorizeDetailActivity extends AndroidxBaseActivity { private final Context context = this; private CaseViewModel caseViewModel; private NodeViewModel nodeViewModel; - private List nodeDataBeans; private PersonViewModel personViewModel; + private CaseOperateViewModel operateViewModel; + private List nodeDataBeans; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private List personBeans; private String id; @@ -61,12 +64,13 @@ @Override public void initData() { - id = getIntent().getStringExtra("id"); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); personViewModel = new ViewModelProvider(this).get(PersonViewModel.class); + operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); } @Override @@ -192,39 +196,18 @@ } }); - personViewModel.processPersonModel.observe(this, new Observer() { + viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override - public void onChanged(ProcessPersonBean resultBean) { - if (resultBean.getCode() == 200) { - personBeans = resultBean.getData(); - if (personBeans.size() == 0) { - viewBinding.caseHandlePersonView.setText("无处置人员"); - } else { - ProcessPersonBean.DataBean dataBean = personBeans.get(0); - taskUserId = dataBean.getId(); - viewBinding.caseHandlePersonView.setText(dataBean.getName());//默认选择第一个 - } - viewBinding.caseHandlePersonView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); - } + public void onClick(View v) { + OtherUtils.displayOnMap(context, data.getEorcName(), data.getLng(), data.getLat()); } }); - viewBinding.locationMapView.setOnClickListener(this); - viewBinding.caseOptTypeLayout.setOnClickListener(this); - viewBinding.casePersonLayout.setOnClickListener(this); - viewBinding.commonTipsLayout.setOnClickListener(this); - viewBinding.submitButton.setOnClickListener(this); - } - - @Override - public void onClick(View v) { - int viewId = v.getId(); - if (viewId == R.id.locationMapView) { - OtherUtils.displayOnMap(this, data.getEorcName(), data.getLng(), data.getLat()); - } else if (viewId == R.id.caseOptTypeLayout) { - if (nodeDataBeans != null) { + viewBinding.caseOptTypeLayout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { if (nodeDataBeans.size() >= 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(context); sheetBuilder.setTitle("操作类型"); for (CaseNextNodeBean.DataBean dataBean : nodeDataBeans) { sheetBuilder.addItem(dataBean.getNextOperation()); @@ -254,10 +237,29 @@ }).build().show(); } } - } else if (viewId == R.id.casePersonLayout) { - if (personBeans != null) { + }); + personViewModel.processPersonModel.observe(this, new Observer() { + @Override + public void onChanged(ProcessPersonBean resultBean) { + if (resultBean.getCode() == 200) { + personBeans = resultBean.getData(); + if (personBeans.size() == 0) { + viewBinding.caseHandlePersonView.setText("无处置人员"); + } else { + ProcessPersonBean.DataBean dataBean = personBeans.get(0); + taskUserId = dataBean.getId(); + viewBinding.caseHandlePersonView.setText(dataBean.getName());//默认选择第一个 + } + viewBinding.caseHandlePersonView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); + } + } + }); + + viewBinding.casePersonLayout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { if (personBeans.size() >= 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(context); sheetBuilder.setTitle("处置人员"); for (ProcessPersonBean.DataBean dataBean : personBeans) { sheetBuilder.addItem(dataBean.getName()); @@ -274,50 +276,71 @@ }).build().show(); } } - } else if (viewId == R.id.commonTipsLayout) { - new QMUIBottomSheet.BottomListSheetBuilder(this) - .setTitle("常见用语") - .addItem("请及时处理") - .addItem("调查后及时回复") - .setGravityCenter(true) - .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - viewBinding.commonTipsView.setText(tag); - viewBinding.commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); + }); - viewBinding.optionEditView.setText(tag); - viewBinding.commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); - } - }).build().show(); - } else if (viewId == R.id.submitButton) { - String optType = viewBinding.optTypeView.getText().toString(); - if (optType.equals("")) { - EasyToast.show(this, "还未选择操作类型"); - return; + viewBinding.commonTipsLayout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new QMUIBottomSheet.BottomListSheetBuilder(context) + .setTitle("常见用语") + .addItem("请及时处理") + .addItem("调查后及时回复") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + viewBinding.commonTipsView.setText(tag); + viewBinding.commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); + } + }).build().show(); } - if (optType.equals("返回处理")) { - //选择处理人员时,必选一个处置人员 - String handlePerson = viewBinding.caseHandlePersonView.getText().toString(); - if (handlePerson.equals("")) { - EasyToast.show(this, "当前状态必须指定处置员"); + }); + + viewBinding.submitButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + String optType = viewBinding.optTypeView.getText().toString(); + if (optType.equals("")) { + EasyToast.show(context, "还未选择操作类型"); return; } + if (optType.equals("返回处理")) { + //选择处理人员时,必选一个处置人员 + String handlePerson = viewBinding.caseHandlePersonView.getText().toString(); + if (handlePerson.equals("")) { + EasyToast.show(context, "当前状态必须指定处置员"); + return; + } + } + String optionInput = StringHelper.filterString(viewBinding.commonTipsView.getText().toString()); + if (TextUtils.isEmpty(optionInput)) { + EasyToast.show(context, "处理意见必须填写"); + return; + } + //只有选择返回处理的时候taskUserId才会不为空,否则用当前流程人员的id代替 + if (TextUtils.isEmpty(taskUserId)) { + taskUserId = data.getProcessPersonid(); + } + operateViewModel.dispatcherHandleCase(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, + taskUserId); } - String optionInput = StringHelper.filterString(viewBinding.optionEditView.getText().toString()); - if (TextUtils.isEmpty(optionInput)) { - EasyToast.show(this, "处理意见必须填写"); - return; + }); + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + OtherUtils.showLoadingDialog(context, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + OtherUtils.dismissLoadingDialog(); + finish(); + } else { + EasyToast.show(context, "处理失败,请重试"); + OtherUtils.dismissLoadingDialog(); + } } - //只有选择返回处理的时候taskUserId才会不为空,否则用当前流程人员的id代替 - if (TextUtils.isEmpty(taskUserId)) { - taskUserId = data.getProcessPersonid(); - } -// caseViewModel.dispatcherHandleCase(data.getProcessId(), id, -// String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, -// taskUserId); - } + }); } @Override diff --git a/.idea/misc.xml b/.idea/misc.xml index 552f6c3..d6ee830 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -35,6 +35,10 @@ + + + + @@ -48,6 +52,7 @@ + diff --git a/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java b/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java index 6c4a6a6..1fafc8b 100644 --- a/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java @@ -11,35 +11,35 @@ import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; +import com.bumptech.glide.Glide; import com.casic.dcms.R; import com.casic.dcms.mvvm.model.DeptCaseBean; import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUIRadiusImageView; import java.util.List; -/** - * {@link PackageCaseListAdapter 不适用二级派遣员部门处置列表,因为该列表不光有三包案卷,还有普通案卷} - */ public class DeptTodoOrHandledAdapter extends RecyclerView.Adapter { - private final List dataBeans; + private final Context context; + private final List dataBeans; private final LayoutInflater layoutInflater; private PunishTypeAdapter adapter; - public DeptTodoOrHandledAdapter(Context context, List dataRows) { + public DeptTodoOrHandledAdapter(Context context, List dataRows) { + this.context = context; this.dataBeans = dataRows; layoutInflater = LayoutInflater.from(context); } @NonNull @Override - public DeptTodoOrHandledAdapter.ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - View view = layoutInflater.inflate(R.layout.item_case_rv, parent, false); - return new ItemViewHolder(view); + 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 DeptTodoOrHandledAdapter.ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { + public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { holder.bindView(dataBeans.get(position)); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @@ -56,28 +56,30 @@ return dataBeans.size(); } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { -// private final TextView leftTextView; + private final QMUIRadiusImageView caseImageView; private final TextView caseTitleView; private final TextView casePlaceView; private final TextView caseTimeView; ItemViewHolder(@NonNull View itemView) { super(itemView); -// leftTextView = itemView.findViewById(R.id.leftTextView); + caseImageView = itemView.findViewById(R.id.caseImageView); caseTitleView = itemView.findViewById(R.id.caseTitleView); casePlaceView = itemView.findViewById(R.id.casePlaceView); caseTimeView = itemView.findViewById(R.id.caseTimeView); } - @SuppressLint("SetTextI18n") - void bindView(DeptCaseBean.DataBean.RowsBean rowsBean) { - String eorcName = rowsBean.getEorcName(); - if (TextUtils.isEmpty(eorcName)) { - eorcName = "未知"; + void bindView(DeptCaseBean.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); + } } -// 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/mvvm/model/DeptCaseBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/DeptCaseBean.java index 1a4ac47..79163d8 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/model/DeptCaseBean.java +++ b/app/src/main/java/com/casic/dcms/mvvm/model/DeptCaseBean.java @@ -8,7 +8,7 @@ public class DeptCaseBean { private int code; - private DataBean data; + private DataDTO data; private String message; private boolean success; @@ -20,11 +20,11 @@ this.code = code; } - public DataBean getData() { + public DataDTO getData() { return data; } - public void setData(DataBean data) { + public void setData(DataDTO data) { this.data = data; } @@ -44,10 +44,17 @@ this.success = success; } - public static class DataBean { - + public static class DataDTO { + private List rows; private int total; - private List rows; + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } public int getTotal() { return total; @@ -57,26 +64,14 @@ this.total = total; } - public List getRows() { - return rows; - } - - public void setRows(List rows) { - this.rows = rows; - } - - public static class RowsBean { - + public static class RowsDTO { private int isPostpone; - private int preState; private String description; private int source; private String eorcName; private String casetypeDetailName; private String remainingTime; private String casetypeName; - private String currUserId; - private String currUserName; private String processId; private int caseState; private String id; @@ -84,10 +79,10 @@ private String fieldintro; private String lat; private String caseStateName; - private String preOperator; private String lng; private String isOvertime; private String currRoleName; + private String fileIdVerify; private String casetypeDetailCode; private String onedeptid; private String eorc; @@ -95,8 +90,14 @@ private String caseid; private String casetypeCode; private String nodeLimittime; + private String taskName; private String sourceName; + private String fileIdProcess; private String reportTime; + private String currUserId; + private String currUserName; + private String currDeptId; + private String currDeptName; private String onedeptName; public int getIsPostpone() { @@ -107,14 +108,6 @@ this.isPostpone = isPostpone; } - public int getPreState() { - return preState; - } - - public void setPreState(int preState) { - this.preState = preState; - } - public String getDescription() { return description; } @@ -163,22 +156,6 @@ this.casetypeName = casetypeName; } - public String getCurrUserId() { - return currUserId; - } - - public void setCurrUserId(String currUserId) { - this.currUserId = currUserId; - } - - public String getCurrUserName() { - return currUserName; - } - - public void setCurrUserName(String currUserName) { - this.currUserName = currUserName; - } - public String getProcessId() { return processId; } @@ -235,14 +212,6 @@ this.caseStateName = caseStateName; } - public String getPreOperator() { - return preOperator; - } - - public void setPreOperator(String preOperator) { - this.preOperator = preOperator; - } - public String getLng() { return lng; } @@ -267,6 +236,14 @@ this.currRoleName = currRoleName; } + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + public String getCasetypeDetailCode() { return casetypeDetailCode; } @@ -323,6 +300,14 @@ this.nodeLimittime = nodeLimittime; } + public String getTaskName() { + return taskName; + } + + public void setTaskName(String taskName) { + this.taskName = taskName; + } + public String getSourceName() { return sourceName; } @@ -331,6 +316,14 @@ this.sourceName = sourceName; } + public String getFileIdProcess() { + return fileIdProcess; + } + + public void setFileIdProcess(String fileIdProcess) { + this.fileIdProcess = fileIdProcess; + } + public String getReportTime() { return reportTime; } @@ -339,6 +332,38 @@ this.reportTime = reportTime; } + public String getCurrUserId() { + return currUserId; + } + + public void setCurrUserId(String currUserId) { + this.currUserId = currUserId; + } + + public String getCurrUserName() { + return currUserName; + } + + public void setCurrUserName(String currUserName) { + this.currUserName = currUserName; + } + + public String getCurrDeptId() { + return currDeptId; + } + + public void setCurrDeptId(String currDeptId) { + this.currDeptId = currDeptId; + } + + public String getCurrDeptName() { + return currDeptName; + } + + public void setCurrDeptName(String currDeptName) { + this.currDeptName = currDeptName; + } + public String getOnedeptName() { return onedeptName; } diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java index de23222..9e72c93 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java @@ -15,6 +15,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.mvvm.model.CaseDetailBean; import com.casic.dcms.mvvm.model.CaseNextNodeBean; +import com.casic.dcms.mvvm.vm.CaseOperateViewModel; import com.casic.dcms.mvvm.vm.CaseViewModel; import com.casic.dcms.mvvm.vm.NodeViewModel; import com.casic.dcms.utils.JzExoMedia; @@ -40,6 +41,7 @@ private final Context context = this; private CaseViewModel caseViewModel; private NodeViewModel nodeViewModel; + private CaseOperateViewModel operateViewModel; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private List nodeDataBeans; private String id; @@ -62,6 +64,7 @@ caseViewModel.obtainCaseDetail(id); nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); + operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); } @Override @@ -230,8 +233,6 @@ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { dialog.dismiss(); viewBinding.commonTipsView.setText(tag); - - viewBinding.optionEditView.setText(tag); } }).build().show(); } @@ -245,14 +246,28 @@ EasyToast.show(context, "还未选择操作类型"); return; } - String optionInput = StringHelper.filterString(viewBinding.optionEditView.getText().toString()); + String optionInput = StringHelper.filterString(viewBinding.commonTipsView.getText().toString()); if (TextUtils.isEmpty(optionInput)) { EasyToast.show(context, "不同意/同意的意见必须填写"); return; } -// caseViewModel.dispatcherHandleCase(data.getProcessId(), id, -// String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, -// data.getProcessPersonid()); + operateViewModel.dispatcherHandleCase(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, + data.getProcessPersonid()); + } + }); + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + OtherUtils.showLoadingDialog(context, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + OtherUtils.dismissLoadingDialog(); + finish(); + } else { + EasyToast.show(context, "处理失败,请重试"); + OtherUtils.dismissLoadingDialog(); + } } }); } diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java index 31fc6a0..f23fc0b 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java @@ -16,6 +16,7 @@ import com.casic.dcms.mvvm.model.CaseDetailBean; import com.casic.dcms.mvvm.model.CaseNextNodeBean; import com.casic.dcms.mvvm.model.ProcessPersonBean; +import com.casic.dcms.mvvm.vm.CaseOperateViewModel; import com.casic.dcms.mvvm.vm.CaseViewModel; import com.casic.dcms.mvvm.vm.NodeViewModel; import com.casic.dcms.mvvm.vm.PersonViewModel; @@ -26,6 +27,7 @@ import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.ReadOnlyImageAdapter; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; +import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil; import com.pengxh.androidx.lite.vm.LoadState; import com.pengxh.androidx.lite.widget.EasyToast; @@ -36,13 +38,14 @@ import cn.jzvd.Jzvd; -public class DeptAuthorizeDetailActivity extends AndroidxBaseActivity implements View.OnClickListener { +public class DeptAuthorizeDetailActivity extends AndroidxBaseActivity { private final Context context = this; private CaseViewModel caseViewModel; private NodeViewModel nodeViewModel; - private List nodeDataBeans; private PersonViewModel personViewModel; + private CaseOperateViewModel operateViewModel; + private List nodeDataBeans; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private List personBeans; private String id; @@ -61,12 +64,13 @@ @Override public void initData() { - id = getIntent().getStringExtra("id"); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); personViewModel = new ViewModelProvider(this).get(PersonViewModel.class); + operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); } @Override @@ -192,39 +196,18 @@ } }); - personViewModel.processPersonModel.observe(this, new Observer() { + viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override - public void onChanged(ProcessPersonBean resultBean) { - if (resultBean.getCode() == 200) { - personBeans = resultBean.getData(); - if (personBeans.size() == 0) { - viewBinding.caseHandlePersonView.setText("无处置人员"); - } else { - ProcessPersonBean.DataBean dataBean = personBeans.get(0); - taskUserId = dataBean.getId(); - viewBinding.caseHandlePersonView.setText(dataBean.getName());//默认选择第一个 - } - viewBinding.caseHandlePersonView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); - } + public void onClick(View v) { + OtherUtils.displayOnMap(context, data.getEorcName(), data.getLng(), data.getLat()); } }); - viewBinding.locationMapView.setOnClickListener(this); - viewBinding.caseOptTypeLayout.setOnClickListener(this); - viewBinding.casePersonLayout.setOnClickListener(this); - viewBinding.commonTipsLayout.setOnClickListener(this); - viewBinding.submitButton.setOnClickListener(this); - } - - @Override - public void onClick(View v) { - int viewId = v.getId(); - if (viewId == R.id.locationMapView) { - OtherUtils.displayOnMap(this, data.getEorcName(), data.getLng(), data.getLat()); - } else if (viewId == R.id.caseOptTypeLayout) { - if (nodeDataBeans != null) { + viewBinding.caseOptTypeLayout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { if (nodeDataBeans.size() >= 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(context); sheetBuilder.setTitle("操作类型"); for (CaseNextNodeBean.DataBean dataBean : nodeDataBeans) { sheetBuilder.addItem(dataBean.getNextOperation()); @@ -254,10 +237,29 @@ }).build().show(); } } - } else if (viewId == R.id.casePersonLayout) { - if (personBeans != null) { + }); + personViewModel.processPersonModel.observe(this, new Observer() { + @Override + public void onChanged(ProcessPersonBean resultBean) { + if (resultBean.getCode() == 200) { + personBeans = resultBean.getData(); + if (personBeans.size() == 0) { + viewBinding.caseHandlePersonView.setText("无处置人员"); + } else { + ProcessPersonBean.DataBean dataBean = personBeans.get(0); + taskUserId = dataBean.getId(); + viewBinding.caseHandlePersonView.setText(dataBean.getName());//默认选择第一个 + } + viewBinding.caseHandlePersonView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); + } + } + }); + + viewBinding.casePersonLayout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { if (personBeans.size() >= 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(context); sheetBuilder.setTitle("处置人员"); for (ProcessPersonBean.DataBean dataBean : personBeans) { sheetBuilder.addItem(dataBean.getName()); @@ -274,50 +276,71 @@ }).build().show(); } } - } else if (viewId == R.id.commonTipsLayout) { - new QMUIBottomSheet.BottomListSheetBuilder(this) - .setTitle("常见用语") - .addItem("请及时处理") - .addItem("调查后及时回复") - .setGravityCenter(true) - .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - viewBinding.commonTipsView.setText(tag); - viewBinding.commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); + }); - viewBinding.optionEditView.setText(tag); - viewBinding.commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); - } - }).build().show(); - } else if (viewId == R.id.submitButton) { - String optType = viewBinding.optTypeView.getText().toString(); - if (optType.equals("")) { - EasyToast.show(this, "还未选择操作类型"); - return; + viewBinding.commonTipsLayout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new QMUIBottomSheet.BottomListSheetBuilder(context) + .setTitle("常见用语") + .addItem("请及时处理") + .addItem("调查后及时回复") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + viewBinding.commonTipsView.setText(tag); + viewBinding.commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); + } + }).build().show(); } - if (optType.equals("返回处理")) { - //选择处理人员时,必选一个处置人员 - String handlePerson = viewBinding.caseHandlePersonView.getText().toString(); - if (handlePerson.equals("")) { - EasyToast.show(this, "当前状态必须指定处置员"); + }); + + viewBinding.submitButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + String optType = viewBinding.optTypeView.getText().toString(); + if (optType.equals("")) { + EasyToast.show(context, "还未选择操作类型"); return; } + if (optType.equals("返回处理")) { + //选择处理人员时,必选一个处置人员 + String handlePerson = viewBinding.caseHandlePersonView.getText().toString(); + if (handlePerson.equals("")) { + EasyToast.show(context, "当前状态必须指定处置员"); + return; + } + } + String optionInput = StringHelper.filterString(viewBinding.commonTipsView.getText().toString()); + if (TextUtils.isEmpty(optionInput)) { + EasyToast.show(context, "处理意见必须填写"); + return; + } + //只有选择返回处理的时候taskUserId才会不为空,否则用当前流程人员的id代替 + if (TextUtils.isEmpty(taskUserId)) { + taskUserId = data.getProcessPersonid(); + } + operateViewModel.dispatcherHandleCase(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, + taskUserId); } - String optionInput = StringHelper.filterString(viewBinding.optionEditView.getText().toString()); - if (TextUtils.isEmpty(optionInput)) { - EasyToast.show(this, "处理意见必须填写"); - return; + }); + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + OtherUtils.showLoadingDialog(context, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + OtherUtils.dismissLoadingDialog(); + finish(); + } else { + EasyToast.show(context, "处理失败,请重试"); + OtherUtils.dismissLoadingDialog(); + } } - //只有选择返回处理的时候taskUserId才会不为空,否则用当前流程人员的id代替 - if (TextUtils.isEmpty(taskUserId)) { - taskUserId = data.getProcessPersonid(); - } -// caseViewModel.dispatcherHandleCase(data.getProcessId(), id, -// String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, -// taskUserId); - } + }); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DeptHandleActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DeptHandleActivity.java index 694bbd5..ca49b3d 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/DeptHandleActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/DeptHandleActivity.java @@ -18,6 +18,7 @@ import com.casic.dcms.utils.LocaleConstant; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; +import com.pengxh.androidx.lite.utils.DeviceSizeUtil; import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil; import java.util.ArrayList; @@ -49,8 +50,9 @@ //绑定TabLayout viewBinding.tabLayout.setupWithViewPager(viewBinding.viewPager); LinearLayout linearLayout = (LinearLayout) viewBinding.tabLayout.getChildAt(0); - linearLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE); linearLayout.setDividerDrawable(ContextCompat.getDrawable(this, R.drawable.layout_divider_vertical)); + linearLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE); + linearLayout.setDividerPadding(DeviceSizeUtil.dp2px(this, 12.5f)); } @Override diff --git a/.idea/misc.xml b/.idea/misc.xml index 552f6c3..d6ee830 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -35,6 +35,10 @@ + + + + @@ -48,6 +52,7 @@ + diff --git a/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java b/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java index 6c4a6a6..1fafc8b 100644 --- a/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java @@ -11,35 +11,35 @@ import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; +import com.bumptech.glide.Glide; import com.casic.dcms.R; import com.casic.dcms.mvvm.model.DeptCaseBean; import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUIRadiusImageView; import java.util.List; -/** - * {@link PackageCaseListAdapter 不适用二级派遣员部门处置列表,因为该列表不光有三包案卷,还有普通案卷} - */ public class DeptTodoOrHandledAdapter extends RecyclerView.Adapter { - private final List dataBeans; + private final Context context; + private final List dataBeans; private final LayoutInflater layoutInflater; private PunishTypeAdapter adapter; - public DeptTodoOrHandledAdapter(Context context, List dataRows) { + public DeptTodoOrHandledAdapter(Context context, List dataRows) { + this.context = context; this.dataBeans = dataRows; layoutInflater = LayoutInflater.from(context); } @NonNull @Override - public DeptTodoOrHandledAdapter.ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - View view = layoutInflater.inflate(R.layout.item_case_rv, parent, false); - return new ItemViewHolder(view); + 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 DeptTodoOrHandledAdapter.ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { + public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { holder.bindView(dataBeans.get(position)); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @@ -56,28 +56,30 @@ return dataBeans.size(); } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { -// private final TextView leftTextView; + private final QMUIRadiusImageView caseImageView; private final TextView caseTitleView; private final TextView casePlaceView; private final TextView caseTimeView; ItemViewHolder(@NonNull View itemView) { super(itemView); -// leftTextView = itemView.findViewById(R.id.leftTextView); + caseImageView = itemView.findViewById(R.id.caseImageView); caseTitleView = itemView.findViewById(R.id.caseTitleView); casePlaceView = itemView.findViewById(R.id.casePlaceView); caseTimeView = itemView.findViewById(R.id.caseTimeView); } - @SuppressLint("SetTextI18n") - void bindView(DeptCaseBean.DataBean.RowsBean rowsBean) { - String eorcName = rowsBean.getEorcName(); - if (TextUtils.isEmpty(eorcName)) { - eorcName = "未知"; + void bindView(DeptCaseBean.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); + } } -// 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/mvvm/model/DeptCaseBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/DeptCaseBean.java index 1a4ac47..79163d8 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/model/DeptCaseBean.java +++ b/app/src/main/java/com/casic/dcms/mvvm/model/DeptCaseBean.java @@ -8,7 +8,7 @@ public class DeptCaseBean { private int code; - private DataBean data; + private DataDTO data; private String message; private boolean success; @@ -20,11 +20,11 @@ this.code = code; } - public DataBean getData() { + public DataDTO getData() { return data; } - public void setData(DataBean data) { + public void setData(DataDTO data) { this.data = data; } @@ -44,10 +44,17 @@ this.success = success; } - public static class DataBean { - + public static class DataDTO { + private List rows; private int total; - private List rows; + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } public int getTotal() { return total; @@ -57,26 +64,14 @@ this.total = total; } - public List getRows() { - return rows; - } - - public void setRows(List rows) { - this.rows = rows; - } - - public static class RowsBean { - + public static class RowsDTO { private int isPostpone; - private int preState; private String description; private int source; private String eorcName; private String casetypeDetailName; private String remainingTime; private String casetypeName; - private String currUserId; - private String currUserName; private String processId; private int caseState; private String id; @@ -84,10 +79,10 @@ private String fieldintro; private String lat; private String caseStateName; - private String preOperator; private String lng; private String isOvertime; private String currRoleName; + private String fileIdVerify; private String casetypeDetailCode; private String onedeptid; private String eorc; @@ -95,8 +90,14 @@ private String caseid; private String casetypeCode; private String nodeLimittime; + private String taskName; private String sourceName; + private String fileIdProcess; private String reportTime; + private String currUserId; + private String currUserName; + private String currDeptId; + private String currDeptName; private String onedeptName; public int getIsPostpone() { @@ -107,14 +108,6 @@ this.isPostpone = isPostpone; } - public int getPreState() { - return preState; - } - - public void setPreState(int preState) { - this.preState = preState; - } - public String getDescription() { return description; } @@ -163,22 +156,6 @@ this.casetypeName = casetypeName; } - public String getCurrUserId() { - return currUserId; - } - - public void setCurrUserId(String currUserId) { - this.currUserId = currUserId; - } - - public String getCurrUserName() { - return currUserName; - } - - public void setCurrUserName(String currUserName) { - this.currUserName = currUserName; - } - public String getProcessId() { return processId; } @@ -235,14 +212,6 @@ this.caseStateName = caseStateName; } - public String getPreOperator() { - return preOperator; - } - - public void setPreOperator(String preOperator) { - this.preOperator = preOperator; - } - public String getLng() { return lng; } @@ -267,6 +236,14 @@ this.currRoleName = currRoleName; } + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + public String getCasetypeDetailCode() { return casetypeDetailCode; } @@ -323,6 +300,14 @@ this.nodeLimittime = nodeLimittime; } + public String getTaskName() { + return taskName; + } + + public void setTaskName(String taskName) { + this.taskName = taskName; + } + public String getSourceName() { return sourceName; } @@ -331,6 +316,14 @@ this.sourceName = sourceName; } + public String getFileIdProcess() { + return fileIdProcess; + } + + public void setFileIdProcess(String fileIdProcess) { + this.fileIdProcess = fileIdProcess; + } + public String getReportTime() { return reportTime; } @@ -339,6 +332,38 @@ this.reportTime = reportTime; } + public String getCurrUserId() { + return currUserId; + } + + public void setCurrUserId(String currUserId) { + this.currUserId = currUserId; + } + + public String getCurrUserName() { + return currUserName; + } + + public void setCurrUserName(String currUserName) { + this.currUserName = currUserName; + } + + public String getCurrDeptId() { + return currDeptId; + } + + public void setCurrDeptId(String currDeptId) { + this.currDeptId = currDeptId; + } + + public String getCurrDeptName() { + return currDeptName; + } + + public void setCurrDeptName(String currDeptName) { + this.currDeptName = currDeptName; + } + public String getOnedeptName() { return onedeptName; } diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java index de23222..9e72c93 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java @@ -15,6 +15,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.mvvm.model.CaseDetailBean; import com.casic.dcms.mvvm.model.CaseNextNodeBean; +import com.casic.dcms.mvvm.vm.CaseOperateViewModel; import com.casic.dcms.mvvm.vm.CaseViewModel; import com.casic.dcms.mvvm.vm.NodeViewModel; import com.casic.dcms.utils.JzExoMedia; @@ -40,6 +41,7 @@ private final Context context = this; private CaseViewModel caseViewModel; private NodeViewModel nodeViewModel; + private CaseOperateViewModel operateViewModel; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private List nodeDataBeans; private String id; @@ -62,6 +64,7 @@ caseViewModel.obtainCaseDetail(id); nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); + operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); } @Override @@ -230,8 +233,6 @@ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { dialog.dismiss(); viewBinding.commonTipsView.setText(tag); - - viewBinding.optionEditView.setText(tag); } }).build().show(); } @@ -245,14 +246,28 @@ EasyToast.show(context, "还未选择操作类型"); return; } - String optionInput = StringHelper.filterString(viewBinding.optionEditView.getText().toString()); + String optionInput = StringHelper.filterString(viewBinding.commonTipsView.getText().toString()); if (TextUtils.isEmpty(optionInput)) { EasyToast.show(context, "不同意/同意的意见必须填写"); return; } -// caseViewModel.dispatcherHandleCase(data.getProcessId(), id, -// String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, -// data.getProcessPersonid()); + operateViewModel.dispatcherHandleCase(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, + data.getProcessPersonid()); + } + }); + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + OtherUtils.showLoadingDialog(context, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + OtherUtils.dismissLoadingDialog(); + finish(); + } else { + EasyToast.show(context, "处理失败,请重试"); + OtherUtils.dismissLoadingDialog(); + } } }); } diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java index 31fc6a0..f23fc0b 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java @@ -16,6 +16,7 @@ import com.casic.dcms.mvvm.model.CaseDetailBean; import com.casic.dcms.mvvm.model.CaseNextNodeBean; import com.casic.dcms.mvvm.model.ProcessPersonBean; +import com.casic.dcms.mvvm.vm.CaseOperateViewModel; import com.casic.dcms.mvvm.vm.CaseViewModel; import com.casic.dcms.mvvm.vm.NodeViewModel; import com.casic.dcms.mvvm.vm.PersonViewModel; @@ -26,6 +27,7 @@ import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.ReadOnlyImageAdapter; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; +import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil; import com.pengxh.androidx.lite.vm.LoadState; import com.pengxh.androidx.lite.widget.EasyToast; @@ -36,13 +38,14 @@ import cn.jzvd.Jzvd; -public class DeptAuthorizeDetailActivity extends AndroidxBaseActivity implements View.OnClickListener { +public class DeptAuthorizeDetailActivity extends AndroidxBaseActivity { private final Context context = this; private CaseViewModel caseViewModel; private NodeViewModel nodeViewModel; - private List nodeDataBeans; private PersonViewModel personViewModel; + private CaseOperateViewModel operateViewModel; + private List nodeDataBeans; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private List personBeans; private String id; @@ -61,12 +64,13 @@ @Override public void initData() { - id = getIntent().getStringExtra("id"); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); personViewModel = new ViewModelProvider(this).get(PersonViewModel.class); + operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); } @Override @@ -192,39 +196,18 @@ } }); - personViewModel.processPersonModel.observe(this, new Observer() { + viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override - public void onChanged(ProcessPersonBean resultBean) { - if (resultBean.getCode() == 200) { - personBeans = resultBean.getData(); - if (personBeans.size() == 0) { - viewBinding.caseHandlePersonView.setText("无处置人员"); - } else { - ProcessPersonBean.DataBean dataBean = personBeans.get(0); - taskUserId = dataBean.getId(); - viewBinding.caseHandlePersonView.setText(dataBean.getName());//默认选择第一个 - } - viewBinding.caseHandlePersonView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); - } + public void onClick(View v) { + OtherUtils.displayOnMap(context, data.getEorcName(), data.getLng(), data.getLat()); } }); - viewBinding.locationMapView.setOnClickListener(this); - viewBinding.caseOptTypeLayout.setOnClickListener(this); - viewBinding.casePersonLayout.setOnClickListener(this); - viewBinding.commonTipsLayout.setOnClickListener(this); - viewBinding.submitButton.setOnClickListener(this); - } - - @Override - public void onClick(View v) { - int viewId = v.getId(); - if (viewId == R.id.locationMapView) { - OtherUtils.displayOnMap(this, data.getEorcName(), data.getLng(), data.getLat()); - } else if (viewId == R.id.caseOptTypeLayout) { - if (nodeDataBeans != null) { + viewBinding.caseOptTypeLayout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { if (nodeDataBeans.size() >= 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(context); sheetBuilder.setTitle("操作类型"); for (CaseNextNodeBean.DataBean dataBean : nodeDataBeans) { sheetBuilder.addItem(dataBean.getNextOperation()); @@ -254,10 +237,29 @@ }).build().show(); } } - } else if (viewId == R.id.casePersonLayout) { - if (personBeans != null) { + }); + personViewModel.processPersonModel.observe(this, new Observer() { + @Override + public void onChanged(ProcessPersonBean resultBean) { + if (resultBean.getCode() == 200) { + personBeans = resultBean.getData(); + if (personBeans.size() == 0) { + viewBinding.caseHandlePersonView.setText("无处置人员"); + } else { + ProcessPersonBean.DataBean dataBean = personBeans.get(0); + taskUserId = dataBean.getId(); + viewBinding.caseHandlePersonView.setText(dataBean.getName());//默认选择第一个 + } + viewBinding.caseHandlePersonView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); + } + } + }); + + viewBinding.casePersonLayout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { if (personBeans.size() >= 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(context); sheetBuilder.setTitle("处置人员"); for (ProcessPersonBean.DataBean dataBean : personBeans) { sheetBuilder.addItem(dataBean.getName()); @@ -274,50 +276,71 @@ }).build().show(); } } - } else if (viewId == R.id.commonTipsLayout) { - new QMUIBottomSheet.BottomListSheetBuilder(this) - .setTitle("常见用语") - .addItem("请及时处理") - .addItem("调查后及时回复") - .setGravityCenter(true) - .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - viewBinding.commonTipsView.setText(tag); - viewBinding.commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); + }); - viewBinding.optionEditView.setText(tag); - viewBinding.commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); - } - }).build().show(); - } else if (viewId == R.id.submitButton) { - String optType = viewBinding.optTypeView.getText().toString(); - if (optType.equals("")) { - EasyToast.show(this, "还未选择操作类型"); - return; + viewBinding.commonTipsLayout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new QMUIBottomSheet.BottomListSheetBuilder(context) + .setTitle("常见用语") + .addItem("请及时处理") + .addItem("调查后及时回复") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + viewBinding.commonTipsView.setText(tag); + viewBinding.commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); + } + }).build().show(); } - if (optType.equals("返回处理")) { - //选择处理人员时,必选一个处置人员 - String handlePerson = viewBinding.caseHandlePersonView.getText().toString(); - if (handlePerson.equals("")) { - EasyToast.show(this, "当前状态必须指定处置员"); + }); + + viewBinding.submitButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + String optType = viewBinding.optTypeView.getText().toString(); + if (optType.equals("")) { + EasyToast.show(context, "还未选择操作类型"); return; } + if (optType.equals("返回处理")) { + //选择处理人员时,必选一个处置人员 + String handlePerson = viewBinding.caseHandlePersonView.getText().toString(); + if (handlePerson.equals("")) { + EasyToast.show(context, "当前状态必须指定处置员"); + return; + } + } + String optionInput = StringHelper.filterString(viewBinding.commonTipsView.getText().toString()); + if (TextUtils.isEmpty(optionInput)) { + EasyToast.show(context, "处理意见必须填写"); + return; + } + //只有选择返回处理的时候taskUserId才会不为空,否则用当前流程人员的id代替 + if (TextUtils.isEmpty(taskUserId)) { + taskUserId = data.getProcessPersonid(); + } + operateViewModel.dispatcherHandleCase(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, + taskUserId); } - String optionInput = StringHelper.filterString(viewBinding.optionEditView.getText().toString()); - if (TextUtils.isEmpty(optionInput)) { - EasyToast.show(this, "处理意见必须填写"); - return; + }); + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + OtherUtils.showLoadingDialog(context, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + OtherUtils.dismissLoadingDialog(); + finish(); + } else { + EasyToast.show(context, "处理失败,请重试"); + OtherUtils.dismissLoadingDialog(); + } } - //只有选择返回处理的时候taskUserId才会不为空,否则用当前流程人员的id代替 - if (TextUtils.isEmpty(taskUserId)) { - taskUserId = data.getProcessPersonid(); - } -// caseViewModel.dispatcherHandleCase(data.getProcessId(), id, -// String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, -// taskUserId); - } + }); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DeptHandleActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DeptHandleActivity.java index 694bbd5..ca49b3d 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/DeptHandleActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/DeptHandleActivity.java @@ -18,6 +18,7 @@ import com.casic.dcms.utils.LocaleConstant; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; +import com.pengxh.androidx.lite.utils.DeviceSizeUtil; import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil; import java.util.ArrayList; @@ -49,8 +50,9 @@ //绑定TabLayout viewBinding.tabLayout.setupWithViewPager(viewBinding.viewPager); LinearLayout linearLayout = (LinearLayout) viewBinding.tabLayout.getChildAt(0); - linearLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE); linearLayout.setDividerDrawable(ContextCompat.getDrawable(this, R.drawable.layout_divider_vertical)); + linearLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE); + linearLayout.setDividerPadding(DeviceSizeUtil.dp2px(this, 12.5f)); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DeptTodoDetailActivity.java index b8b9c59..9686049 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/DeptTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/DeptTodoDetailActivity.java @@ -17,9 +17,9 @@ import com.casic.dcms.mvvm.model.CaseDetailBean; import com.casic.dcms.mvvm.model.CaseNextNodeBean; import com.casic.dcms.mvvm.model.ProcessPersonBean; +import com.casic.dcms.mvvm.vm.CaseOperateViewModel; import com.casic.dcms.mvvm.vm.CaseViewModel; import com.casic.dcms.mvvm.vm.NodeViewModel; -import com.casic.dcms.mvvm.vm.PersonViewModel; import com.casic.dcms.utils.JzExoMedia; import com.casic.dcms.utils.OtherUtils; import com.casic.dcms.utils.StringHelper; @@ -40,7 +40,7 @@ private final Context context = this; private CaseViewModel caseViewModel; private NodeViewModel nodeViewModel; - private PersonViewModel personViewModel; + private CaseOperateViewModel operateViewModel; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private List personBeans; private String id; @@ -66,7 +66,7 @@ caseViewModel.obtainCaseDetail(id); nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); - personViewModel = new ViewModelProvider(this).get(PersonViewModel.class); + operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); } @Override @@ -216,60 +216,12 @@ CaseNextNodeBean.DataBean nodeBean = nodeDataBeans.get(position); changeState = String.valueOf(nodeBean.getNextState()); operationKey = nodeBean.getOperationKey(); - - if (tag.equals("返回处理") || tag.equals("处置人员")) { - viewBinding.casePersonLayout.setVisibility(View.VISIBLE); - viewBinding.personLine.setVisibility(View.VISIBLE); - - //获取下级处置人员名单 - personViewModel.obtainSubordinatePerson(); - } else { - viewBinding.casePersonLayout.setVisibility(View.GONE); - viewBinding.personLine.setVisibility(View.GONE); - } } }).build().show(); } } }); - viewBinding.casePersonLayout.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (personBeans.size() >= 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(context); - sheetBuilder.setTitle("处置人员"); - for (ProcessPersonBean.DataBean dataBean : personBeans) { - sheetBuilder.addItem(dataBean.getName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - viewBinding.caseHandlePersonView.setText(tag); - - taskUserId = personBeans.get(position).getId(); - } - }).build().show(); - } - } - }); - personViewModel.processPersonModel.observe(this, new Observer() { - @Override - public void onChanged(ProcessPersonBean resultBean) { - if (resultBean.isSuccess()) { - personBeans = resultBean.getData(); - if (personBeans.size() == 0) { - viewBinding.caseHandlePersonView.setText("无处置人员"); - } else { - ProcessPersonBean.DataBean dataBean = personBeans.get(0); - taskUserId = dataBean.getId(); - viewBinding.caseHandlePersonView.setText(dataBean.getName());//默认选择第一个 - } - } - } - }); - viewBinding.commonTipsLayout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -283,8 +235,6 @@ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { dialog.dismiss(); viewBinding.commonTipsView.setText(tag); - - viewBinding.optionEditView.setText(tag); } }).build().show(); } @@ -298,21 +248,27 @@ EasyToast.show(context, "还未选择操作类型"); return; } - if (optType.equals("处置人员") || optType.equals("返回处理")) { - //选择处理人员时,必选一个处置人员 - String handlePerson = viewBinding.caseHandlePersonView.getText().toString(); - if (handlePerson.equals("")) { - EasyToast.show(context, "当前状态必须指定处置员"); - return; - } - } - String optionInput = StringHelper.filterString(viewBinding.optionEditView.getText().toString()); + String optionInput = StringHelper.filterString(viewBinding.commonTipsView.getText().toString()); if (TextUtils.isEmpty(optionInput)) { EasyToast.show(context, "处理意见必须填写"); return; } -// caseViewModel.dispatcherHandleCase(data.getProcessId(), id, -// String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, taskUserId); + operateViewModel.dispatcherHandleCase(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, taskUserId); + } + }); + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + OtherUtils.showLoadingDialog(context, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + OtherUtils.dismissLoadingDialog(); + finish(); + } else { + EasyToast.show(context, "处理失败,请重试"); + OtherUtils.dismissLoadingDialog(); + } } }); } diff --git a/.idea/misc.xml b/.idea/misc.xml index 552f6c3..d6ee830 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -35,6 +35,10 @@ + + + + @@ -48,6 +52,7 @@ + diff --git a/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java b/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java index 6c4a6a6..1fafc8b 100644 --- a/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java @@ -11,35 +11,35 @@ import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; +import com.bumptech.glide.Glide; import com.casic.dcms.R; import com.casic.dcms.mvvm.model.DeptCaseBean; import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUIRadiusImageView; import java.util.List; -/** - * {@link PackageCaseListAdapter 不适用二级派遣员部门处置列表,因为该列表不光有三包案卷,还有普通案卷} - */ public class DeptTodoOrHandledAdapter extends RecyclerView.Adapter { - private final List dataBeans; + private final Context context; + private final List dataBeans; private final LayoutInflater layoutInflater; private PunishTypeAdapter adapter; - public DeptTodoOrHandledAdapter(Context context, List dataRows) { + public DeptTodoOrHandledAdapter(Context context, List dataRows) { + this.context = context; this.dataBeans = dataRows; layoutInflater = LayoutInflater.from(context); } @NonNull @Override - public DeptTodoOrHandledAdapter.ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - View view = layoutInflater.inflate(R.layout.item_case_rv, parent, false); - return new ItemViewHolder(view); + 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 DeptTodoOrHandledAdapter.ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { + public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { holder.bindView(dataBeans.get(position)); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @@ -56,28 +56,30 @@ return dataBeans.size(); } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { -// private final TextView leftTextView; + private final QMUIRadiusImageView caseImageView; private final TextView caseTitleView; private final TextView casePlaceView; private final TextView caseTimeView; ItemViewHolder(@NonNull View itemView) { super(itemView); -// leftTextView = itemView.findViewById(R.id.leftTextView); + caseImageView = itemView.findViewById(R.id.caseImageView); caseTitleView = itemView.findViewById(R.id.caseTitleView); casePlaceView = itemView.findViewById(R.id.casePlaceView); caseTimeView = itemView.findViewById(R.id.caseTimeView); } - @SuppressLint("SetTextI18n") - void bindView(DeptCaseBean.DataBean.RowsBean rowsBean) { - String eorcName = rowsBean.getEorcName(); - if (TextUtils.isEmpty(eorcName)) { - eorcName = "未知"; + void bindView(DeptCaseBean.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); + } } -// 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/mvvm/model/DeptCaseBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/DeptCaseBean.java index 1a4ac47..79163d8 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/model/DeptCaseBean.java +++ b/app/src/main/java/com/casic/dcms/mvvm/model/DeptCaseBean.java @@ -8,7 +8,7 @@ public class DeptCaseBean { private int code; - private DataBean data; + private DataDTO data; private String message; private boolean success; @@ -20,11 +20,11 @@ this.code = code; } - public DataBean getData() { + public DataDTO getData() { return data; } - public void setData(DataBean data) { + public void setData(DataDTO data) { this.data = data; } @@ -44,10 +44,17 @@ this.success = success; } - public static class DataBean { - + public static class DataDTO { + private List rows; private int total; - private List rows; + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } public int getTotal() { return total; @@ -57,26 +64,14 @@ this.total = total; } - public List getRows() { - return rows; - } - - public void setRows(List rows) { - this.rows = rows; - } - - public static class RowsBean { - + public static class RowsDTO { private int isPostpone; - private int preState; private String description; private int source; private String eorcName; private String casetypeDetailName; private String remainingTime; private String casetypeName; - private String currUserId; - private String currUserName; private String processId; private int caseState; private String id; @@ -84,10 +79,10 @@ private String fieldintro; private String lat; private String caseStateName; - private String preOperator; private String lng; private String isOvertime; private String currRoleName; + private String fileIdVerify; private String casetypeDetailCode; private String onedeptid; private String eorc; @@ -95,8 +90,14 @@ private String caseid; private String casetypeCode; private String nodeLimittime; + private String taskName; private String sourceName; + private String fileIdProcess; private String reportTime; + private String currUserId; + private String currUserName; + private String currDeptId; + private String currDeptName; private String onedeptName; public int getIsPostpone() { @@ -107,14 +108,6 @@ this.isPostpone = isPostpone; } - public int getPreState() { - return preState; - } - - public void setPreState(int preState) { - this.preState = preState; - } - public String getDescription() { return description; } @@ -163,22 +156,6 @@ this.casetypeName = casetypeName; } - public String getCurrUserId() { - return currUserId; - } - - public void setCurrUserId(String currUserId) { - this.currUserId = currUserId; - } - - public String getCurrUserName() { - return currUserName; - } - - public void setCurrUserName(String currUserName) { - this.currUserName = currUserName; - } - public String getProcessId() { return processId; } @@ -235,14 +212,6 @@ this.caseStateName = caseStateName; } - public String getPreOperator() { - return preOperator; - } - - public void setPreOperator(String preOperator) { - this.preOperator = preOperator; - } - public String getLng() { return lng; } @@ -267,6 +236,14 @@ this.currRoleName = currRoleName; } + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + public String getCasetypeDetailCode() { return casetypeDetailCode; } @@ -323,6 +300,14 @@ this.nodeLimittime = nodeLimittime; } + public String getTaskName() { + return taskName; + } + + public void setTaskName(String taskName) { + this.taskName = taskName; + } + public String getSourceName() { return sourceName; } @@ -331,6 +316,14 @@ this.sourceName = sourceName; } + public String getFileIdProcess() { + return fileIdProcess; + } + + public void setFileIdProcess(String fileIdProcess) { + this.fileIdProcess = fileIdProcess; + } + public String getReportTime() { return reportTime; } @@ -339,6 +332,38 @@ this.reportTime = reportTime; } + public String getCurrUserId() { + return currUserId; + } + + public void setCurrUserId(String currUserId) { + this.currUserId = currUserId; + } + + public String getCurrUserName() { + return currUserName; + } + + public void setCurrUserName(String currUserName) { + this.currUserName = currUserName; + } + + public String getCurrDeptId() { + return currDeptId; + } + + public void setCurrDeptId(String currDeptId) { + this.currDeptId = currDeptId; + } + + public String getCurrDeptName() { + return currDeptName; + } + + public void setCurrDeptName(String currDeptName) { + this.currDeptName = currDeptName; + } + public String getOnedeptName() { return onedeptName; } diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java index de23222..9e72c93 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java @@ -15,6 +15,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.mvvm.model.CaseDetailBean; import com.casic.dcms.mvvm.model.CaseNextNodeBean; +import com.casic.dcms.mvvm.vm.CaseOperateViewModel; import com.casic.dcms.mvvm.vm.CaseViewModel; import com.casic.dcms.mvvm.vm.NodeViewModel; import com.casic.dcms.utils.JzExoMedia; @@ -40,6 +41,7 @@ private final Context context = this; private CaseViewModel caseViewModel; private NodeViewModel nodeViewModel; + private CaseOperateViewModel operateViewModel; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private List nodeDataBeans; private String id; @@ -62,6 +64,7 @@ caseViewModel.obtainCaseDetail(id); nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); + operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); } @Override @@ -230,8 +233,6 @@ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { dialog.dismiss(); viewBinding.commonTipsView.setText(tag); - - viewBinding.optionEditView.setText(tag); } }).build().show(); } @@ -245,14 +246,28 @@ EasyToast.show(context, "还未选择操作类型"); return; } - String optionInput = StringHelper.filterString(viewBinding.optionEditView.getText().toString()); + String optionInput = StringHelper.filterString(viewBinding.commonTipsView.getText().toString()); if (TextUtils.isEmpty(optionInput)) { EasyToast.show(context, "不同意/同意的意见必须填写"); return; } -// caseViewModel.dispatcherHandleCase(data.getProcessId(), id, -// String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, -// data.getProcessPersonid()); + operateViewModel.dispatcherHandleCase(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, + data.getProcessPersonid()); + } + }); + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + OtherUtils.showLoadingDialog(context, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + OtherUtils.dismissLoadingDialog(); + finish(); + } else { + EasyToast.show(context, "处理失败,请重试"); + OtherUtils.dismissLoadingDialog(); + } } }); } diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java index 31fc6a0..f23fc0b 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java @@ -16,6 +16,7 @@ import com.casic.dcms.mvvm.model.CaseDetailBean; import com.casic.dcms.mvvm.model.CaseNextNodeBean; import com.casic.dcms.mvvm.model.ProcessPersonBean; +import com.casic.dcms.mvvm.vm.CaseOperateViewModel; import com.casic.dcms.mvvm.vm.CaseViewModel; import com.casic.dcms.mvvm.vm.NodeViewModel; import com.casic.dcms.mvvm.vm.PersonViewModel; @@ -26,6 +27,7 @@ import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.ReadOnlyImageAdapter; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; +import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil; import com.pengxh.androidx.lite.vm.LoadState; import com.pengxh.androidx.lite.widget.EasyToast; @@ -36,13 +38,14 @@ import cn.jzvd.Jzvd; -public class DeptAuthorizeDetailActivity extends AndroidxBaseActivity implements View.OnClickListener { +public class DeptAuthorizeDetailActivity extends AndroidxBaseActivity { private final Context context = this; private CaseViewModel caseViewModel; private NodeViewModel nodeViewModel; - private List nodeDataBeans; private PersonViewModel personViewModel; + private CaseOperateViewModel operateViewModel; + private List nodeDataBeans; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private List personBeans; private String id; @@ -61,12 +64,13 @@ @Override public void initData() { - id = getIntent().getStringExtra("id"); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); personViewModel = new ViewModelProvider(this).get(PersonViewModel.class); + operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); } @Override @@ -192,39 +196,18 @@ } }); - personViewModel.processPersonModel.observe(this, new Observer() { + viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override - public void onChanged(ProcessPersonBean resultBean) { - if (resultBean.getCode() == 200) { - personBeans = resultBean.getData(); - if (personBeans.size() == 0) { - viewBinding.caseHandlePersonView.setText("无处置人员"); - } else { - ProcessPersonBean.DataBean dataBean = personBeans.get(0); - taskUserId = dataBean.getId(); - viewBinding.caseHandlePersonView.setText(dataBean.getName());//默认选择第一个 - } - viewBinding.caseHandlePersonView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); - } + public void onClick(View v) { + OtherUtils.displayOnMap(context, data.getEorcName(), data.getLng(), data.getLat()); } }); - viewBinding.locationMapView.setOnClickListener(this); - viewBinding.caseOptTypeLayout.setOnClickListener(this); - viewBinding.casePersonLayout.setOnClickListener(this); - viewBinding.commonTipsLayout.setOnClickListener(this); - viewBinding.submitButton.setOnClickListener(this); - } - - @Override - public void onClick(View v) { - int viewId = v.getId(); - if (viewId == R.id.locationMapView) { - OtherUtils.displayOnMap(this, data.getEorcName(), data.getLng(), data.getLat()); - } else if (viewId == R.id.caseOptTypeLayout) { - if (nodeDataBeans != null) { + viewBinding.caseOptTypeLayout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { if (nodeDataBeans.size() >= 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(context); sheetBuilder.setTitle("操作类型"); for (CaseNextNodeBean.DataBean dataBean : nodeDataBeans) { sheetBuilder.addItem(dataBean.getNextOperation()); @@ -254,10 +237,29 @@ }).build().show(); } } - } else if (viewId == R.id.casePersonLayout) { - if (personBeans != null) { + }); + personViewModel.processPersonModel.observe(this, new Observer() { + @Override + public void onChanged(ProcessPersonBean resultBean) { + if (resultBean.getCode() == 200) { + personBeans = resultBean.getData(); + if (personBeans.size() == 0) { + viewBinding.caseHandlePersonView.setText("无处置人员"); + } else { + ProcessPersonBean.DataBean dataBean = personBeans.get(0); + taskUserId = dataBean.getId(); + viewBinding.caseHandlePersonView.setText(dataBean.getName());//默认选择第一个 + } + viewBinding.caseHandlePersonView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); + } + } + }); + + viewBinding.casePersonLayout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { if (personBeans.size() >= 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(context); sheetBuilder.setTitle("处置人员"); for (ProcessPersonBean.DataBean dataBean : personBeans) { sheetBuilder.addItem(dataBean.getName()); @@ -274,50 +276,71 @@ }).build().show(); } } - } else if (viewId == R.id.commonTipsLayout) { - new QMUIBottomSheet.BottomListSheetBuilder(this) - .setTitle("常见用语") - .addItem("请及时处理") - .addItem("调查后及时回复") - .setGravityCenter(true) - .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - viewBinding.commonTipsView.setText(tag); - viewBinding.commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); + }); - viewBinding.optionEditView.setText(tag); - viewBinding.commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); - } - }).build().show(); - } else if (viewId == R.id.submitButton) { - String optType = viewBinding.optTypeView.getText().toString(); - if (optType.equals("")) { - EasyToast.show(this, "还未选择操作类型"); - return; + viewBinding.commonTipsLayout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new QMUIBottomSheet.BottomListSheetBuilder(context) + .setTitle("常见用语") + .addItem("请及时处理") + .addItem("调查后及时回复") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + viewBinding.commonTipsView.setText(tag); + viewBinding.commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); + } + }).build().show(); } - if (optType.equals("返回处理")) { - //选择处理人员时,必选一个处置人员 - String handlePerson = viewBinding.caseHandlePersonView.getText().toString(); - if (handlePerson.equals("")) { - EasyToast.show(this, "当前状态必须指定处置员"); + }); + + viewBinding.submitButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + String optType = viewBinding.optTypeView.getText().toString(); + if (optType.equals("")) { + EasyToast.show(context, "还未选择操作类型"); return; } + if (optType.equals("返回处理")) { + //选择处理人员时,必选一个处置人员 + String handlePerson = viewBinding.caseHandlePersonView.getText().toString(); + if (handlePerson.equals("")) { + EasyToast.show(context, "当前状态必须指定处置员"); + return; + } + } + String optionInput = StringHelper.filterString(viewBinding.commonTipsView.getText().toString()); + if (TextUtils.isEmpty(optionInput)) { + EasyToast.show(context, "处理意见必须填写"); + return; + } + //只有选择返回处理的时候taskUserId才会不为空,否则用当前流程人员的id代替 + if (TextUtils.isEmpty(taskUserId)) { + taskUserId = data.getProcessPersonid(); + } + operateViewModel.dispatcherHandleCase(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, + taskUserId); } - String optionInput = StringHelper.filterString(viewBinding.optionEditView.getText().toString()); - if (TextUtils.isEmpty(optionInput)) { - EasyToast.show(this, "处理意见必须填写"); - return; + }); + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + OtherUtils.showLoadingDialog(context, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + OtherUtils.dismissLoadingDialog(); + finish(); + } else { + EasyToast.show(context, "处理失败,请重试"); + OtherUtils.dismissLoadingDialog(); + } } - //只有选择返回处理的时候taskUserId才会不为空,否则用当前流程人员的id代替 - if (TextUtils.isEmpty(taskUserId)) { - taskUserId = data.getProcessPersonid(); - } -// caseViewModel.dispatcherHandleCase(data.getProcessId(), id, -// String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, -// taskUserId); - } + }); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DeptHandleActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DeptHandleActivity.java index 694bbd5..ca49b3d 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/DeptHandleActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/DeptHandleActivity.java @@ -18,6 +18,7 @@ import com.casic.dcms.utils.LocaleConstant; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; +import com.pengxh.androidx.lite.utils.DeviceSizeUtil; import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil; import java.util.ArrayList; @@ -49,8 +50,9 @@ //绑定TabLayout viewBinding.tabLayout.setupWithViewPager(viewBinding.viewPager); LinearLayout linearLayout = (LinearLayout) viewBinding.tabLayout.getChildAt(0); - linearLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE); linearLayout.setDividerDrawable(ContextCompat.getDrawable(this, R.drawable.layout_divider_vertical)); + linearLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE); + linearLayout.setDividerPadding(DeviceSizeUtil.dp2px(this, 12.5f)); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DeptTodoDetailActivity.java index b8b9c59..9686049 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/DeptTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/DeptTodoDetailActivity.java @@ -17,9 +17,9 @@ import com.casic.dcms.mvvm.model.CaseDetailBean; import com.casic.dcms.mvvm.model.CaseNextNodeBean; import com.casic.dcms.mvvm.model.ProcessPersonBean; +import com.casic.dcms.mvvm.vm.CaseOperateViewModel; import com.casic.dcms.mvvm.vm.CaseViewModel; import com.casic.dcms.mvvm.vm.NodeViewModel; -import com.casic.dcms.mvvm.vm.PersonViewModel; import com.casic.dcms.utils.JzExoMedia; import com.casic.dcms.utils.OtherUtils; import com.casic.dcms.utils.StringHelper; @@ -40,7 +40,7 @@ private final Context context = this; private CaseViewModel caseViewModel; private NodeViewModel nodeViewModel; - private PersonViewModel personViewModel; + private CaseOperateViewModel operateViewModel; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private List personBeans; private String id; @@ -66,7 +66,7 @@ caseViewModel.obtainCaseDetail(id); nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); - personViewModel = new ViewModelProvider(this).get(PersonViewModel.class); + operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); } @Override @@ -216,60 +216,12 @@ CaseNextNodeBean.DataBean nodeBean = nodeDataBeans.get(position); changeState = String.valueOf(nodeBean.getNextState()); operationKey = nodeBean.getOperationKey(); - - if (tag.equals("返回处理") || tag.equals("处置人员")) { - viewBinding.casePersonLayout.setVisibility(View.VISIBLE); - viewBinding.personLine.setVisibility(View.VISIBLE); - - //获取下级处置人员名单 - personViewModel.obtainSubordinatePerson(); - } else { - viewBinding.casePersonLayout.setVisibility(View.GONE); - viewBinding.personLine.setVisibility(View.GONE); - } } }).build().show(); } } }); - viewBinding.casePersonLayout.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (personBeans.size() >= 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(context); - sheetBuilder.setTitle("处置人员"); - for (ProcessPersonBean.DataBean dataBean : personBeans) { - sheetBuilder.addItem(dataBean.getName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - viewBinding.caseHandlePersonView.setText(tag); - - taskUserId = personBeans.get(position).getId(); - } - }).build().show(); - } - } - }); - personViewModel.processPersonModel.observe(this, new Observer() { - @Override - public void onChanged(ProcessPersonBean resultBean) { - if (resultBean.isSuccess()) { - personBeans = resultBean.getData(); - if (personBeans.size() == 0) { - viewBinding.caseHandlePersonView.setText("无处置人员"); - } else { - ProcessPersonBean.DataBean dataBean = personBeans.get(0); - taskUserId = dataBean.getId(); - viewBinding.caseHandlePersonView.setText(dataBean.getName());//默认选择第一个 - } - } - } - }); - viewBinding.commonTipsLayout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -283,8 +235,6 @@ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { dialog.dismiss(); viewBinding.commonTipsView.setText(tag); - - viewBinding.optionEditView.setText(tag); } }).build().show(); } @@ -298,21 +248,27 @@ EasyToast.show(context, "还未选择操作类型"); return; } - if (optType.equals("处置人员") || optType.equals("返回处理")) { - //选择处理人员时,必选一个处置人员 - String handlePerson = viewBinding.caseHandlePersonView.getText().toString(); - if (handlePerson.equals("")) { - EasyToast.show(context, "当前状态必须指定处置员"); - return; - } - } - String optionInput = StringHelper.filterString(viewBinding.optionEditView.getText().toString()); + String optionInput = StringHelper.filterString(viewBinding.commonTipsView.getText().toString()); if (TextUtils.isEmpty(optionInput)) { EasyToast.show(context, "处理意见必须填写"); return; } -// caseViewModel.dispatcherHandleCase(data.getProcessId(), id, -// String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, taskUserId); + operateViewModel.dispatcherHandleCase(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, taskUserId); + } + }); + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + OtherUtils.showLoadingDialog(context, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + OtherUtils.dismissLoadingDialog(); + finish(); + } else { + EasyToast.show(context, "处理失败,请重试"); + OtherUtils.dismissLoadingDialog(); + } } }); } diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseHandledFragment.java index 0a65c11..7b65a54 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseHandledFragment.java @@ -29,7 +29,7 @@ private WeakReferenceHandler weakReferenceHandler; private DeptHandleViewModel handleViewModel; private DeptTodoOrHandledAdapter adapter; - private List dataBeans = new ArrayList<>(); + private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -78,7 +78,7 @@ @Override public void onChanged(DeptCaseBean resultBean) { if (resultBean.isSuccess()) { - List dataRows = resultBean.getData().getRows(); + List dataRows = resultBean.getData().getRows(); if (isRefresh) { dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 dataBeans = dataRows; diff --git a/.idea/misc.xml b/.idea/misc.xml index 552f6c3..d6ee830 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -35,6 +35,10 @@ + + + + @@ -48,6 +52,7 @@ + diff --git a/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java b/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java index 6c4a6a6..1fafc8b 100644 --- a/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java @@ -11,35 +11,35 @@ import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; +import com.bumptech.glide.Glide; import com.casic.dcms.R; import com.casic.dcms.mvvm.model.DeptCaseBean; import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUIRadiusImageView; import java.util.List; -/** - * {@link PackageCaseListAdapter 不适用二级派遣员部门处置列表,因为该列表不光有三包案卷,还有普通案卷} - */ public class DeptTodoOrHandledAdapter extends RecyclerView.Adapter { - private final List dataBeans; + private final Context context; + private final List dataBeans; private final LayoutInflater layoutInflater; private PunishTypeAdapter adapter; - public DeptTodoOrHandledAdapter(Context context, List dataRows) { + public DeptTodoOrHandledAdapter(Context context, List dataRows) { + this.context = context; this.dataBeans = dataRows; layoutInflater = LayoutInflater.from(context); } @NonNull @Override - public DeptTodoOrHandledAdapter.ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - View view = layoutInflater.inflate(R.layout.item_case_rv, parent, false); - return new ItemViewHolder(view); + 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 DeptTodoOrHandledAdapter.ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { + public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { holder.bindView(dataBeans.get(position)); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @@ -56,28 +56,30 @@ return dataBeans.size(); } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { -// private final TextView leftTextView; + private final QMUIRadiusImageView caseImageView; private final TextView caseTitleView; private final TextView casePlaceView; private final TextView caseTimeView; ItemViewHolder(@NonNull View itemView) { super(itemView); -// leftTextView = itemView.findViewById(R.id.leftTextView); + caseImageView = itemView.findViewById(R.id.caseImageView); caseTitleView = itemView.findViewById(R.id.caseTitleView); casePlaceView = itemView.findViewById(R.id.casePlaceView); caseTimeView = itemView.findViewById(R.id.caseTimeView); } - @SuppressLint("SetTextI18n") - void bindView(DeptCaseBean.DataBean.RowsBean rowsBean) { - String eorcName = rowsBean.getEorcName(); - if (TextUtils.isEmpty(eorcName)) { - eorcName = "未知"; + void bindView(DeptCaseBean.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); + } } -// 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/mvvm/model/DeptCaseBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/DeptCaseBean.java index 1a4ac47..79163d8 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/model/DeptCaseBean.java +++ b/app/src/main/java/com/casic/dcms/mvvm/model/DeptCaseBean.java @@ -8,7 +8,7 @@ public class DeptCaseBean { private int code; - private DataBean data; + private DataDTO data; private String message; private boolean success; @@ -20,11 +20,11 @@ this.code = code; } - public DataBean getData() { + public DataDTO getData() { return data; } - public void setData(DataBean data) { + public void setData(DataDTO data) { this.data = data; } @@ -44,10 +44,17 @@ this.success = success; } - public static class DataBean { - + public static class DataDTO { + private List rows; private int total; - private List rows; + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } public int getTotal() { return total; @@ -57,26 +64,14 @@ this.total = total; } - public List getRows() { - return rows; - } - - public void setRows(List rows) { - this.rows = rows; - } - - public static class RowsBean { - + public static class RowsDTO { private int isPostpone; - private int preState; private String description; private int source; private String eorcName; private String casetypeDetailName; private String remainingTime; private String casetypeName; - private String currUserId; - private String currUserName; private String processId; private int caseState; private String id; @@ -84,10 +79,10 @@ private String fieldintro; private String lat; private String caseStateName; - private String preOperator; private String lng; private String isOvertime; private String currRoleName; + private String fileIdVerify; private String casetypeDetailCode; private String onedeptid; private String eorc; @@ -95,8 +90,14 @@ private String caseid; private String casetypeCode; private String nodeLimittime; + private String taskName; private String sourceName; + private String fileIdProcess; private String reportTime; + private String currUserId; + private String currUserName; + private String currDeptId; + private String currDeptName; private String onedeptName; public int getIsPostpone() { @@ -107,14 +108,6 @@ this.isPostpone = isPostpone; } - public int getPreState() { - return preState; - } - - public void setPreState(int preState) { - this.preState = preState; - } - public String getDescription() { return description; } @@ -163,22 +156,6 @@ this.casetypeName = casetypeName; } - public String getCurrUserId() { - return currUserId; - } - - public void setCurrUserId(String currUserId) { - this.currUserId = currUserId; - } - - public String getCurrUserName() { - return currUserName; - } - - public void setCurrUserName(String currUserName) { - this.currUserName = currUserName; - } - public String getProcessId() { return processId; } @@ -235,14 +212,6 @@ this.caseStateName = caseStateName; } - public String getPreOperator() { - return preOperator; - } - - public void setPreOperator(String preOperator) { - this.preOperator = preOperator; - } - public String getLng() { return lng; } @@ -267,6 +236,14 @@ this.currRoleName = currRoleName; } + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + public String getCasetypeDetailCode() { return casetypeDetailCode; } @@ -323,6 +300,14 @@ this.nodeLimittime = nodeLimittime; } + public String getTaskName() { + return taskName; + } + + public void setTaskName(String taskName) { + this.taskName = taskName; + } + public String getSourceName() { return sourceName; } @@ -331,6 +316,14 @@ this.sourceName = sourceName; } + public String getFileIdProcess() { + return fileIdProcess; + } + + public void setFileIdProcess(String fileIdProcess) { + this.fileIdProcess = fileIdProcess; + } + public String getReportTime() { return reportTime; } @@ -339,6 +332,38 @@ this.reportTime = reportTime; } + public String getCurrUserId() { + return currUserId; + } + + public void setCurrUserId(String currUserId) { + this.currUserId = currUserId; + } + + public String getCurrUserName() { + return currUserName; + } + + public void setCurrUserName(String currUserName) { + this.currUserName = currUserName; + } + + public String getCurrDeptId() { + return currDeptId; + } + + public void setCurrDeptId(String currDeptId) { + this.currDeptId = currDeptId; + } + + public String getCurrDeptName() { + return currDeptName; + } + + public void setCurrDeptName(String currDeptName) { + this.currDeptName = currDeptName; + } + public String getOnedeptName() { return onedeptName; } diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java index de23222..9e72c93 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java @@ -15,6 +15,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.mvvm.model.CaseDetailBean; import com.casic.dcms.mvvm.model.CaseNextNodeBean; +import com.casic.dcms.mvvm.vm.CaseOperateViewModel; import com.casic.dcms.mvvm.vm.CaseViewModel; import com.casic.dcms.mvvm.vm.NodeViewModel; import com.casic.dcms.utils.JzExoMedia; @@ -40,6 +41,7 @@ private final Context context = this; private CaseViewModel caseViewModel; private NodeViewModel nodeViewModel; + private CaseOperateViewModel operateViewModel; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private List nodeDataBeans; private String id; @@ -62,6 +64,7 @@ caseViewModel.obtainCaseDetail(id); nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); + operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); } @Override @@ -230,8 +233,6 @@ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { dialog.dismiss(); viewBinding.commonTipsView.setText(tag); - - viewBinding.optionEditView.setText(tag); } }).build().show(); } @@ -245,14 +246,28 @@ EasyToast.show(context, "还未选择操作类型"); return; } - String optionInput = StringHelper.filterString(viewBinding.optionEditView.getText().toString()); + String optionInput = StringHelper.filterString(viewBinding.commonTipsView.getText().toString()); if (TextUtils.isEmpty(optionInput)) { EasyToast.show(context, "不同意/同意的意见必须填写"); return; } -// caseViewModel.dispatcherHandleCase(data.getProcessId(), id, -// String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, -// data.getProcessPersonid()); + operateViewModel.dispatcherHandleCase(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, + data.getProcessPersonid()); + } + }); + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + OtherUtils.showLoadingDialog(context, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + OtherUtils.dismissLoadingDialog(); + finish(); + } else { + EasyToast.show(context, "处理失败,请重试"); + OtherUtils.dismissLoadingDialog(); + } } }); } diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java index 31fc6a0..f23fc0b 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java @@ -16,6 +16,7 @@ import com.casic.dcms.mvvm.model.CaseDetailBean; import com.casic.dcms.mvvm.model.CaseNextNodeBean; import com.casic.dcms.mvvm.model.ProcessPersonBean; +import com.casic.dcms.mvvm.vm.CaseOperateViewModel; import com.casic.dcms.mvvm.vm.CaseViewModel; import com.casic.dcms.mvvm.vm.NodeViewModel; import com.casic.dcms.mvvm.vm.PersonViewModel; @@ -26,6 +27,7 @@ import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.ReadOnlyImageAdapter; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; +import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil; import com.pengxh.androidx.lite.vm.LoadState; import com.pengxh.androidx.lite.widget.EasyToast; @@ -36,13 +38,14 @@ import cn.jzvd.Jzvd; -public class DeptAuthorizeDetailActivity extends AndroidxBaseActivity implements View.OnClickListener { +public class DeptAuthorizeDetailActivity extends AndroidxBaseActivity { private final Context context = this; private CaseViewModel caseViewModel; private NodeViewModel nodeViewModel; - private List nodeDataBeans; private PersonViewModel personViewModel; + private CaseOperateViewModel operateViewModel; + private List nodeDataBeans; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private List personBeans; private String id; @@ -61,12 +64,13 @@ @Override public void initData() { - id = getIntent().getStringExtra("id"); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); personViewModel = new ViewModelProvider(this).get(PersonViewModel.class); + operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); } @Override @@ -192,39 +196,18 @@ } }); - personViewModel.processPersonModel.observe(this, new Observer() { + viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override - public void onChanged(ProcessPersonBean resultBean) { - if (resultBean.getCode() == 200) { - personBeans = resultBean.getData(); - if (personBeans.size() == 0) { - viewBinding.caseHandlePersonView.setText("无处置人员"); - } else { - ProcessPersonBean.DataBean dataBean = personBeans.get(0); - taskUserId = dataBean.getId(); - viewBinding.caseHandlePersonView.setText(dataBean.getName());//默认选择第一个 - } - viewBinding.caseHandlePersonView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); - } + public void onClick(View v) { + OtherUtils.displayOnMap(context, data.getEorcName(), data.getLng(), data.getLat()); } }); - viewBinding.locationMapView.setOnClickListener(this); - viewBinding.caseOptTypeLayout.setOnClickListener(this); - viewBinding.casePersonLayout.setOnClickListener(this); - viewBinding.commonTipsLayout.setOnClickListener(this); - viewBinding.submitButton.setOnClickListener(this); - } - - @Override - public void onClick(View v) { - int viewId = v.getId(); - if (viewId == R.id.locationMapView) { - OtherUtils.displayOnMap(this, data.getEorcName(), data.getLng(), data.getLat()); - } else if (viewId == R.id.caseOptTypeLayout) { - if (nodeDataBeans != null) { + viewBinding.caseOptTypeLayout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { if (nodeDataBeans.size() >= 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(context); sheetBuilder.setTitle("操作类型"); for (CaseNextNodeBean.DataBean dataBean : nodeDataBeans) { sheetBuilder.addItem(dataBean.getNextOperation()); @@ -254,10 +237,29 @@ }).build().show(); } } - } else if (viewId == R.id.casePersonLayout) { - if (personBeans != null) { + }); + personViewModel.processPersonModel.observe(this, new Observer() { + @Override + public void onChanged(ProcessPersonBean resultBean) { + if (resultBean.getCode() == 200) { + personBeans = resultBean.getData(); + if (personBeans.size() == 0) { + viewBinding.caseHandlePersonView.setText("无处置人员"); + } else { + ProcessPersonBean.DataBean dataBean = personBeans.get(0); + taskUserId = dataBean.getId(); + viewBinding.caseHandlePersonView.setText(dataBean.getName());//默认选择第一个 + } + viewBinding.caseHandlePersonView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); + } + } + }); + + viewBinding.casePersonLayout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { if (personBeans.size() >= 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(context); sheetBuilder.setTitle("处置人员"); for (ProcessPersonBean.DataBean dataBean : personBeans) { sheetBuilder.addItem(dataBean.getName()); @@ -274,50 +276,71 @@ }).build().show(); } } - } else if (viewId == R.id.commonTipsLayout) { - new QMUIBottomSheet.BottomListSheetBuilder(this) - .setTitle("常见用语") - .addItem("请及时处理") - .addItem("调查后及时回复") - .setGravityCenter(true) - .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - viewBinding.commonTipsView.setText(tag); - viewBinding.commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); + }); - viewBinding.optionEditView.setText(tag); - viewBinding.commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); - } - }).build().show(); - } else if (viewId == R.id.submitButton) { - String optType = viewBinding.optTypeView.getText().toString(); - if (optType.equals("")) { - EasyToast.show(this, "还未选择操作类型"); - return; + viewBinding.commonTipsLayout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new QMUIBottomSheet.BottomListSheetBuilder(context) + .setTitle("常见用语") + .addItem("请及时处理") + .addItem("调查后及时回复") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + viewBinding.commonTipsView.setText(tag); + viewBinding.commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); + } + }).build().show(); } - if (optType.equals("返回处理")) { - //选择处理人员时,必选一个处置人员 - String handlePerson = viewBinding.caseHandlePersonView.getText().toString(); - if (handlePerson.equals("")) { - EasyToast.show(this, "当前状态必须指定处置员"); + }); + + viewBinding.submitButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + String optType = viewBinding.optTypeView.getText().toString(); + if (optType.equals("")) { + EasyToast.show(context, "还未选择操作类型"); return; } + if (optType.equals("返回处理")) { + //选择处理人员时,必选一个处置人员 + String handlePerson = viewBinding.caseHandlePersonView.getText().toString(); + if (handlePerson.equals("")) { + EasyToast.show(context, "当前状态必须指定处置员"); + return; + } + } + String optionInput = StringHelper.filterString(viewBinding.commonTipsView.getText().toString()); + if (TextUtils.isEmpty(optionInput)) { + EasyToast.show(context, "处理意见必须填写"); + return; + } + //只有选择返回处理的时候taskUserId才会不为空,否则用当前流程人员的id代替 + if (TextUtils.isEmpty(taskUserId)) { + taskUserId = data.getProcessPersonid(); + } + operateViewModel.dispatcherHandleCase(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, + taskUserId); } - String optionInput = StringHelper.filterString(viewBinding.optionEditView.getText().toString()); - if (TextUtils.isEmpty(optionInput)) { - EasyToast.show(this, "处理意见必须填写"); - return; + }); + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + OtherUtils.showLoadingDialog(context, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + OtherUtils.dismissLoadingDialog(); + finish(); + } else { + EasyToast.show(context, "处理失败,请重试"); + OtherUtils.dismissLoadingDialog(); + } } - //只有选择返回处理的时候taskUserId才会不为空,否则用当前流程人员的id代替 - if (TextUtils.isEmpty(taskUserId)) { - taskUserId = data.getProcessPersonid(); - } -// caseViewModel.dispatcherHandleCase(data.getProcessId(), id, -// String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, -// taskUserId); - } + }); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DeptHandleActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DeptHandleActivity.java index 694bbd5..ca49b3d 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/DeptHandleActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/DeptHandleActivity.java @@ -18,6 +18,7 @@ import com.casic.dcms.utils.LocaleConstant; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; +import com.pengxh.androidx.lite.utils.DeviceSizeUtil; import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil; import java.util.ArrayList; @@ -49,8 +50,9 @@ //绑定TabLayout viewBinding.tabLayout.setupWithViewPager(viewBinding.viewPager); LinearLayout linearLayout = (LinearLayout) viewBinding.tabLayout.getChildAt(0); - linearLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE); linearLayout.setDividerDrawable(ContextCompat.getDrawable(this, R.drawable.layout_divider_vertical)); + linearLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE); + linearLayout.setDividerPadding(DeviceSizeUtil.dp2px(this, 12.5f)); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DeptTodoDetailActivity.java index b8b9c59..9686049 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/DeptTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/DeptTodoDetailActivity.java @@ -17,9 +17,9 @@ import com.casic.dcms.mvvm.model.CaseDetailBean; import com.casic.dcms.mvvm.model.CaseNextNodeBean; import com.casic.dcms.mvvm.model.ProcessPersonBean; +import com.casic.dcms.mvvm.vm.CaseOperateViewModel; import com.casic.dcms.mvvm.vm.CaseViewModel; import com.casic.dcms.mvvm.vm.NodeViewModel; -import com.casic.dcms.mvvm.vm.PersonViewModel; import com.casic.dcms.utils.JzExoMedia; import com.casic.dcms.utils.OtherUtils; import com.casic.dcms.utils.StringHelper; @@ -40,7 +40,7 @@ private final Context context = this; private CaseViewModel caseViewModel; private NodeViewModel nodeViewModel; - private PersonViewModel personViewModel; + private CaseOperateViewModel operateViewModel; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private List personBeans; private String id; @@ -66,7 +66,7 @@ caseViewModel.obtainCaseDetail(id); nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); - personViewModel = new ViewModelProvider(this).get(PersonViewModel.class); + operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); } @Override @@ -216,60 +216,12 @@ CaseNextNodeBean.DataBean nodeBean = nodeDataBeans.get(position); changeState = String.valueOf(nodeBean.getNextState()); operationKey = nodeBean.getOperationKey(); - - if (tag.equals("返回处理") || tag.equals("处置人员")) { - viewBinding.casePersonLayout.setVisibility(View.VISIBLE); - viewBinding.personLine.setVisibility(View.VISIBLE); - - //获取下级处置人员名单 - personViewModel.obtainSubordinatePerson(); - } else { - viewBinding.casePersonLayout.setVisibility(View.GONE); - viewBinding.personLine.setVisibility(View.GONE); - } } }).build().show(); } } }); - viewBinding.casePersonLayout.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (personBeans.size() >= 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(context); - sheetBuilder.setTitle("处置人员"); - for (ProcessPersonBean.DataBean dataBean : personBeans) { - sheetBuilder.addItem(dataBean.getName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - viewBinding.caseHandlePersonView.setText(tag); - - taskUserId = personBeans.get(position).getId(); - } - }).build().show(); - } - } - }); - personViewModel.processPersonModel.observe(this, new Observer() { - @Override - public void onChanged(ProcessPersonBean resultBean) { - if (resultBean.isSuccess()) { - personBeans = resultBean.getData(); - if (personBeans.size() == 0) { - viewBinding.caseHandlePersonView.setText("无处置人员"); - } else { - ProcessPersonBean.DataBean dataBean = personBeans.get(0); - taskUserId = dataBean.getId(); - viewBinding.caseHandlePersonView.setText(dataBean.getName());//默认选择第一个 - } - } - } - }); - viewBinding.commonTipsLayout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -283,8 +235,6 @@ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { dialog.dismiss(); viewBinding.commonTipsView.setText(tag); - - viewBinding.optionEditView.setText(tag); } }).build().show(); } @@ -298,21 +248,27 @@ EasyToast.show(context, "还未选择操作类型"); return; } - if (optType.equals("处置人员") || optType.equals("返回处理")) { - //选择处理人员时,必选一个处置人员 - String handlePerson = viewBinding.caseHandlePersonView.getText().toString(); - if (handlePerson.equals("")) { - EasyToast.show(context, "当前状态必须指定处置员"); - return; - } - } - String optionInput = StringHelper.filterString(viewBinding.optionEditView.getText().toString()); + String optionInput = StringHelper.filterString(viewBinding.commonTipsView.getText().toString()); if (TextUtils.isEmpty(optionInput)) { EasyToast.show(context, "处理意见必须填写"); return; } -// caseViewModel.dispatcherHandleCase(data.getProcessId(), id, -// String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, taskUserId); + operateViewModel.dispatcherHandleCase(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, taskUserId); + } + }); + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + OtherUtils.showLoadingDialog(context, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + OtherUtils.dismissLoadingDialog(); + finish(); + } else { + EasyToast.show(context, "处理失败,请重试"); + OtherUtils.dismissLoadingDialog(); + } } }); } diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseHandledFragment.java index 0a65c11..7b65a54 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseHandledFragment.java @@ -29,7 +29,7 @@ private WeakReferenceHandler weakReferenceHandler; private DeptHandleViewModel handleViewModel; private DeptTodoOrHandledAdapter adapter; - private List dataBeans = new ArrayList<>(); + private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -78,7 +78,7 @@ @Override public void onChanged(DeptCaseBean resultBean) { if (resultBean.isSuccess()) { - List dataRows = resultBean.getData().getRows(); + List dataRows = resultBean.getData().getRows(); if (isRefresh) { dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 dataBeans = dataRows; diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseProcessFragment.java b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseProcessFragment.java index 8d780d7..a7948e0 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseProcessFragment.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseProcessFragment.java @@ -30,7 +30,7 @@ private WeakReferenceHandler weakReferenceHandler; private DeptHandleViewModel handleViewModel; private DeptTodoOrHandledAdapter adapter; - private List dataBeans = new ArrayList<>(); + private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -79,7 +79,7 @@ @Override public void onChanged(DeptCaseBean resultBean) { if (resultBean.isSuccess()) { - List dataRows = resultBean.getData().getRows(); + List dataRows = resultBean.getData().getRows(); if (isRefresh) { dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 dataBeans = dataRows; diff --git a/.idea/misc.xml b/.idea/misc.xml index 552f6c3..d6ee830 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -35,6 +35,10 @@ + + + + @@ -48,6 +52,7 @@ + diff --git a/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java b/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java index 6c4a6a6..1fafc8b 100644 --- a/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java @@ -11,35 +11,35 @@ import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; +import com.bumptech.glide.Glide; import com.casic.dcms.R; import com.casic.dcms.mvvm.model.DeptCaseBean; import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUIRadiusImageView; import java.util.List; -/** - * {@link PackageCaseListAdapter 不适用二级派遣员部门处置列表,因为该列表不光有三包案卷,还有普通案卷} - */ public class DeptTodoOrHandledAdapter extends RecyclerView.Adapter { - private final List dataBeans; + private final Context context; + private final List dataBeans; private final LayoutInflater layoutInflater; private PunishTypeAdapter adapter; - public DeptTodoOrHandledAdapter(Context context, List dataRows) { + public DeptTodoOrHandledAdapter(Context context, List dataRows) { + this.context = context; this.dataBeans = dataRows; layoutInflater = LayoutInflater.from(context); } @NonNull @Override - public DeptTodoOrHandledAdapter.ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - View view = layoutInflater.inflate(R.layout.item_case_rv, parent, false); - return new ItemViewHolder(view); + 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 DeptTodoOrHandledAdapter.ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { + public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { holder.bindView(dataBeans.get(position)); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @@ -56,28 +56,30 @@ return dataBeans.size(); } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { -// private final TextView leftTextView; + private final QMUIRadiusImageView caseImageView; private final TextView caseTitleView; private final TextView casePlaceView; private final TextView caseTimeView; ItemViewHolder(@NonNull View itemView) { super(itemView); -// leftTextView = itemView.findViewById(R.id.leftTextView); + caseImageView = itemView.findViewById(R.id.caseImageView); caseTitleView = itemView.findViewById(R.id.caseTitleView); casePlaceView = itemView.findViewById(R.id.casePlaceView); caseTimeView = itemView.findViewById(R.id.caseTimeView); } - @SuppressLint("SetTextI18n") - void bindView(DeptCaseBean.DataBean.RowsBean rowsBean) { - String eorcName = rowsBean.getEorcName(); - if (TextUtils.isEmpty(eorcName)) { - eorcName = "未知"; + void bindView(DeptCaseBean.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); + } } -// 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/mvvm/model/DeptCaseBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/DeptCaseBean.java index 1a4ac47..79163d8 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/model/DeptCaseBean.java +++ b/app/src/main/java/com/casic/dcms/mvvm/model/DeptCaseBean.java @@ -8,7 +8,7 @@ public class DeptCaseBean { private int code; - private DataBean data; + private DataDTO data; private String message; private boolean success; @@ -20,11 +20,11 @@ this.code = code; } - public DataBean getData() { + public DataDTO getData() { return data; } - public void setData(DataBean data) { + public void setData(DataDTO data) { this.data = data; } @@ -44,10 +44,17 @@ this.success = success; } - public static class DataBean { - + public static class DataDTO { + private List rows; private int total; - private List rows; + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } public int getTotal() { return total; @@ -57,26 +64,14 @@ this.total = total; } - public List getRows() { - return rows; - } - - public void setRows(List rows) { - this.rows = rows; - } - - public static class RowsBean { - + public static class RowsDTO { private int isPostpone; - private int preState; private String description; private int source; private String eorcName; private String casetypeDetailName; private String remainingTime; private String casetypeName; - private String currUserId; - private String currUserName; private String processId; private int caseState; private String id; @@ -84,10 +79,10 @@ private String fieldintro; private String lat; private String caseStateName; - private String preOperator; private String lng; private String isOvertime; private String currRoleName; + private String fileIdVerify; private String casetypeDetailCode; private String onedeptid; private String eorc; @@ -95,8 +90,14 @@ private String caseid; private String casetypeCode; private String nodeLimittime; + private String taskName; private String sourceName; + private String fileIdProcess; private String reportTime; + private String currUserId; + private String currUserName; + private String currDeptId; + private String currDeptName; private String onedeptName; public int getIsPostpone() { @@ -107,14 +108,6 @@ this.isPostpone = isPostpone; } - public int getPreState() { - return preState; - } - - public void setPreState(int preState) { - this.preState = preState; - } - public String getDescription() { return description; } @@ -163,22 +156,6 @@ this.casetypeName = casetypeName; } - public String getCurrUserId() { - return currUserId; - } - - public void setCurrUserId(String currUserId) { - this.currUserId = currUserId; - } - - public String getCurrUserName() { - return currUserName; - } - - public void setCurrUserName(String currUserName) { - this.currUserName = currUserName; - } - public String getProcessId() { return processId; } @@ -235,14 +212,6 @@ this.caseStateName = caseStateName; } - public String getPreOperator() { - return preOperator; - } - - public void setPreOperator(String preOperator) { - this.preOperator = preOperator; - } - public String getLng() { return lng; } @@ -267,6 +236,14 @@ this.currRoleName = currRoleName; } + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + public String getCasetypeDetailCode() { return casetypeDetailCode; } @@ -323,6 +300,14 @@ this.nodeLimittime = nodeLimittime; } + public String getTaskName() { + return taskName; + } + + public void setTaskName(String taskName) { + this.taskName = taskName; + } + public String getSourceName() { return sourceName; } @@ -331,6 +316,14 @@ this.sourceName = sourceName; } + public String getFileIdProcess() { + return fileIdProcess; + } + + public void setFileIdProcess(String fileIdProcess) { + this.fileIdProcess = fileIdProcess; + } + public String getReportTime() { return reportTime; } @@ -339,6 +332,38 @@ this.reportTime = reportTime; } + public String getCurrUserId() { + return currUserId; + } + + public void setCurrUserId(String currUserId) { + this.currUserId = currUserId; + } + + public String getCurrUserName() { + return currUserName; + } + + public void setCurrUserName(String currUserName) { + this.currUserName = currUserName; + } + + public String getCurrDeptId() { + return currDeptId; + } + + public void setCurrDeptId(String currDeptId) { + this.currDeptId = currDeptId; + } + + public String getCurrDeptName() { + return currDeptName; + } + + public void setCurrDeptName(String currDeptName) { + this.currDeptName = currDeptName; + } + public String getOnedeptName() { return onedeptName; } diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java index de23222..9e72c93 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java @@ -15,6 +15,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.mvvm.model.CaseDetailBean; import com.casic.dcms.mvvm.model.CaseNextNodeBean; +import com.casic.dcms.mvvm.vm.CaseOperateViewModel; import com.casic.dcms.mvvm.vm.CaseViewModel; import com.casic.dcms.mvvm.vm.NodeViewModel; import com.casic.dcms.utils.JzExoMedia; @@ -40,6 +41,7 @@ private final Context context = this; private CaseViewModel caseViewModel; private NodeViewModel nodeViewModel; + private CaseOperateViewModel operateViewModel; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private List nodeDataBeans; private String id; @@ -62,6 +64,7 @@ caseViewModel.obtainCaseDetail(id); nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); + operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); } @Override @@ -230,8 +233,6 @@ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { dialog.dismiss(); viewBinding.commonTipsView.setText(tag); - - viewBinding.optionEditView.setText(tag); } }).build().show(); } @@ -245,14 +246,28 @@ EasyToast.show(context, "还未选择操作类型"); return; } - String optionInput = StringHelper.filterString(viewBinding.optionEditView.getText().toString()); + String optionInput = StringHelper.filterString(viewBinding.commonTipsView.getText().toString()); if (TextUtils.isEmpty(optionInput)) { EasyToast.show(context, "不同意/同意的意见必须填写"); return; } -// caseViewModel.dispatcherHandleCase(data.getProcessId(), id, -// String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, -// data.getProcessPersonid()); + operateViewModel.dispatcherHandleCase(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, + data.getProcessPersonid()); + } + }); + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + OtherUtils.showLoadingDialog(context, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + OtherUtils.dismissLoadingDialog(); + finish(); + } else { + EasyToast.show(context, "处理失败,请重试"); + OtherUtils.dismissLoadingDialog(); + } } }); } diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java index 31fc6a0..f23fc0b 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java @@ -16,6 +16,7 @@ import com.casic.dcms.mvvm.model.CaseDetailBean; import com.casic.dcms.mvvm.model.CaseNextNodeBean; import com.casic.dcms.mvvm.model.ProcessPersonBean; +import com.casic.dcms.mvvm.vm.CaseOperateViewModel; import com.casic.dcms.mvvm.vm.CaseViewModel; import com.casic.dcms.mvvm.vm.NodeViewModel; import com.casic.dcms.mvvm.vm.PersonViewModel; @@ -26,6 +27,7 @@ import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.ReadOnlyImageAdapter; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; +import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil; import com.pengxh.androidx.lite.vm.LoadState; import com.pengxh.androidx.lite.widget.EasyToast; @@ -36,13 +38,14 @@ import cn.jzvd.Jzvd; -public class DeptAuthorizeDetailActivity extends AndroidxBaseActivity implements View.OnClickListener { +public class DeptAuthorizeDetailActivity extends AndroidxBaseActivity { private final Context context = this; private CaseViewModel caseViewModel; private NodeViewModel nodeViewModel; - private List nodeDataBeans; private PersonViewModel personViewModel; + private CaseOperateViewModel operateViewModel; + private List nodeDataBeans; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private List personBeans; private String id; @@ -61,12 +64,13 @@ @Override public void initData() { - id = getIntent().getStringExtra("id"); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); personViewModel = new ViewModelProvider(this).get(PersonViewModel.class); + operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); } @Override @@ -192,39 +196,18 @@ } }); - personViewModel.processPersonModel.observe(this, new Observer() { + viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override - public void onChanged(ProcessPersonBean resultBean) { - if (resultBean.getCode() == 200) { - personBeans = resultBean.getData(); - if (personBeans.size() == 0) { - viewBinding.caseHandlePersonView.setText("无处置人员"); - } else { - ProcessPersonBean.DataBean dataBean = personBeans.get(0); - taskUserId = dataBean.getId(); - viewBinding.caseHandlePersonView.setText(dataBean.getName());//默认选择第一个 - } - viewBinding.caseHandlePersonView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); - } + public void onClick(View v) { + OtherUtils.displayOnMap(context, data.getEorcName(), data.getLng(), data.getLat()); } }); - viewBinding.locationMapView.setOnClickListener(this); - viewBinding.caseOptTypeLayout.setOnClickListener(this); - viewBinding.casePersonLayout.setOnClickListener(this); - viewBinding.commonTipsLayout.setOnClickListener(this); - viewBinding.submitButton.setOnClickListener(this); - } - - @Override - public void onClick(View v) { - int viewId = v.getId(); - if (viewId == R.id.locationMapView) { - OtherUtils.displayOnMap(this, data.getEorcName(), data.getLng(), data.getLat()); - } else if (viewId == R.id.caseOptTypeLayout) { - if (nodeDataBeans != null) { + viewBinding.caseOptTypeLayout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { if (nodeDataBeans.size() >= 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(context); sheetBuilder.setTitle("操作类型"); for (CaseNextNodeBean.DataBean dataBean : nodeDataBeans) { sheetBuilder.addItem(dataBean.getNextOperation()); @@ -254,10 +237,29 @@ }).build().show(); } } - } else if (viewId == R.id.casePersonLayout) { - if (personBeans != null) { + }); + personViewModel.processPersonModel.observe(this, new Observer() { + @Override + public void onChanged(ProcessPersonBean resultBean) { + if (resultBean.getCode() == 200) { + personBeans = resultBean.getData(); + if (personBeans.size() == 0) { + viewBinding.caseHandlePersonView.setText("无处置人员"); + } else { + ProcessPersonBean.DataBean dataBean = personBeans.get(0); + taskUserId = dataBean.getId(); + viewBinding.caseHandlePersonView.setText(dataBean.getName());//默认选择第一个 + } + viewBinding.caseHandlePersonView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); + } + } + }); + + viewBinding.casePersonLayout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { if (personBeans.size() >= 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(context); sheetBuilder.setTitle("处置人员"); for (ProcessPersonBean.DataBean dataBean : personBeans) { sheetBuilder.addItem(dataBean.getName()); @@ -274,50 +276,71 @@ }).build().show(); } } - } else if (viewId == R.id.commonTipsLayout) { - new QMUIBottomSheet.BottomListSheetBuilder(this) - .setTitle("常见用语") - .addItem("请及时处理") - .addItem("调查后及时回复") - .setGravityCenter(true) - .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - viewBinding.commonTipsView.setText(tag); - viewBinding.commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); + }); - viewBinding.optionEditView.setText(tag); - viewBinding.commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); - } - }).build().show(); - } else if (viewId == R.id.submitButton) { - String optType = viewBinding.optTypeView.getText().toString(); - if (optType.equals("")) { - EasyToast.show(this, "还未选择操作类型"); - return; + viewBinding.commonTipsLayout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new QMUIBottomSheet.BottomListSheetBuilder(context) + .setTitle("常见用语") + .addItem("请及时处理") + .addItem("调查后及时回复") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + viewBinding.commonTipsView.setText(tag); + viewBinding.commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); + } + }).build().show(); } - if (optType.equals("返回处理")) { - //选择处理人员时,必选一个处置人员 - String handlePerson = viewBinding.caseHandlePersonView.getText().toString(); - if (handlePerson.equals("")) { - EasyToast.show(this, "当前状态必须指定处置员"); + }); + + viewBinding.submitButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + String optType = viewBinding.optTypeView.getText().toString(); + if (optType.equals("")) { + EasyToast.show(context, "还未选择操作类型"); return; } + if (optType.equals("返回处理")) { + //选择处理人员时,必选一个处置人员 + String handlePerson = viewBinding.caseHandlePersonView.getText().toString(); + if (handlePerson.equals("")) { + EasyToast.show(context, "当前状态必须指定处置员"); + return; + } + } + String optionInput = StringHelper.filterString(viewBinding.commonTipsView.getText().toString()); + if (TextUtils.isEmpty(optionInput)) { + EasyToast.show(context, "处理意见必须填写"); + return; + } + //只有选择返回处理的时候taskUserId才会不为空,否则用当前流程人员的id代替 + if (TextUtils.isEmpty(taskUserId)) { + taskUserId = data.getProcessPersonid(); + } + operateViewModel.dispatcherHandleCase(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, + taskUserId); } - String optionInput = StringHelper.filterString(viewBinding.optionEditView.getText().toString()); - if (TextUtils.isEmpty(optionInput)) { - EasyToast.show(this, "处理意见必须填写"); - return; + }); + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + OtherUtils.showLoadingDialog(context, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + OtherUtils.dismissLoadingDialog(); + finish(); + } else { + EasyToast.show(context, "处理失败,请重试"); + OtherUtils.dismissLoadingDialog(); + } } - //只有选择返回处理的时候taskUserId才会不为空,否则用当前流程人员的id代替 - if (TextUtils.isEmpty(taskUserId)) { - taskUserId = data.getProcessPersonid(); - } -// caseViewModel.dispatcherHandleCase(data.getProcessId(), id, -// String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, -// taskUserId); - } + }); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DeptHandleActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DeptHandleActivity.java index 694bbd5..ca49b3d 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/DeptHandleActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/DeptHandleActivity.java @@ -18,6 +18,7 @@ import com.casic.dcms.utils.LocaleConstant; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; +import com.pengxh.androidx.lite.utils.DeviceSizeUtil; import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil; import java.util.ArrayList; @@ -49,8 +50,9 @@ //绑定TabLayout viewBinding.tabLayout.setupWithViewPager(viewBinding.viewPager); LinearLayout linearLayout = (LinearLayout) viewBinding.tabLayout.getChildAt(0); - linearLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE); linearLayout.setDividerDrawable(ContextCompat.getDrawable(this, R.drawable.layout_divider_vertical)); + linearLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE); + linearLayout.setDividerPadding(DeviceSizeUtil.dp2px(this, 12.5f)); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DeptTodoDetailActivity.java index b8b9c59..9686049 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/DeptTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/DeptTodoDetailActivity.java @@ -17,9 +17,9 @@ import com.casic.dcms.mvvm.model.CaseDetailBean; import com.casic.dcms.mvvm.model.CaseNextNodeBean; import com.casic.dcms.mvvm.model.ProcessPersonBean; +import com.casic.dcms.mvvm.vm.CaseOperateViewModel; import com.casic.dcms.mvvm.vm.CaseViewModel; import com.casic.dcms.mvvm.vm.NodeViewModel; -import com.casic.dcms.mvvm.vm.PersonViewModel; import com.casic.dcms.utils.JzExoMedia; import com.casic.dcms.utils.OtherUtils; import com.casic.dcms.utils.StringHelper; @@ -40,7 +40,7 @@ private final Context context = this; private CaseViewModel caseViewModel; private NodeViewModel nodeViewModel; - private PersonViewModel personViewModel; + private CaseOperateViewModel operateViewModel; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private List personBeans; private String id; @@ -66,7 +66,7 @@ caseViewModel.obtainCaseDetail(id); nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); - personViewModel = new ViewModelProvider(this).get(PersonViewModel.class); + operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); } @Override @@ -216,60 +216,12 @@ CaseNextNodeBean.DataBean nodeBean = nodeDataBeans.get(position); changeState = String.valueOf(nodeBean.getNextState()); operationKey = nodeBean.getOperationKey(); - - if (tag.equals("返回处理") || tag.equals("处置人员")) { - viewBinding.casePersonLayout.setVisibility(View.VISIBLE); - viewBinding.personLine.setVisibility(View.VISIBLE); - - //获取下级处置人员名单 - personViewModel.obtainSubordinatePerson(); - } else { - viewBinding.casePersonLayout.setVisibility(View.GONE); - viewBinding.personLine.setVisibility(View.GONE); - } } }).build().show(); } } }); - viewBinding.casePersonLayout.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (personBeans.size() >= 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(context); - sheetBuilder.setTitle("处置人员"); - for (ProcessPersonBean.DataBean dataBean : personBeans) { - sheetBuilder.addItem(dataBean.getName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - viewBinding.caseHandlePersonView.setText(tag); - - taskUserId = personBeans.get(position).getId(); - } - }).build().show(); - } - } - }); - personViewModel.processPersonModel.observe(this, new Observer() { - @Override - public void onChanged(ProcessPersonBean resultBean) { - if (resultBean.isSuccess()) { - personBeans = resultBean.getData(); - if (personBeans.size() == 0) { - viewBinding.caseHandlePersonView.setText("无处置人员"); - } else { - ProcessPersonBean.DataBean dataBean = personBeans.get(0); - taskUserId = dataBean.getId(); - viewBinding.caseHandlePersonView.setText(dataBean.getName());//默认选择第一个 - } - } - } - }); - viewBinding.commonTipsLayout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -283,8 +235,6 @@ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { dialog.dismiss(); viewBinding.commonTipsView.setText(tag); - - viewBinding.optionEditView.setText(tag); } }).build().show(); } @@ -298,21 +248,27 @@ EasyToast.show(context, "还未选择操作类型"); return; } - if (optType.equals("处置人员") || optType.equals("返回处理")) { - //选择处理人员时,必选一个处置人员 - String handlePerson = viewBinding.caseHandlePersonView.getText().toString(); - if (handlePerson.equals("")) { - EasyToast.show(context, "当前状态必须指定处置员"); - return; - } - } - String optionInput = StringHelper.filterString(viewBinding.optionEditView.getText().toString()); + String optionInput = StringHelper.filterString(viewBinding.commonTipsView.getText().toString()); if (TextUtils.isEmpty(optionInput)) { EasyToast.show(context, "处理意见必须填写"); return; } -// caseViewModel.dispatcherHandleCase(data.getProcessId(), id, -// String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, taskUserId); + operateViewModel.dispatcherHandleCase(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, taskUserId); + } + }); + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + OtherUtils.showLoadingDialog(context, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + OtherUtils.dismissLoadingDialog(); + finish(); + } else { + EasyToast.show(context, "处理失败,请重试"); + OtherUtils.dismissLoadingDialog(); + } } }); } diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseHandledFragment.java index 0a65c11..7b65a54 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseHandledFragment.java @@ -29,7 +29,7 @@ private WeakReferenceHandler weakReferenceHandler; private DeptHandleViewModel handleViewModel; private DeptTodoOrHandledAdapter adapter; - private List dataBeans = new ArrayList<>(); + private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -78,7 +78,7 @@ @Override public void onChanged(DeptCaseBean resultBean) { if (resultBean.isSuccess()) { - List dataRows = resultBean.getData().getRows(); + List dataRows = resultBean.getData().getRows(); if (isRefresh) { dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 dataBeans = dataRows; diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseProcessFragment.java b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseProcessFragment.java index 8d780d7..a7948e0 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseProcessFragment.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseProcessFragment.java @@ -30,7 +30,7 @@ private WeakReferenceHandler weakReferenceHandler; private DeptHandleViewModel handleViewModel; private DeptTodoOrHandledAdapter adapter; - private List dataBeans = new ArrayList<>(); + private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -79,7 +79,7 @@ @Override public void onChanged(DeptCaseBean resultBean) { if (resultBean.isSuccess()) { - List dataRows = resultBean.getData().getRows(); + List dataRows = resultBean.getData().getRows(); if (isRefresh) { dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 dataBeans = dataRows; diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseTodoFragment.java b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseTodoFragment.java index a807209..e4c8eaf 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseTodoFragment.java @@ -30,7 +30,7 @@ private WeakReferenceHandler weakReferenceHandler; private DeptHandleViewModel handleViewModel; private DeptTodoOrHandledAdapter adapter; - private List dataBeans = new ArrayList<>(); + private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -79,7 +79,7 @@ @Override public void onChanged(DeptCaseBean resultBean) { if (resultBean.getCode() == 200) { - List dataRows = resultBean.getData().getRows(); + List dataRows = resultBean.getData().getRows(); if (isRefresh) { dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 dataBeans = dataRows; diff --git a/.idea/misc.xml b/.idea/misc.xml index 552f6c3..d6ee830 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -35,6 +35,10 @@ + + + + @@ -48,6 +52,7 @@ + diff --git a/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java b/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java index 6c4a6a6..1fafc8b 100644 --- a/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java @@ -11,35 +11,35 @@ import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; +import com.bumptech.glide.Glide; import com.casic.dcms.R; import com.casic.dcms.mvvm.model.DeptCaseBean; import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUIRadiusImageView; import java.util.List; -/** - * {@link PackageCaseListAdapter 不适用二级派遣员部门处置列表,因为该列表不光有三包案卷,还有普通案卷} - */ public class DeptTodoOrHandledAdapter extends RecyclerView.Adapter { - private final List dataBeans; + private final Context context; + private final List dataBeans; private final LayoutInflater layoutInflater; private PunishTypeAdapter adapter; - public DeptTodoOrHandledAdapter(Context context, List dataRows) { + public DeptTodoOrHandledAdapter(Context context, List dataRows) { + this.context = context; this.dataBeans = dataRows; layoutInflater = LayoutInflater.from(context); } @NonNull @Override - public DeptTodoOrHandledAdapter.ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - View view = layoutInflater.inflate(R.layout.item_case_rv, parent, false); - return new ItemViewHolder(view); + 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 DeptTodoOrHandledAdapter.ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { + public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { holder.bindView(dataBeans.get(position)); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @@ -56,28 +56,30 @@ return dataBeans.size(); } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { -// private final TextView leftTextView; + private final QMUIRadiusImageView caseImageView; private final TextView caseTitleView; private final TextView casePlaceView; private final TextView caseTimeView; ItemViewHolder(@NonNull View itemView) { super(itemView); -// leftTextView = itemView.findViewById(R.id.leftTextView); + caseImageView = itemView.findViewById(R.id.caseImageView); caseTitleView = itemView.findViewById(R.id.caseTitleView); casePlaceView = itemView.findViewById(R.id.casePlaceView); caseTimeView = itemView.findViewById(R.id.caseTimeView); } - @SuppressLint("SetTextI18n") - void bindView(DeptCaseBean.DataBean.RowsBean rowsBean) { - String eorcName = rowsBean.getEorcName(); - if (TextUtils.isEmpty(eorcName)) { - eorcName = "未知"; + void bindView(DeptCaseBean.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); + } } -// 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/mvvm/model/DeptCaseBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/DeptCaseBean.java index 1a4ac47..79163d8 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/model/DeptCaseBean.java +++ b/app/src/main/java/com/casic/dcms/mvvm/model/DeptCaseBean.java @@ -8,7 +8,7 @@ public class DeptCaseBean { private int code; - private DataBean data; + private DataDTO data; private String message; private boolean success; @@ -20,11 +20,11 @@ this.code = code; } - public DataBean getData() { + public DataDTO getData() { return data; } - public void setData(DataBean data) { + public void setData(DataDTO data) { this.data = data; } @@ -44,10 +44,17 @@ this.success = success; } - public static class DataBean { - + public static class DataDTO { + private List rows; private int total; - private List rows; + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } public int getTotal() { return total; @@ -57,26 +64,14 @@ this.total = total; } - public List getRows() { - return rows; - } - - public void setRows(List rows) { - this.rows = rows; - } - - public static class RowsBean { - + public static class RowsDTO { private int isPostpone; - private int preState; private String description; private int source; private String eorcName; private String casetypeDetailName; private String remainingTime; private String casetypeName; - private String currUserId; - private String currUserName; private String processId; private int caseState; private String id; @@ -84,10 +79,10 @@ private String fieldintro; private String lat; private String caseStateName; - private String preOperator; private String lng; private String isOvertime; private String currRoleName; + private String fileIdVerify; private String casetypeDetailCode; private String onedeptid; private String eorc; @@ -95,8 +90,14 @@ private String caseid; private String casetypeCode; private String nodeLimittime; + private String taskName; private String sourceName; + private String fileIdProcess; private String reportTime; + private String currUserId; + private String currUserName; + private String currDeptId; + private String currDeptName; private String onedeptName; public int getIsPostpone() { @@ -107,14 +108,6 @@ this.isPostpone = isPostpone; } - public int getPreState() { - return preState; - } - - public void setPreState(int preState) { - this.preState = preState; - } - public String getDescription() { return description; } @@ -163,22 +156,6 @@ this.casetypeName = casetypeName; } - public String getCurrUserId() { - return currUserId; - } - - public void setCurrUserId(String currUserId) { - this.currUserId = currUserId; - } - - public String getCurrUserName() { - return currUserName; - } - - public void setCurrUserName(String currUserName) { - this.currUserName = currUserName; - } - public String getProcessId() { return processId; } @@ -235,14 +212,6 @@ this.caseStateName = caseStateName; } - public String getPreOperator() { - return preOperator; - } - - public void setPreOperator(String preOperator) { - this.preOperator = preOperator; - } - public String getLng() { return lng; } @@ -267,6 +236,14 @@ this.currRoleName = currRoleName; } + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + public String getCasetypeDetailCode() { return casetypeDetailCode; } @@ -323,6 +300,14 @@ this.nodeLimittime = nodeLimittime; } + public String getTaskName() { + return taskName; + } + + public void setTaskName(String taskName) { + this.taskName = taskName; + } + public String getSourceName() { return sourceName; } @@ -331,6 +316,14 @@ this.sourceName = sourceName; } + public String getFileIdProcess() { + return fileIdProcess; + } + + public void setFileIdProcess(String fileIdProcess) { + this.fileIdProcess = fileIdProcess; + } + public String getReportTime() { return reportTime; } @@ -339,6 +332,38 @@ this.reportTime = reportTime; } + public String getCurrUserId() { + return currUserId; + } + + public void setCurrUserId(String currUserId) { + this.currUserId = currUserId; + } + + public String getCurrUserName() { + return currUserName; + } + + public void setCurrUserName(String currUserName) { + this.currUserName = currUserName; + } + + public String getCurrDeptId() { + return currDeptId; + } + + public void setCurrDeptId(String currDeptId) { + this.currDeptId = currDeptId; + } + + public String getCurrDeptName() { + return currDeptName; + } + + public void setCurrDeptName(String currDeptName) { + this.currDeptName = currDeptName; + } + public String getOnedeptName() { return onedeptName; } diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java index de23222..9e72c93 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java @@ -15,6 +15,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.mvvm.model.CaseDetailBean; import com.casic.dcms.mvvm.model.CaseNextNodeBean; +import com.casic.dcms.mvvm.vm.CaseOperateViewModel; import com.casic.dcms.mvvm.vm.CaseViewModel; import com.casic.dcms.mvvm.vm.NodeViewModel; import com.casic.dcms.utils.JzExoMedia; @@ -40,6 +41,7 @@ private final Context context = this; private CaseViewModel caseViewModel; private NodeViewModel nodeViewModel; + private CaseOperateViewModel operateViewModel; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private List nodeDataBeans; private String id; @@ -62,6 +64,7 @@ caseViewModel.obtainCaseDetail(id); nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); + operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); } @Override @@ -230,8 +233,6 @@ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { dialog.dismiss(); viewBinding.commonTipsView.setText(tag); - - viewBinding.optionEditView.setText(tag); } }).build().show(); } @@ -245,14 +246,28 @@ EasyToast.show(context, "还未选择操作类型"); return; } - String optionInput = StringHelper.filterString(viewBinding.optionEditView.getText().toString()); + String optionInput = StringHelper.filterString(viewBinding.commonTipsView.getText().toString()); if (TextUtils.isEmpty(optionInput)) { EasyToast.show(context, "不同意/同意的意见必须填写"); return; } -// caseViewModel.dispatcherHandleCase(data.getProcessId(), id, -// String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, -// data.getProcessPersonid()); + operateViewModel.dispatcherHandleCase(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, + data.getProcessPersonid()); + } + }); + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + OtherUtils.showLoadingDialog(context, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + OtherUtils.dismissLoadingDialog(); + finish(); + } else { + EasyToast.show(context, "处理失败,请重试"); + OtherUtils.dismissLoadingDialog(); + } } }); } diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java index 31fc6a0..f23fc0b 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java @@ -16,6 +16,7 @@ import com.casic.dcms.mvvm.model.CaseDetailBean; import com.casic.dcms.mvvm.model.CaseNextNodeBean; import com.casic.dcms.mvvm.model.ProcessPersonBean; +import com.casic.dcms.mvvm.vm.CaseOperateViewModel; import com.casic.dcms.mvvm.vm.CaseViewModel; import com.casic.dcms.mvvm.vm.NodeViewModel; import com.casic.dcms.mvvm.vm.PersonViewModel; @@ -26,6 +27,7 @@ import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.ReadOnlyImageAdapter; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; +import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil; import com.pengxh.androidx.lite.vm.LoadState; import com.pengxh.androidx.lite.widget.EasyToast; @@ -36,13 +38,14 @@ import cn.jzvd.Jzvd; -public class DeptAuthorizeDetailActivity extends AndroidxBaseActivity implements View.OnClickListener { +public class DeptAuthorizeDetailActivity extends AndroidxBaseActivity { private final Context context = this; private CaseViewModel caseViewModel; private NodeViewModel nodeViewModel; - private List nodeDataBeans; private PersonViewModel personViewModel; + private CaseOperateViewModel operateViewModel; + private List nodeDataBeans; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private List personBeans; private String id; @@ -61,12 +64,13 @@ @Override public void initData() { - id = getIntent().getStringExtra("id"); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); personViewModel = new ViewModelProvider(this).get(PersonViewModel.class); + operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); } @Override @@ -192,39 +196,18 @@ } }); - personViewModel.processPersonModel.observe(this, new Observer() { + viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override - public void onChanged(ProcessPersonBean resultBean) { - if (resultBean.getCode() == 200) { - personBeans = resultBean.getData(); - if (personBeans.size() == 0) { - viewBinding.caseHandlePersonView.setText("无处置人员"); - } else { - ProcessPersonBean.DataBean dataBean = personBeans.get(0); - taskUserId = dataBean.getId(); - viewBinding.caseHandlePersonView.setText(dataBean.getName());//默认选择第一个 - } - viewBinding.caseHandlePersonView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); - } + public void onClick(View v) { + OtherUtils.displayOnMap(context, data.getEorcName(), data.getLng(), data.getLat()); } }); - viewBinding.locationMapView.setOnClickListener(this); - viewBinding.caseOptTypeLayout.setOnClickListener(this); - viewBinding.casePersonLayout.setOnClickListener(this); - viewBinding.commonTipsLayout.setOnClickListener(this); - viewBinding.submitButton.setOnClickListener(this); - } - - @Override - public void onClick(View v) { - int viewId = v.getId(); - if (viewId == R.id.locationMapView) { - OtherUtils.displayOnMap(this, data.getEorcName(), data.getLng(), data.getLat()); - } else if (viewId == R.id.caseOptTypeLayout) { - if (nodeDataBeans != null) { + viewBinding.caseOptTypeLayout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { if (nodeDataBeans.size() >= 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(context); sheetBuilder.setTitle("操作类型"); for (CaseNextNodeBean.DataBean dataBean : nodeDataBeans) { sheetBuilder.addItem(dataBean.getNextOperation()); @@ -254,10 +237,29 @@ }).build().show(); } } - } else if (viewId == R.id.casePersonLayout) { - if (personBeans != null) { + }); + personViewModel.processPersonModel.observe(this, new Observer() { + @Override + public void onChanged(ProcessPersonBean resultBean) { + if (resultBean.getCode() == 200) { + personBeans = resultBean.getData(); + if (personBeans.size() == 0) { + viewBinding.caseHandlePersonView.setText("无处置人员"); + } else { + ProcessPersonBean.DataBean dataBean = personBeans.get(0); + taskUserId = dataBean.getId(); + viewBinding.caseHandlePersonView.setText(dataBean.getName());//默认选择第一个 + } + viewBinding.caseHandlePersonView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); + } + } + }); + + viewBinding.casePersonLayout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { if (personBeans.size() >= 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(context); sheetBuilder.setTitle("处置人员"); for (ProcessPersonBean.DataBean dataBean : personBeans) { sheetBuilder.addItem(dataBean.getName()); @@ -274,50 +276,71 @@ }).build().show(); } } - } else if (viewId == R.id.commonTipsLayout) { - new QMUIBottomSheet.BottomListSheetBuilder(this) - .setTitle("常见用语") - .addItem("请及时处理") - .addItem("调查后及时回复") - .setGravityCenter(true) - .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - viewBinding.commonTipsView.setText(tag); - viewBinding.commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); + }); - viewBinding.optionEditView.setText(tag); - viewBinding.commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); - } - }).build().show(); - } else if (viewId == R.id.submitButton) { - String optType = viewBinding.optTypeView.getText().toString(); - if (optType.equals("")) { - EasyToast.show(this, "还未选择操作类型"); - return; + viewBinding.commonTipsLayout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new QMUIBottomSheet.BottomListSheetBuilder(context) + .setTitle("常见用语") + .addItem("请及时处理") + .addItem("调查后及时回复") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + viewBinding.commonTipsView.setText(tag); + viewBinding.commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); + } + }).build().show(); } - if (optType.equals("返回处理")) { - //选择处理人员时,必选一个处置人员 - String handlePerson = viewBinding.caseHandlePersonView.getText().toString(); - if (handlePerson.equals("")) { - EasyToast.show(this, "当前状态必须指定处置员"); + }); + + viewBinding.submitButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + String optType = viewBinding.optTypeView.getText().toString(); + if (optType.equals("")) { + EasyToast.show(context, "还未选择操作类型"); return; } + if (optType.equals("返回处理")) { + //选择处理人员时,必选一个处置人员 + String handlePerson = viewBinding.caseHandlePersonView.getText().toString(); + if (handlePerson.equals("")) { + EasyToast.show(context, "当前状态必须指定处置员"); + return; + } + } + String optionInput = StringHelper.filterString(viewBinding.commonTipsView.getText().toString()); + if (TextUtils.isEmpty(optionInput)) { + EasyToast.show(context, "处理意见必须填写"); + return; + } + //只有选择返回处理的时候taskUserId才会不为空,否则用当前流程人员的id代替 + if (TextUtils.isEmpty(taskUserId)) { + taskUserId = data.getProcessPersonid(); + } + operateViewModel.dispatcherHandleCase(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, + taskUserId); } - String optionInput = StringHelper.filterString(viewBinding.optionEditView.getText().toString()); - if (TextUtils.isEmpty(optionInput)) { - EasyToast.show(this, "处理意见必须填写"); - return; + }); + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + OtherUtils.showLoadingDialog(context, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + OtherUtils.dismissLoadingDialog(); + finish(); + } else { + EasyToast.show(context, "处理失败,请重试"); + OtherUtils.dismissLoadingDialog(); + } } - //只有选择返回处理的时候taskUserId才会不为空,否则用当前流程人员的id代替 - if (TextUtils.isEmpty(taskUserId)) { - taskUserId = data.getProcessPersonid(); - } -// caseViewModel.dispatcherHandleCase(data.getProcessId(), id, -// String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, -// taskUserId); - } + }); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DeptHandleActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DeptHandleActivity.java index 694bbd5..ca49b3d 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/DeptHandleActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/DeptHandleActivity.java @@ -18,6 +18,7 @@ import com.casic.dcms.utils.LocaleConstant; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; +import com.pengxh.androidx.lite.utils.DeviceSizeUtil; import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil; import java.util.ArrayList; @@ -49,8 +50,9 @@ //绑定TabLayout viewBinding.tabLayout.setupWithViewPager(viewBinding.viewPager); LinearLayout linearLayout = (LinearLayout) viewBinding.tabLayout.getChildAt(0); - linearLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE); linearLayout.setDividerDrawable(ContextCompat.getDrawable(this, R.drawable.layout_divider_vertical)); + linearLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE); + linearLayout.setDividerPadding(DeviceSizeUtil.dp2px(this, 12.5f)); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DeptTodoDetailActivity.java index b8b9c59..9686049 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/DeptTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/DeptTodoDetailActivity.java @@ -17,9 +17,9 @@ import com.casic.dcms.mvvm.model.CaseDetailBean; import com.casic.dcms.mvvm.model.CaseNextNodeBean; import com.casic.dcms.mvvm.model.ProcessPersonBean; +import com.casic.dcms.mvvm.vm.CaseOperateViewModel; import com.casic.dcms.mvvm.vm.CaseViewModel; import com.casic.dcms.mvvm.vm.NodeViewModel; -import com.casic.dcms.mvvm.vm.PersonViewModel; import com.casic.dcms.utils.JzExoMedia; import com.casic.dcms.utils.OtherUtils; import com.casic.dcms.utils.StringHelper; @@ -40,7 +40,7 @@ private final Context context = this; private CaseViewModel caseViewModel; private NodeViewModel nodeViewModel; - private PersonViewModel personViewModel; + private CaseOperateViewModel operateViewModel; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private List personBeans; private String id; @@ -66,7 +66,7 @@ caseViewModel.obtainCaseDetail(id); nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); - personViewModel = new ViewModelProvider(this).get(PersonViewModel.class); + operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); } @Override @@ -216,60 +216,12 @@ CaseNextNodeBean.DataBean nodeBean = nodeDataBeans.get(position); changeState = String.valueOf(nodeBean.getNextState()); operationKey = nodeBean.getOperationKey(); - - if (tag.equals("返回处理") || tag.equals("处置人员")) { - viewBinding.casePersonLayout.setVisibility(View.VISIBLE); - viewBinding.personLine.setVisibility(View.VISIBLE); - - //获取下级处置人员名单 - personViewModel.obtainSubordinatePerson(); - } else { - viewBinding.casePersonLayout.setVisibility(View.GONE); - viewBinding.personLine.setVisibility(View.GONE); - } } }).build().show(); } } }); - viewBinding.casePersonLayout.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (personBeans.size() >= 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(context); - sheetBuilder.setTitle("处置人员"); - for (ProcessPersonBean.DataBean dataBean : personBeans) { - sheetBuilder.addItem(dataBean.getName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - viewBinding.caseHandlePersonView.setText(tag); - - taskUserId = personBeans.get(position).getId(); - } - }).build().show(); - } - } - }); - personViewModel.processPersonModel.observe(this, new Observer() { - @Override - public void onChanged(ProcessPersonBean resultBean) { - if (resultBean.isSuccess()) { - personBeans = resultBean.getData(); - if (personBeans.size() == 0) { - viewBinding.caseHandlePersonView.setText("无处置人员"); - } else { - ProcessPersonBean.DataBean dataBean = personBeans.get(0); - taskUserId = dataBean.getId(); - viewBinding.caseHandlePersonView.setText(dataBean.getName());//默认选择第一个 - } - } - } - }); - viewBinding.commonTipsLayout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -283,8 +235,6 @@ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { dialog.dismiss(); viewBinding.commonTipsView.setText(tag); - - viewBinding.optionEditView.setText(tag); } }).build().show(); } @@ -298,21 +248,27 @@ EasyToast.show(context, "还未选择操作类型"); return; } - if (optType.equals("处置人员") || optType.equals("返回处理")) { - //选择处理人员时,必选一个处置人员 - String handlePerson = viewBinding.caseHandlePersonView.getText().toString(); - if (handlePerson.equals("")) { - EasyToast.show(context, "当前状态必须指定处置员"); - return; - } - } - String optionInput = StringHelper.filterString(viewBinding.optionEditView.getText().toString()); + String optionInput = StringHelper.filterString(viewBinding.commonTipsView.getText().toString()); if (TextUtils.isEmpty(optionInput)) { EasyToast.show(context, "处理意见必须填写"); return; } -// caseViewModel.dispatcherHandleCase(data.getProcessId(), id, -// String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, taskUserId); + operateViewModel.dispatcherHandleCase(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, taskUserId); + } + }); + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + OtherUtils.showLoadingDialog(context, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + OtherUtils.dismissLoadingDialog(); + finish(); + } else { + EasyToast.show(context, "处理失败,请重试"); + OtherUtils.dismissLoadingDialog(); + } } }); } diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseHandledFragment.java index 0a65c11..7b65a54 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseHandledFragment.java @@ -29,7 +29,7 @@ private WeakReferenceHandler weakReferenceHandler; private DeptHandleViewModel handleViewModel; private DeptTodoOrHandledAdapter adapter; - private List dataBeans = new ArrayList<>(); + private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -78,7 +78,7 @@ @Override public void onChanged(DeptCaseBean resultBean) { if (resultBean.isSuccess()) { - List dataRows = resultBean.getData().getRows(); + List dataRows = resultBean.getData().getRows(); if (isRefresh) { dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 dataBeans = dataRows; diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseProcessFragment.java b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseProcessFragment.java index 8d780d7..a7948e0 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseProcessFragment.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseProcessFragment.java @@ -30,7 +30,7 @@ private WeakReferenceHandler weakReferenceHandler; private DeptHandleViewModel handleViewModel; private DeptTodoOrHandledAdapter adapter; - private List dataBeans = new ArrayList<>(); + private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -79,7 +79,7 @@ @Override public void onChanged(DeptCaseBean resultBean) { if (resultBean.isSuccess()) { - List dataRows = resultBean.getData().getRows(); + List dataRows = resultBean.getData().getRows(); if (isRefresh) { dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 dataBeans = dataRows; diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseTodoFragment.java b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseTodoFragment.java index a807209..e4c8eaf 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseTodoFragment.java @@ -30,7 +30,7 @@ private WeakReferenceHandler weakReferenceHandler; private DeptHandleViewModel handleViewModel; private DeptTodoOrHandledAdapter adapter; - private List dataBeans = new ArrayList<>(); + private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -79,7 +79,7 @@ @Override public void onChanged(DeptCaseBean resultBean) { if (resultBean.getCode() == 200) { - List dataRows = resultBean.getData().getRows(); + List dataRows = resultBean.getData().getRows(); if (isRefresh) { dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 dataBeans = dataRows; diff --git a/app/src/main/java/com/casic/dcms/mvvm/vm/CaseOperateViewModel.java b/app/src/main/java/com/casic/dcms/mvvm/vm/CaseOperateViewModel.java index 7969714..dbccfee 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/vm/CaseOperateViewModel.java +++ b/app/src/main/java/com/casic/dcms/mvvm/vm/CaseOperateViewModel.java @@ -258,16 +258,17 @@ } public void dispatcherHandleCase(String processId, String bizId, String currState, String changeState, String remarks, String operationKey, String taskUserId) { + loadState.setValue(LoadState.Loading); Observable observable = RetrofitServiceManager.getDispatcherHandleCaseResult(processId, bizId, currState, changeState, remarks, operationKey, taskUserId); ObserverSubscriber.addSubscribe(observable, new OnObserverCallback() { @Override public void onCompleted() { - + loadState.setValue(LoadState.Success); } @Override public void onError(Throwable e) { - + loadState.setValue(LoadState.Fail); } @Override @@ -279,6 +280,8 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); dispatcherHandleActionModel.setValue(resultBean); + } else { + loadState.setValue(LoadState.Fail); } } catch (IOException e) { e.printStackTrace(); diff --git a/.idea/misc.xml b/.idea/misc.xml index 552f6c3..d6ee830 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -35,6 +35,10 @@ + + + + @@ -48,6 +52,7 @@ + diff --git a/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java b/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java index 6c4a6a6..1fafc8b 100644 --- a/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java @@ -11,35 +11,35 @@ import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; +import com.bumptech.glide.Glide; import com.casic.dcms.R; import com.casic.dcms.mvvm.model.DeptCaseBean; import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUIRadiusImageView; import java.util.List; -/** - * {@link PackageCaseListAdapter 不适用二级派遣员部门处置列表,因为该列表不光有三包案卷,还有普通案卷} - */ public class DeptTodoOrHandledAdapter extends RecyclerView.Adapter { - private final List dataBeans; + private final Context context; + private final List dataBeans; private final LayoutInflater layoutInflater; private PunishTypeAdapter adapter; - public DeptTodoOrHandledAdapter(Context context, List dataRows) { + public DeptTodoOrHandledAdapter(Context context, List dataRows) { + this.context = context; this.dataBeans = dataRows; layoutInflater = LayoutInflater.from(context); } @NonNull @Override - public DeptTodoOrHandledAdapter.ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - View view = layoutInflater.inflate(R.layout.item_case_rv, parent, false); - return new ItemViewHolder(view); + 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 DeptTodoOrHandledAdapter.ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { + public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { holder.bindView(dataBeans.get(position)); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @@ -56,28 +56,30 @@ return dataBeans.size(); } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { -// private final TextView leftTextView; + private final QMUIRadiusImageView caseImageView; private final TextView caseTitleView; private final TextView casePlaceView; private final TextView caseTimeView; ItemViewHolder(@NonNull View itemView) { super(itemView); -// leftTextView = itemView.findViewById(R.id.leftTextView); + caseImageView = itemView.findViewById(R.id.caseImageView); caseTitleView = itemView.findViewById(R.id.caseTitleView); casePlaceView = itemView.findViewById(R.id.casePlaceView); caseTimeView = itemView.findViewById(R.id.caseTimeView); } - @SuppressLint("SetTextI18n") - void bindView(DeptCaseBean.DataBean.RowsBean rowsBean) { - String eorcName = rowsBean.getEorcName(); - if (TextUtils.isEmpty(eorcName)) { - eorcName = "未知"; + void bindView(DeptCaseBean.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); + } } -// 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/mvvm/model/DeptCaseBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/DeptCaseBean.java index 1a4ac47..79163d8 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/model/DeptCaseBean.java +++ b/app/src/main/java/com/casic/dcms/mvvm/model/DeptCaseBean.java @@ -8,7 +8,7 @@ public class DeptCaseBean { private int code; - private DataBean data; + private DataDTO data; private String message; private boolean success; @@ -20,11 +20,11 @@ this.code = code; } - public DataBean getData() { + public DataDTO getData() { return data; } - public void setData(DataBean data) { + public void setData(DataDTO data) { this.data = data; } @@ -44,10 +44,17 @@ this.success = success; } - public static class DataBean { - + public static class DataDTO { + private List rows; private int total; - private List rows; + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } public int getTotal() { return total; @@ -57,26 +64,14 @@ this.total = total; } - public List getRows() { - return rows; - } - - public void setRows(List rows) { - this.rows = rows; - } - - public static class RowsBean { - + public static class RowsDTO { private int isPostpone; - private int preState; private String description; private int source; private String eorcName; private String casetypeDetailName; private String remainingTime; private String casetypeName; - private String currUserId; - private String currUserName; private String processId; private int caseState; private String id; @@ -84,10 +79,10 @@ private String fieldintro; private String lat; private String caseStateName; - private String preOperator; private String lng; private String isOvertime; private String currRoleName; + private String fileIdVerify; private String casetypeDetailCode; private String onedeptid; private String eorc; @@ -95,8 +90,14 @@ private String caseid; private String casetypeCode; private String nodeLimittime; + private String taskName; private String sourceName; + private String fileIdProcess; private String reportTime; + private String currUserId; + private String currUserName; + private String currDeptId; + private String currDeptName; private String onedeptName; public int getIsPostpone() { @@ -107,14 +108,6 @@ this.isPostpone = isPostpone; } - public int getPreState() { - return preState; - } - - public void setPreState(int preState) { - this.preState = preState; - } - public String getDescription() { return description; } @@ -163,22 +156,6 @@ this.casetypeName = casetypeName; } - public String getCurrUserId() { - return currUserId; - } - - public void setCurrUserId(String currUserId) { - this.currUserId = currUserId; - } - - public String getCurrUserName() { - return currUserName; - } - - public void setCurrUserName(String currUserName) { - this.currUserName = currUserName; - } - public String getProcessId() { return processId; } @@ -235,14 +212,6 @@ this.caseStateName = caseStateName; } - public String getPreOperator() { - return preOperator; - } - - public void setPreOperator(String preOperator) { - this.preOperator = preOperator; - } - public String getLng() { return lng; } @@ -267,6 +236,14 @@ this.currRoleName = currRoleName; } + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + public String getCasetypeDetailCode() { return casetypeDetailCode; } @@ -323,6 +300,14 @@ this.nodeLimittime = nodeLimittime; } + public String getTaskName() { + return taskName; + } + + public void setTaskName(String taskName) { + this.taskName = taskName; + } + public String getSourceName() { return sourceName; } @@ -331,6 +316,14 @@ this.sourceName = sourceName; } + public String getFileIdProcess() { + return fileIdProcess; + } + + public void setFileIdProcess(String fileIdProcess) { + this.fileIdProcess = fileIdProcess; + } + public String getReportTime() { return reportTime; } @@ -339,6 +332,38 @@ this.reportTime = reportTime; } + public String getCurrUserId() { + return currUserId; + } + + public void setCurrUserId(String currUserId) { + this.currUserId = currUserId; + } + + public String getCurrUserName() { + return currUserName; + } + + public void setCurrUserName(String currUserName) { + this.currUserName = currUserName; + } + + public String getCurrDeptId() { + return currDeptId; + } + + public void setCurrDeptId(String currDeptId) { + this.currDeptId = currDeptId; + } + + public String getCurrDeptName() { + return currDeptName; + } + + public void setCurrDeptName(String currDeptName) { + this.currDeptName = currDeptName; + } + public String getOnedeptName() { return onedeptName; } diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java index de23222..9e72c93 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java @@ -15,6 +15,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.mvvm.model.CaseDetailBean; import com.casic.dcms.mvvm.model.CaseNextNodeBean; +import com.casic.dcms.mvvm.vm.CaseOperateViewModel; import com.casic.dcms.mvvm.vm.CaseViewModel; import com.casic.dcms.mvvm.vm.NodeViewModel; import com.casic.dcms.utils.JzExoMedia; @@ -40,6 +41,7 @@ private final Context context = this; private CaseViewModel caseViewModel; private NodeViewModel nodeViewModel; + private CaseOperateViewModel operateViewModel; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private List nodeDataBeans; private String id; @@ -62,6 +64,7 @@ caseViewModel.obtainCaseDetail(id); nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); + operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); } @Override @@ -230,8 +233,6 @@ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { dialog.dismiss(); viewBinding.commonTipsView.setText(tag); - - viewBinding.optionEditView.setText(tag); } }).build().show(); } @@ -245,14 +246,28 @@ EasyToast.show(context, "还未选择操作类型"); return; } - String optionInput = StringHelper.filterString(viewBinding.optionEditView.getText().toString()); + String optionInput = StringHelper.filterString(viewBinding.commonTipsView.getText().toString()); if (TextUtils.isEmpty(optionInput)) { EasyToast.show(context, "不同意/同意的意见必须填写"); return; } -// caseViewModel.dispatcherHandleCase(data.getProcessId(), id, -// String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, -// data.getProcessPersonid()); + operateViewModel.dispatcherHandleCase(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, + data.getProcessPersonid()); + } + }); + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + OtherUtils.showLoadingDialog(context, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + OtherUtils.dismissLoadingDialog(); + finish(); + } else { + EasyToast.show(context, "处理失败,请重试"); + OtherUtils.dismissLoadingDialog(); + } } }); } diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java index 31fc6a0..f23fc0b 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java @@ -16,6 +16,7 @@ import com.casic.dcms.mvvm.model.CaseDetailBean; import com.casic.dcms.mvvm.model.CaseNextNodeBean; import com.casic.dcms.mvvm.model.ProcessPersonBean; +import com.casic.dcms.mvvm.vm.CaseOperateViewModel; import com.casic.dcms.mvvm.vm.CaseViewModel; import com.casic.dcms.mvvm.vm.NodeViewModel; import com.casic.dcms.mvvm.vm.PersonViewModel; @@ -26,6 +27,7 @@ import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.ReadOnlyImageAdapter; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; +import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil; import com.pengxh.androidx.lite.vm.LoadState; import com.pengxh.androidx.lite.widget.EasyToast; @@ -36,13 +38,14 @@ import cn.jzvd.Jzvd; -public class DeptAuthorizeDetailActivity extends AndroidxBaseActivity implements View.OnClickListener { +public class DeptAuthorizeDetailActivity extends AndroidxBaseActivity { private final Context context = this; private CaseViewModel caseViewModel; private NodeViewModel nodeViewModel; - private List nodeDataBeans; private PersonViewModel personViewModel; + private CaseOperateViewModel operateViewModel; + private List nodeDataBeans; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private List personBeans; private String id; @@ -61,12 +64,13 @@ @Override public void initData() { - id = getIntent().getStringExtra("id"); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); personViewModel = new ViewModelProvider(this).get(PersonViewModel.class); + operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); } @Override @@ -192,39 +196,18 @@ } }); - personViewModel.processPersonModel.observe(this, new Observer() { + viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override - public void onChanged(ProcessPersonBean resultBean) { - if (resultBean.getCode() == 200) { - personBeans = resultBean.getData(); - if (personBeans.size() == 0) { - viewBinding.caseHandlePersonView.setText("无处置人员"); - } else { - ProcessPersonBean.DataBean dataBean = personBeans.get(0); - taskUserId = dataBean.getId(); - viewBinding.caseHandlePersonView.setText(dataBean.getName());//默认选择第一个 - } - viewBinding.caseHandlePersonView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); - } + public void onClick(View v) { + OtherUtils.displayOnMap(context, data.getEorcName(), data.getLng(), data.getLat()); } }); - viewBinding.locationMapView.setOnClickListener(this); - viewBinding.caseOptTypeLayout.setOnClickListener(this); - viewBinding.casePersonLayout.setOnClickListener(this); - viewBinding.commonTipsLayout.setOnClickListener(this); - viewBinding.submitButton.setOnClickListener(this); - } - - @Override - public void onClick(View v) { - int viewId = v.getId(); - if (viewId == R.id.locationMapView) { - OtherUtils.displayOnMap(this, data.getEorcName(), data.getLng(), data.getLat()); - } else if (viewId == R.id.caseOptTypeLayout) { - if (nodeDataBeans != null) { + viewBinding.caseOptTypeLayout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { if (nodeDataBeans.size() >= 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(context); sheetBuilder.setTitle("操作类型"); for (CaseNextNodeBean.DataBean dataBean : nodeDataBeans) { sheetBuilder.addItem(dataBean.getNextOperation()); @@ -254,10 +237,29 @@ }).build().show(); } } - } else if (viewId == R.id.casePersonLayout) { - if (personBeans != null) { + }); + personViewModel.processPersonModel.observe(this, new Observer() { + @Override + public void onChanged(ProcessPersonBean resultBean) { + if (resultBean.getCode() == 200) { + personBeans = resultBean.getData(); + if (personBeans.size() == 0) { + viewBinding.caseHandlePersonView.setText("无处置人员"); + } else { + ProcessPersonBean.DataBean dataBean = personBeans.get(0); + taskUserId = dataBean.getId(); + viewBinding.caseHandlePersonView.setText(dataBean.getName());//默认选择第一个 + } + viewBinding.caseHandlePersonView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); + } + } + }); + + viewBinding.casePersonLayout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { if (personBeans.size() >= 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(context); sheetBuilder.setTitle("处置人员"); for (ProcessPersonBean.DataBean dataBean : personBeans) { sheetBuilder.addItem(dataBean.getName()); @@ -274,50 +276,71 @@ }).build().show(); } } - } else if (viewId == R.id.commonTipsLayout) { - new QMUIBottomSheet.BottomListSheetBuilder(this) - .setTitle("常见用语") - .addItem("请及时处理") - .addItem("调查后及时回复") - .setGravityCenter(true) - .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - viewBinding.commonTipsView.setText(tag); - viewBinding.commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); + }); - viewBinding.optionEditView.setText(tag); - viewBinding.commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); - } - }).build().show(); - } else if (viewId == R.id.submitButton) { - String optType = viewBinding.optTypeView.getText().toString(); - if (optType.equals("")) { - EasyToast.show(this, "还未选择操作类型"); - return; + viewBinding.commonTipsLayout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new QMUIBottomSheet.BottomListSheetBuilder(context) + .setTitle("常见用语") + .addItem("请及时处理") + .addItem("调查后及时回复") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + viewBinding.commonTipsView.setText(tag); + viewBinding.commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); + } + }).build().show(); } - if (optType.equals("返回处理")) { - //选择处理人员时,必选一个处置人员 - String handlePerson = viewBinding.caseHandlePersonView.getText().toString(); - if (handlePerson.equals("")) { - EasyToast.show(this, "当前状态必须指定处置员"); + }); + + viewBinding.submitButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + String optType = viewBinding.optTypeView.getText().toString(); + if (optType.equals("")) { + EasyToast.show(context, "还未选择操作类型"); return; } + if (optType.equals("返回处理")) { + //选择处理人员时,必选一个处置人员 + String handlePerson = viewBinding.caseHandlePersonView.getText().toString(); + if (handlePerson.equals("")) { + EasyToast.show(context, "当前状态必须指定处置员"); + return; + } + } + String optionInput = StringHelper.filterString(viewBinding.commonTipsView.getText().toString()); + if (TextUtils.isEmpty(optionInput)) { + EasyToast.show(context, "处理意见必须填写"); + return; + } + //只有选择返回处理的时候taskUserId才会不为空,否则用当前流程人员的id代替 + if (TextUtils.isEmpty(taskUserId)) { + taskUserId = data.getProcessPersonid(); + } + operateViewModel.dispatcherHandleCase(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, + taskUserId); } - String optionInput = StringHelper.filterString(viewBinding.optionEditView.getText().toString()); - if (TextUtils.isEmpty(optionInput)) { - EasyToast.show(this, "处理意见必须填写"); - return; + }); + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + OtherUtils.showLoadingDialog(context, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + OtherUtils.dismissLoadingDialog(); + finish(); + } else { + EasyToast.show(context, "处理失败,请重试"); + OtherUtils.dismissLoadingDialog(); + } } - //只有选择返回处理的时候taskUserId才会不为空,否则用当前流程人员的id代替 - if (TextUtils.isEmpty(taskUserId)) { - taskUserId = data.getProcessPersonid(); - } -// caseViewModel.dispatcherHandleCase(data.getProcessId(), id, -// String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, -// taskUserId); - } + }); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DeptHandleActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DeptHandleActivity.java index 694bbd5..ca49b3d 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/DeptHandleActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/DeptHandleActivity.java @@ -18,6 +18,7 @@ import com.casic.dcms.utils.LocaleConstant; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; +import com.pengxh.androidx.lite.utils.DeviceSizeUtil; import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil; import java.util.ArrayList; @@ -49,8 +50,9 @@ //绑定TabLayout viewBinding.tabLayout.setupWithViewPager(viewBinding.viewPager); LinearLayout linearLayout = (LinearLayout) viewBinding.tabLayout.getChildAt(0); - linearLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE); linearLayout.setDividerDrawable(ContextCompat.getDrawable(this, R.drawable.layout_divider_vertical)); + linearLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE); + linearLayout.setDividerPadding(DeviceSizeUtil.dp2px(this, 12.5f)); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DeptTodoDetailActivity.java index b8b9c59..9686049 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/DeptTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/DeptTodoDetailActivity.java @@ -17,9 +17,9 @@ import com.casic.dcms.mvvm.model.CaseDetailBean; import com.casic.dcms.mvvm.model.CaseNextNodeBean; import com.casic.dcms.mvvm.model.ProcessPersonBean; +import com.casic.dcms.mvvm.vm.CaseOperateViewModel; import com.casic.dcms.mvvm.vm.CaseViewModel; import com.casic.dcms.mvvm.vm.NodeViewModel; -import com.casic.dcms.mvvm.vm.PersonViewModel; import com.casic.dcms.utils.JzExoMedia; import com.casic.dcms.utils.OtherUtils; import com.casic.dcms.utils.StringHelper; @@ -40,7 +40,7 @@ private final Context context = this; private CaseViewModel caseViewModel; private NodeViewModel nodeViewModel; - private PersonViewModel personViewModel; + private CaseOperateViewModel operateViewModel; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private List personBeans; private String id; @@ -66,7 +66,7 @@ caseViewModel.obtainCaseDetail(id); nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); - personViewModel = new ViewModelProvider(this).get(PersonViewModel.class); + operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); } @Override @@ -216,60 +216,12 @@ CaseNextNodeBean.DataBean nodeBean = nodeDataBeans.get(position); changeState = String.valueOf(nodeBean.getNextState()); operationKey = nodeBean.getOperationKey(); - - if (tag.equals("返回处理") || tag.equals("处置人员")) { - viewBinding.casePersonLayout.setVisibility(View.VISIBLE); - viewBinding.personLine.setVisibility(View.VISIBLE); - - //获取下级处置人员名单 - personViewModel.obtainSubordinatePerson(); - } else { - viewBinding.casePersonLayout.setVisibility(View.GONE); - viewBinding.personLine.setVisibility(View.GONE); - } } }).build().show(); } } }); - viewBinding.casePersonLayout.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (personBeans.size() >= 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(context); - sheetBuilder.setTitle("处置人员"); - for (ProcessPersonBean.DataBean dataBean : personBeans) { - sheetBuilder.addItem(dataBean.getName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - viewBinding.caseHandlePersonView.setText(tag); - - taskUserId = personBeans.get(position).getId(); - } - }).build().show(); - } - } - }); - personViewModel.processPersonModel.observe(this, new Observer() { - @Override - public void onChanged(ProcessPersonBean resultBean) { - if (resultBean.isSuccess()) { - personBeans = resultBean.getData(); - if (personBeans.size() == 0) { - viewBinding.caseHandlePersonView.setText("无处置人员"); - } else { - ProcessPersonBean.DataBean dataBean = personBeans.get(0); - taskUserId = dataBean.getId(); - viewBinding.caseHandlePersonView.setText(dataBean.getName());//默认选择第一个 - } - } - } - }); - viewBinding.commonTipsLayout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -283,8 +235,6 @@ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { dialog.dismiss(); viewBinding.commonTipsView.setText(tag); - - viewBinding.optionEditView.setText(tag); } }).build().show(); } @@ -298,21 +248,27 @@ EasyToast.show(context, "还未选择操作类型"); return; } - if (optType.equals("处置人员") || optType.equals("返回处理")) { - //选择处理人员时,必选一个处置人员 - String handlePerson = viewBinding.caseHandlePersonView.getText().toString(); - if (handlePerson.equals("")) { - EasyToast.show(context, "当前状态必须指定处置员"); - return; - } - } - String optionInput = StringHelper.filterString(viewBinding.optionEditView.getText().toString()); + String optionInput = StringHelper.filterString(viewBinding.commonTipsView.getText().toString()); if (TextUtils.isEmpty(optionInput)) { EasyToast.show(context, "处理意见必须填写"); return; } -// caseViewModel.dispatcherHandleCase(data.getProcessId(), id, -// String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, taskUserId); + operateViewModel.dispatcherHandleCase(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, taskUserId); + } + }); + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + OtherUtils.showLoadingDialog(context, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + OtherUtils.dismissLoadingDialog(); + finish(); + } else { + EasyToast.show(context, "处理失败,请重试"); + OtherUtils.dismissLoadingDialog(); + } } }); } diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseHandledFragment.java index 0a65c11..7b65a54 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseHandledFragment.java @@ -29,7 +29,7 @@ private WeakReferenceHandler weakReferenceHandler; private DeptHandleViewModel handleViewModel; private DeptTodoOrHandledAdapter adapter; - private List dataBeans = new ArrayList<>(); + private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -78,7 +78,7 @@ @Override public void onChanged(DeptCaseBean resultBean) { if (resultBean.isSuccess()) { - List dataRows = resultBean.getData().getRows(); + List dataRows = resultBean.getData().getRows(); if (isRefresh) { dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 dataBeans = dataRows; diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseProcessFragment.java b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseProcessFragment.java index 8d780d7..a7948e0 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseProcessFragment.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseProcessFragment.java @@ -30,7 +30,7 @@ private WeakReferenceHandler weakReferenceHandler; private DeptHandleViewModel handleViewModel; private DeptTodoOrHandledAdapter adapter; - private List dataBeans = new ArrayList<>(); + private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -79,7 +79,7 @@ @Override public void onChanged(DeptCaseBean resultBean) { if (resultBean.isSuccess()) { - List dataRows = resultBean.getData().getRows(); + List dataRows = resultBean.getData().getRows(); if (isRefresh) { dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 dataBeans = dataRows; diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseTodoFragment.java b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseTodoFragment.java index a807209..e4c8eaf 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseTodoFragment.java @@ -30,7 +30,7 @@ private WeakReferenceHandler weakReferenceHandler; private DeptHandleViewModel handleViewModel; private DeptTodoOrHandledAdapter adapter; - private List dataBeans = new ArrayList<>(); + private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -79,7 +79,7 @@ @Override public void onChanged(DeptCaseBean resultBean) { if (resultBean.getCode() == 200) { - List dataRows = resultBean.getData().getRows(); + List dataRows = resultBean.getData().getRows(); if (isRefresh) { dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 dataBeans = dataRows; diff --git a/app/src/main/java/com/casic/dcms/mvvm/vm/CaseOperateViewModel.java b/app/src/main/java/com/casic/dcms/mvvm/vm/CaseOperateViewModel.java index 7969714..dbccfee 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/vm/CaseOperateViewModel.java +++ b/app/src/main/java/com/casic/dcms/mvvm/vm/CaseOperateViewModel.java @@ -258,16 +258,17 @@ } public void dispatcherHandleCase(String processId, String bizId, String currState, String changeState, String remarks, String operationKey, String taskUserId) { + loadState.setValue(LoadState.Loading); Observable observable = RetrofitServiceManager.getDispatcherHandleCaseResult(processId, bizId, currState, changeState, remarks, operationKey, taskUserId); ObserverSubscriber.addSubscribe(observable, new OnObserverCallback() { @Override public void onCompleted() { - + loadState.setValue(LoadState.Success); } @Override public void onError(Throwable e) { - + loadState.setValue(LoadState.Fail); } @Override @@ -279,6 +280,8 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); dispatcherHandleActionModel.setValue(resultBean); + } else { + loadState.setValue(LoadState.Fail); } } catch (IOException e) { e.printStackTrace(); diff --git a/app/src/main/res/layout/activity_dept_adjust.xml b/app/src/main/res/layout/activity_dept_adjust.xml index c3ec296..9b69187 100644 --- a/app/src/main/res/layout/activity_dept_adjust.xml +++ b/app/src/main/res/layout/activity_dept_adjust.xml @@ -228,29 +228,13 @@ - - - - - - - - - + android:text="处理意见" /> + + + + @@ -48,6 +52,7 @@ + diff --git a/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java b/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java index 6c4a6a6..1fafc8b 100644 --- a/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java @@ -11,35 +11,35 @@ import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; +import com.bumptech.glide.Glide; import com.casic.dcms.R; import com.casic.dcms.mvvm.model.DeptCaseBean; import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUIRadiusImageView; import java.util.List; -/** - * {@link PackageCaseListAdapter 不适用二级派遣员部门处置列表,因为该列表不光有三包案卷,还有普通案卷} - */ public class DeptTodoOrHandledAdapter extends RecyclerView.Adapter { - private final List dataBeans; + private final Context context; + private final List dataBeans; private final LayoutInflater layoutInflater; private PunishTypeAdapter adapter; - public DeptTodoOrHandledAdapter(Context context, List dataRows) { + public DeptTodoOrHandledAdapter(Context context, List dataRows) { + this.context = context; this.dataBeans = dataRows; layoutInflater = LayoutInflater.from(context); } @NonNull @Override - public DeptTodoOrHandledAdapter.ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - View view = layoutInflater.inflate(R.layout.item_case_rv, parent, false); - return new ItemViewHolder(view); + 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 DeptTodoOrHandledAdapter.ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { + public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { holder.bindView(dataBeans.get(position)); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @@ -56,28 +56,30 @@ return dataBeans.size(); } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { -// private final TextView leftTextView; + private final QMUIRadiusImageView caseImageView; private final TextView caseTitleView; private final TextView casePlaceView; private final TextView caseTimeView; ItemViewHolder(@NonNull View itemView) { super(itemView); -// leftTextView = itemView.findViewById(R.id.leftTextView); + caseImageView = itemView.findViewById(R.id.caseImageView); caseTitleView = itemView.findViewById(R.id.caseTitleView); casePlaceView = itemView.findViewById(R.id.casePlaceView); caseTimeView = itemView.findViewById(R.id.caseTimeView); } - @SuppressLint("SetTextI18n") - void bindView(DeptCaseBean.DataBean.RowsBean rowsBean) { - String eorcName = rowsBean.getEorcName(); - if (TextUtils.isEmpty(eorcName)) { - eorcName = "未知"; + void bindView(DeptCaseBean.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); + } } -// 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/mvvm/model/DeptCaseBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/DeptCaseBean.java index 1a4ac47..79163d8 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/model/DeptCaseBean.java +++ b/app/src/main/java/com/casic/dcms/mvvm/model/DeptCaseBean.java @@ -8,7 +8,7 @@ public class DeptCaseBean { private int code; - private DataBean data; + private DataDTO data; private String message; private boolean success; @@ -20,11 +20,11 @@ this.code = code; } - public DataBean getData() { + public DataDTO getData() { return data; } - public void setData(DataBean data) { + public void setData(DataDTO data) { this.data = data; } @@ -44,10 +44,17 @@ this.success = success; } - public static class DataBean { - + public static class DataDTO { + private List rows; private int total; - private List rows; + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } public int getTotal() { return total; @@ -57,26 +64,14 @@ this.total = total; } - public List getRows() { - return rows; - } - - public void setRows(List rows) { - this.rows = rows; - } - - public static class RowsBean { - + public static class RowsDTO { private int isPostpone; - private int preState; private String description; private int source; private String eorcName; private String casetypeDetailName; private String remainingTime; private String casetypeName; - private String currUserId; - private String currUserName; private String processId; private int caseState; private String id; @@ -84,10 +79,10 @@ private String fieldintro; private String lat; private String caseStateName; - private String preOperator; private String lng; private String isOvertime; private String currRoleName; + private String fileIdVerify; private String casetypeDetailCode; private String onedeptid; private String eorc; @@ -95,8 +90,14 @@ private String caseid; private String casetypeCode; private String nodeLimittime; + private String taskName; private String sourceName; + private String fileIdProcess; private String reportTime; + private String currUserId; + private String currUserName; + private String currDeptId; + private String currDeptName; private String onedeptName; public int getIsPostpone() { @@ -107,14 +108,6 @@ this.isPostpone = isPostpone; } - public int getPreState() { - return preState; - } - - public void setPreState(int preState) { - this.preState = preState; - } - public String getDescription() { return description; } @@ -163,22 +156,6 @@ this.casetypeName = casetypeName; } - public String getCurrUserId() { - return currUserId; - } - - public void setCurrUserId(String currUserId) { - this.currUserId = currUserId; - } - - public String getCurrUserName() { - return currUserName; - } - - public void setCurrUserName(String currUserName) { - this.currUserName = currUserName; - } - public String getProcessId() { return processId; } @@ -235,14 +212,6 @@ this.caseStateName = caseStateName; } - public String getPreOperator() { - return preOperator; - } - - public void setPreOperator(String preOperator) { - this.preOperator = preOperator; - } - public String getLng() { return lng; } @@ -267,6 +236,14 @@ this.currRoleName = currRoleName; } + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + public String getCasetypeDetailCode() { return casetypeDetailCode; } @@ -323,6 +300,14 @@ this.nodeLimittime = nodeLimittime; } + public String getTaskName() { + return taskName; + } + + public void setTaskName(String taskName) { + this.taskName = taskName; + } + public String getSourceName() { return sourceName; } @@ -331,6 +316,14 @@ this.sourceName = sourceName; } + public String getFileIdProcess() { + return fileIdProcess; + } + + public void setFileIdProcess(String fileIdProcess) { + this.fileIdProcess = fileIdProcess; + } + public String getReportTime() { return reportTime; } @@ -339,6 +332,38 @@ this.reportTime = reportTime; } + public String getCurrUserId() { + return currUserId; + } + + public void setCurrUserId(String currUserId) { + this.currUserId = currUserId; + } + + public String getCurrUserName() { + return currUserName; + } + + public void setCurrUserName(String currUserName) { + this.currUserName = currUserName; + } + + public String getCurrDeptId() { + return currDeptId; + } + + public void setCurrDeptId(String currDeptId) { + this.currDeptId = currDeptId; + } + + public String getCurrDeptName() { + return currDeptName; + } + + public void setCurrDeptName(String currDeptName) { + this.currDeptName = currDeptName; + } + public String getOnedeptName() { return onedeptName; } diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java index de23222..9e72c93 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java @@ -15,6 +15,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.mvvm.model.CaseDetailBean; import com.casic.dcms.mvvm.model.CaseNextNodeBean; +import com.casic.dcms.mvvm.vm.CaseOperateViewModel; import com.casic.dcms.mvvm.vm.CaseViewModel; import com.casic.dcms.mvvm.vm.NodeViewModel; import com.casic.dcms.utils.JzExoMedia; @@ -40,6 +41,7 @@ private final Context context = this; private CaseViewModel caseViewModel; private NodeViewModel nodeViewModel; + private CaseOperateViewModel operateViewModel; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private List nodeDataBeans; private String id; @@ -62,6 +64,7 @@ caseViewModel.obtainCaseDetail(id); nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); + operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); } @Override @@ -230,8 +233,6 @@ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { dialog.dismiss(); viewBinding.commonTipsView.setText(tag); - - viewBinding.optionEditView.setText(tag); } }).build().show(); } @@ -245,14 +246,28 @@ EasyToast.show(context, "还未选择操作类型"); return; } - String optionInput = StringHelper.filterString(viewBinding.optionEditView.getText().toString()); + String optionInput = StringHelper.filterString(viewBinding.commonTipsView.getText().toString()); if (TextUtils.isEmpty(optionInput)) { EasyToast.show(context, "不同意/同意的意见必须填写"); return; } -// caseViewModel.dispatcherHandleCase(data.getProcessId(), id, -// String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, -// data.getProcessPersonid()); + operateViewModel.dispatcherHandleCase(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, + data.getProcessPersonid()); + } + }); + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + OtherUtils.showLoadingDialog(context, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + OtherUtils.dismissLoadingDialog(); + finish(); + } else { + EasyToast.show(context, "处理失败,请重试"); + OtherUtils.dismissLoadingDialog(); + } } }); } diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java index 31fc6a0..f23fc0b 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java @@ -16,6 +16,7 @@ import com.casic.dcms.mvvm.model.CaseDetailBean; import com.casic.dcms.mvvm.model.CaseNextNodeBean; import com.casic.dcms.mvvm.model.ProcessPersonBean; +import com.casic.dcms.mvvm.vm.CaseOperateViewModel; import com.casic.dcms.mvvm.vm.CaseViewModel; import com.casic.dcms.mvvm.vm.NodeViewModel; import com.casic.dcms.mvvm.vm.PersonViewModel; @@ -26,6 +27,7 @@ import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.ReadOnlyImageAdapter; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; +import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil; import com.pengxh.androidx.lite.vm.LoadState; import com.pengxh.androidx.lite.widget.EasyToast; @@ -36,13 +38,14 @@ import cn.jzvd.Jzvd; -public class DeptAuthorizeDetailActivity extends AndroidxBaseActivity implements View.OnClickListener { +public class DeptAuthorizeDetailActivity extends AndroidxBaseActivity { private final Context context = this; private CaseViewModel caseViewModel; private NodeViewModel nodeViewModel; - private List nodeDataBeans; private PersonViewModel personViewModel; + private CaseOperateViewModel operateViewModel; + private List nodeDataBeans; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private List personBeans; private String id; @@ -61,12 +64,13 @@ @Override public void initData() { - id = getIntent().getStringExtra("id"); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); personViewModel = new ViewModelProvider(this).get(PersonViewModel.class); + operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); } @Override @@ -192,39 +196,18 @@ } }); - personViewModel.processPersonModel.observe(this, new Observer() { + viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override - public void onChanged(ProcessPersonBean resultBean) { - if (resultBean.getCode() == 200) { - personBeans = resultBean.getData(); - if (personBeans.size() == 0) { - viewBinding.caseHandlePersonView.setText("无处置人员"); - } else { - ProcessPersonBean.DataBean dataBean = personBeans.get(0); - taskUserId = dataBean.getId(); - viewBinding.caseHandlePersonView.setText(dataBean.getName());//默认选择第一个 - } - viewBinding.caseHandlePersonView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); - } + public void onClick(View v) { + OtherUtils.displayOnMap(context, data.getEorcName(), data.getLng(), data.getLat()); } }); - viewBinding.locationMapView.setOnClickListener(this); - viewBinding.caseOptTypeLayout.setOnClickListener(this); - viewBinding.casePersonLayout.setOnClickListener(this); - viewBinding.commonTipsLayout.setOnClickListener(this); - viewBinding.submitButton.setOnClickListener(this); - } - - @Override - public void onClick(View v) { - int viewId = v.getId(); - if (viewId == R.id.locationMapView) { - OtherUtils.displayOnMap(this, data.getEorcName(), data.getLng(), data.getLat()); - } else if (viewId == R.id.caseOptTypeLayout) { - if (nodeDataBeans != null) { + viewBinding.caseOptTypeLayout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { if (nodeDataBeans.size() >= 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(context); sheetBuilder.setTitle("操作类型"); for (CaseNextNodeBean.DataBean dataBean : nodeDataBeans) { sheetBuilder.addItem(dataBean.getNextOperation()); @@ -254,10 +237,29 @@ }).build().show(); } } - } else if (viewId == R.id.casePersonLayout) { - if (personBeans != null) { + }); + personViewModel.processPersonModel.observe(this, new Observer() { + @Override + public void onChanged(ProcessPersonBean resultBean) { + if (resultBean.getCode() == 200) { + personBeans = resultBean.getData(); + if (personBeans.size() == 0) { + viewBinding.caseHandlePersonView.setText("无处置人员"); + } else { + ProcessPersonBean.DataBean dataBean = personBeans.get(0); + taskUserId = dataBean.getId(); + viewBinding.caseHandlePersonView.setText(dataBean.getName());//默认选择第一个 + } + viewBinding.caseHandlePersonView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); + } + } + }); + + viewBinding.casePersonLayout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { if (personBeans.size() >= 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(context); sheetBuilder.setTitle("处置人员"); for (ProcessPersonBean.DataBean dataBean : personBeans) { sheetBuilder.addItem(dataBean.getName()); @@ -274,50 +276,71 @@ }).build().show(); } } - } else if (viewId == R.id.commonTipsLayout) { - new QMUIBottomSheet.BottomListSheetBuilder(this) - .setTitle("常见用语") - .addItem("请及时处理") - .addItem("调查后及时回复") - .setGravityCenter(true) - .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - viewBinding.commonTipsView.setText(tag); - viewBinding.commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); + }); - viewBinding.optionEditView.setText(tag); - viewBinding.commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); - } - }).build().show(); - } else if (viewId == R.id.submitButton) { - String optType = viewBinding.optTypeView.getText().toString(); - if (optType.equals("")) { - EasyToast.show(this, "还未选择操作类型"); - return; + viewBinding.commonTipsLayout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new QMUIBottomSheet.BottomListSheetBuilder(context) + .setTitle("常见用语") + .addItem("请及时处理") + .addItem("调查后及时回复") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + viewBinding.commonTipsView.setText(tag); + viewBinding.commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); + } + }).build().show(); } - if (optType.equals("返回处理")) { - //选择处理人员时,必选一个处置人员 - String handlePerson = viewBinding.caseHandlePersonView.getText().toString(); - if (handlePerson.equals("")) { - EasyToast.show(this, "当前状态必须指定处置员"); + }); + + viewBinding.submitButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + String optType = viewBinding.optTypeView.getText().toString(); + if (optType.equals("")) { + EasyToast.show(context, "还未选择操作类型"); return; } + if (optType.equals("返回处理")) { + //选择处理人员时,必选一个处置人员 + String handlePerson = viewBinding.caseHandlePersonView.getText().toString(); + if (handlePerson.equals("")) { + EasyToast.show(context, "当前状态必须指定处置员"); + return; + } + } + String optionInput = StringHelper.filterString(viewBinding.commonTipsView.getText().toString()); + if (TextUtils.isEmpty(optionInput)) { + EasyToast.show(context, "处理意见必须填写"); + return; + } + //只有选择返回处理的时候taskUserId才会不为空,否则用当前流程人员的id代替 + if (TextUtils.isEmpty(taskUserId)) { + taskUserId = data.getProcessPersonid(); + } + operateViewModel.dispatcherHandleCase(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, + taskUserId); } - String optionInput = StringHelper.filterString(viewBinding.optionEditView.getText().toString()); - if (TextUtils.isEmpty(optionInput)) { - EasyToast.show(this, "处理意见必须填写"); - return; + }); + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + OtherUtils.showLoadingDialog(context, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + OtherUtils.dismissLoadingDialog(); + finish(); + } else { + EasyToast.show(context, "处理失败,请重试"); + OtherUtils.dismissLoadingDialog(); + } } - //只有选择返回处理的时候taskUserId才会不为空,否则用当前流程人员的id代替 - if (TextUtils.isEmpty(taskUserId)) { - taskUserId = data.getProcessPersonid(); - } -// caseViewModel.dispatcherHandleCase(data.getProcessId(), id, -// String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, -// taskUserId); - } + }); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DeptHandleActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DeptHandleActivity.java index 694bbd5..ca49b3d 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/DeptHandleActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/DeptHandleActivity.java @@ -18,6 +18,7 @@ import com.casic.dcms.utils.LocaleConstant; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; +import com.pengxh.androidx.lite.utils.DeviceSizeUtil; import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil; import java.util.ArrayList; @@ -49,8 +50,9 @@ //绑定TabLayout viewBinding.tabLayout.setupWithViewPager(viewBinding.viewPager); LinearLayout linearLayout = (LinearLayout) viewBinding.tabLayout.getChildAt(0); - linearLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE); linearLayout.setDividerDrawable(ContextCompat.getDrawable(this, R.drawable.layout_divider_vertical)); + linearLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE); + linearLayout.setDividerPadding(DeviceSizeUtil.dp2px(this, 12.5f)); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DeptTodoDetailActivity.java index b8b9c59..9686049 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/DeptTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/DeptTodoDetailActivity.java @@ -17,9 +17,9 @@ import com.casic.dcms.mvvm.model.CaseDetailBean; import com.casic.dcms.mvvm.model.CaseNextNodeBean; import com.casic.dcms.mvvm.model.ProcessPersonBean; +import com.casic.dcms.mvvm.vm.CaseOperateViewModel; import com.casic.dcms.mvvm.vm.CaseViewModel; import com.casic.dcms.mvvm.vm.NodeViewModel; -import com.casic.dcms.mvvm.vm.PersonViewModel; import com.casic.dcms.utils.JzExoMedia; import com.casic.dcms.utils.OtherUtils; import com.casic.dcms.utils.StringHelper; @@ -40,7 +40,7 @@ private final Context context = this; private CaseViewModel caseViewModel; private NodeViewModel nodeViewModel; - private PersonViewModel personViewModel; + private CaseOperateViewModel operateViewModel; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private List personBeans; private String id; @@ -66,7 +66,7 @@ caseViewModel.obtainCaseDetail(id); nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); - personViewModel = new ViewModelProvider(this).get(PersonViewModel.class); + operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); } @Override @@ -216,60 +216,12 @@ CaseNextNodeBean.DataBean nodeBean = nodeDataBeans.get(position); changeState = String.valueOf(nodeBean.getNextState()); operationKey = nodeBean.getOperationKey(); - - if (tag.equals("返回处理") || tag.equals("处置人员")) { - viewBinding.casePersonLayout.setVisibility(View.VISIBLE); - viewBinding.personLine.setVisibility(View.VISIBLE); - - //获取下级处置人员名单 - personViewModel.obtainSubordinatePerson(); - } else { - viewBinding.casePersonLayout.setVisibility(View.GONE); - viewBinding.personLine.setVisibility(View.GONE); - } } }).build().show(); } } }); - viewBinding.casePersonLayout.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (personBeans.size() >= 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(context); - sheetBuilder.setTitle("处置人员"); - for (ProcessPersonBean.DataBean dataBean : personBeans) { - sheetBuilder.addItem(dataBean.getName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - viewBinding.caseHandlePersonView.setText(tag); - - taskUserId = personBeans.get(position).getId(); - } - }).build().show(); - } - } - }); - personViewModel.processPersonModel.observe(this, new Observer() { - @Override - public void onChanged(ProcessPersonBean resultBean) { - if (resultBean.isSuccess()) { - personBeans = resultBean.getData(); - if (personBeans.size() == 0) { - viewBinding.caseHandlePersonView.setText("无处置人员"); - } else { - ProcessPersonBean.DataBean dataBean = personBeans.get(0); - taskUserId = dataBean.getId(); - viewBinding.caseHandlePersonView.setText(dataBean.getName());//默认选择第一个 - } - } - } - }); - viewBinding.commonTipsLayout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -283,8 +235,6 @@ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { dialog.dismiss(); viewBinding.commonTipsView.setText(tag); - - viewBinding.optionEditView.setText(tag); } }).build().show(); } @@ -298,21 +248,27 @@ EasyToast.show(context, "还未选择操作类型"); return; } - if (optType.equals("处置人员") || optType.equals("返回处理")) { - //选择处理人员时,必选一个处置人员 - String handlePerson = viewBinding.caseHandlePersonView.getText().toString(); - if (handlePerson.equals("")) { - EasyToast.show(context, "当前状态必须指定处置员"); - return; - } - } - String optionInput = StringHelper.filterString(viewBinding.optionEditView.getText().toString()); + String optionInput = StringHelper.filterString(viewBinding.commonTipsView.getText().toString()); if (TextUtils.isEmpty(optionInput)) { EasyToast.show(context, "处理意见必须填写"); return; } -// caseViewModel.dispatcherHandleCase(data.getProcessId(), id, -// String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, taskUserId); + operateViewModel.dispatcherHandleCase(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, taskUserId); + } + }); + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + OtherUtils.showLoadingDialog(context, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + OtherUtils.dismissLoadingDialog(); + finish(); + } else { + EasyToast.show(context, "处理失败,请重试"); + OtherUtils.dismissLoadingDialog(); + } } }); } diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseHandledFragment.java index 0a65c11..7b65a54 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseHandledFragment.java @@ -29,7 +29,7 @@ private WeakReferenceHandler weakReferenceHandler; private DeptHandleViewModel handleViewModel; private DeptTodoOrHandledAdapter adapter; - private List dataBeans = new ArrayList<>(); + private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -78,7 +78,7 @@ @Override public void onChanged(DeptCaseBean resultBean) { if (resultBean.isSuccess()) { - List dataRows = resultBean.getData().getRows(); + List dataRows = resultBean.getData().getRows(); if (isRefresh) { dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 dataBeans = dataRows; diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseProcessFragment.java b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseProcessFragment.java index 8d780d7..a7948e0 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseProcessFragment.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseProcessFragment.java @@ -30,7 +30,7 @@ private WeakReferenceHandler weakReferenceHandler; private DeptHandleViewModel handleViewModel; private DeptTodoOrHandledAdapter adapter; - private List dataBeans = new ArrayList<>(); + private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -79,7 +79,7 @@ @Override public void onChanged(DeptCaseBean resultBean) { if (resultBean.isSuccess()) { - List dataRows = resultBean.getData().getRows(); + List dataRows = resultBean.getData().getRows(); if (isRefresh) { dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 dataBeans = dataRows; diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseTodoFragment.java b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseTodoFragment.java index a807209..e4c8eaf 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseTodoFragment.java @@ -30,7 +30,7 @@ private WeakReferenceHandler weakReferenceHandler; private DeptHandleViewModel handleViewModel; private DeptTodoOrHandledAdapter adapter; - private List dataBeans = new ArrayList<>(); + private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -79,7 +79,7 @@ @Override public void onChanged(DeptCaseBean resultBean) { if (resultBean.getCode() == 200) { - List dataRows = resultBean.getData().getRows(); + List dataRows = resultBean.getData().getRows(); if (isRefresh) { dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 dataBeans = dataRows; diff --git a/app/src/main/java/com/casic/dcms/mvvm/vm/CaseOperateViewModel.java b/app/src/main/java/com/casic/dcms/mvvm/vm/CaseOperateViewModel.java index 7969714..dbccfee 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/vm/CaseOperateViewModel.java +++ b/app/src/main/java/com/casic/dcms/mvvm/vm/CaseOperateViewModel.java @@ -258,16 +258,17 @@ } public void dispatcherHandleCase(String processId, String bizId, String currState, String changeState, String remarks, String operationKey, String taskUserId) { + loadState.setValue(LoadState.Loading); Observable observable = RetrofitServiceManager.getDispatcherHandleCaseResult(processId, bizId, currState, changeState, remarks, operationKey, taskUserId); ObserverSubscriber.addSubscribe(observable, new OnObserverCallback() { @Override public void onCompleted() { - + loadState.setValue(LoadState.Success); } @Override public void onError(Throwable e) { - + loadState.setValue(LoadState.Fail); } @Override @@ -279,6 +280,8 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); dispatcherHandleActionModel.setValue(resultBean); + } else { + loadState.setValue(LoadState.Fail); } } catch (IOException e) { e.printStackTrace(); diff --git a/app/src/main/res/layout/activity_dept_adjust.xml b/app/src/main/res/layout/activity_dept_adjust.xml index c3ec296..9b69187 100644 --- a/app/src/main/res/layout/activity_dept_adjust.xml +++ b/app/src/main/res/layout/activity_dept_adjust.xml @@ -228,29 +228,13 @@ - - - - - - - - - + android:text="处理意见" /> - - - - - - - - - + android:text="处理意见" /> + + + + @@ -48,6 +52,7 @@ + diff --git a/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java b/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java index 6c4a6a6..1fafc8b 100644 --- a/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java @@ -11,35 +11,35 @@ import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; +import com.bumptech.glide.Glide; import com.casic.dcms.R; import com.casic.dcms.mvvm.model.DeptCaseBean; import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUIRadiusImageView; import java.util.List; -/** - * {@link PackageCaseListAdapter 不适用二级派遣员部门处置列表,因为该列表不光有三包案卷,还有普通案卷} - */ public class DeptTodoOrHandledAdapter extends RecyclerView.Adapter { - private final List dataBeans; + private final Context context; + private final List dataBeans; private final LayoutInflater layoutInflater; private PunishTypeAdapter adapter; - public DeptTodoOrHandledAdapter(Context context, List dataRows) { + public DeptTodoOrHandledAdapter(Context context, List dataRows) { + this.context = context; this.dataBeans = dataRows; layoutInflater = LayoutInflater.from(context); } @NonNull @Override - public DeptTodoOrHandledAdapter.ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - View view = layoutInflater.inflate(R.layout.item_case_rv, parent, false); - return new ItemViewHolder(view); + 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 DeptTodoOrHandledAdapter.ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { + public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { holder.bindView(dataBeans.get(position)); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @@ -56,28 +56,30 @@ return dataBeans.size(); } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { -// private final TextView leftTextView; + private final QMUIRadiusImageView caseImageView; private final TextView caseTitleView; private final TextView casePlaceView; private final TextView caseTimeView; ItemViewHolder(@NonNull View itemView) { super(itemView); -// leftTextView = itemView.findViewById(R.id.leftTextView); + caseImageView = itemView.findViewById(R.id.caseImageView); caseTitleView = itemView.findViewById(R.id.caseTitleView); casePlaceView = itemView.findViewById(R.id.casePlaceView); caseTimeView = itemView.findViewById(R.id.caseTimeView); } - @SuppressLint("SetTextI18n") - void bindView(DeptCaseBean.DataBean.RowsBean rowsBean) { - String eorcName = rowsBean.getEorcName(); - if (TextUtils.isEmpty(eorcName)) { - eorcName = "未知"; + void bindView(DeptCaseBean.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); + } } -// 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/mvvm/model/DeptCaseBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/DeptCaseBean.java index 1a4ac47..79163d8 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/model/DeptCaseBean.java +++ b/app/src/main/java/com/casic/dcms/mvvm/model/DeptCaseBean.java @@ -8,7 +8,7 @@ public class DeptCaseBean { private int code; - private DataBean data; + private DataDTO data; private String message; private boolean success; @@ -20,11 +20,11 @@ this.code = code; } - public DataBean getData() { + public DataDTO getData() { return data; } - public void setData(DataBean data) { + public void setData(DataDTO data) { this.data = data; } @@ -44,10 +44,17 @@ this.success = success; } - public static class DataBean { - + public static class DataDTO { + private List rows; private int total; - private List rows; + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } public int getTotal() { return total; @@ -57,26 +64,14 @@ this.total = total; } - public List getRows() { - return rows; - } - - public void setRows(List rows) { - this.rows = rows; - } - - public static class RowsBean { - + public static class RowsDTO { private int isPostpone; - private int preState; private String description; private int source; private String eorcName; private String casetypeDetailName; private String remainingTime; private String casetypeName; - private String currUserId; - private String currUserName; private String processId; private int caseState; private String id; @@ -84,10 +79,10 @@ private String fieldintro; private String lat; private String caseStateName; - private String preOperator; private String lng; private String isOvertime; private String currRoleName; + private String fileIdVerify; private String casetypeDetailCode; private String onedeptid; private String eorc; @@ -95,8 +90,14 @@ private String caseid; private String casetypeCode; private String nodeLimittime; + private String taskName; private String sourceName; + private String fileIdProcess; private String reportTime; + private String currUserId; + private String currUserName; + private String currDeptId; + private String currDeptName; private String onedeptName; public int getIsPostpone() { @@ -107,14 +108,6 @@ this.isPostpone = isPostpone; } - public int getPreState() { - return preState; - } - - public void setPreState(int preState) { - this.preState = preState; - } - public String getDescription() { return description; } @@ -163,22 +156,6 @@ this.casetypeName = casetypeName; } - public String getCurrUserId() { - return currUserId; - } - - public void setCurrUserId(String currUserId) { - this.currUserId = currUserId; - } - - public String getCurrUserName() { - return currUserName; - } - - public void setCurrUserName(String currUserName) { - this.currUserName = currUserName; - } - public String getProcessId() { return processId; } @@ -235,14 +212,6 @@ this.caseStateName = caseStateName; } - public String getPreOperator() { - return preOperator; - } - - public void setPreOperator(String preOperator) { - this.preOperator = preOperator; - } - public String getLng() { return lng; } @@ -267,6 +236,14 @@ this.currRoleName = currRoleName; } + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + public String getCasetypeDetailCode() { return casetypeDetailCode; } @@ -323,6 +300,14 @@ this.nodeLimittime = nodeLimittime; } + public String getTaskName() { + return taskName; + } + + public void setTaskName(String taskName) { + this.taskName = taskName; + } + public String getSourceName() { return sourceName; } @@ -331,6 +316,14 @@ this.sourceName = sourceName; } + public String getFileIdProcess() { + return fileIdProcess; + } + + public void setFileIdProcess(String fileIdProcess) { + this.fileIdProcess = fileIdProcess; + } + public String getReportTime() { return reportTime; } @@ -339,6 +332,38 @@ this.reportTime = reportTime; } + public String getCurrUserId() { + return currUserId; + } + + public void setCurrUserId(String currUserId) { + this.currUserId = currUserId; + } + + public String getCurrUserName() { + return currUserName; + } + + public void setCurrUserName(String currUserName) { + this.currUserName = currUserName; + } + + public String getCurrDeptId() { + return currDeptId; + } + + public void setCurrDeptId(String currDeptId) { + this.currDeptId = currDeptId; + } + + public String getCurrDeptName() { + return currDeptName; + } + + public void setCurrDeptName(String currDeptName) { + this.currDeptName = currDeptName; + } + public String getOnedeptName() { return onedeptName; } diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java index de23222..9e72c93 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java @@ -15,6 +15,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.mvvm.model.CaseDetailBean; import com.casic.dcms.mvvm.model.CaseNextNodeBean; +import com.casic.dcms.mvvm.vm.CaseOperateViewModel; import com.casic.dcms.mvvm.vm.CaseViewModel; import com.casic.dcms.mvvm.vm.NodeViewModel; import com.casic.dcms.utils.JzExoMedia; @@ -40,6 +41,7 @@ private final Context context = this; private CaseViewModel caseViewModel; private NodeViewModel nodeViewModel; + private CaseOperateViewModel operateViewModel; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private List nodeDataBeans; private String id; @@ -62,6 +64,7 @@ caseViewModel.obtainCaseDetail(id); nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); + operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); } @Override @@ -230,8 +233,6 @@ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { dialog.dismiss(); viewBinding.commonTipsView.setText(tag); - - viewBinding.optionEditView.setText(tag); } }).build().show(); } @@ -245,14 +246,28 @@ EasyToast.show(context, "还未选择操作类型"); return; } - String optionInput = StringHelper.filterString(viewBinding.optionEditView.getText().toString()); + String optionInput = StringHelper.filterString(viewBinding.commonTipsView.getText().toString()); if (TextUtils.isEmpty(optionInput)) { EasyToast.show(context, "不同意/同意的意见必须填写"); return; } -// caseViewModel.dispatcherHandleCase(data.getProcessId(), id, -// String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, -// data.getProcessPersonid()); + operateViewModel.dispatcherHandleCase(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, + data.getProcessPersonid()); + } + }); + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + OtherUtils.showLoadingDialog(context, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + OtherUtils.dismissLoadingDialog(); + finish(); + } else { + EasyToast.show(context, "处理失败,请重试"); + OtherUtils.dismissLoadingDialog(); + } } }); } diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java index 31fc6a0..f23fc0b 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java @@ -16,6 +16,7 @@ import com.casic.dcms.mvvm.model.CaseDetailBean; import com.casic.dcms.mvvm.model.CaseNextNodeBean; import com.casic.dcms.mvvm.model.ProcessPersonBean; +import com.casic.dcms.mvvm.vm.CaseOperateViewModel; import com.casic.dcms.mvvm.vm.CaseViewModel; import com.casic.dcms.mvvm.vm.NodeViewModel; import com.casic.dcms.mvvm.vm.PersonViewModel; @@ -26,6 +27,7 @@ import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.ReadOnlyImageAdapter; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; +import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil; import com.pengxh.androidx.lite.vm.LoadState; import com.pengxh.androidx.lite.widget.EasyToast; @@ -36,13 +38,14 @@ import cn.jzvd.Jzvd; -public class DeptAuthorizeDetailActivity extends AndroidxBaseActivity implements View.OnClickListener { +public class DeptAuthorizeDetailActivity extends AndroidxBaseActivity { private final Context context = this; private CaseViewModel caseViewModel; private NodeViewModel nodeViewModel; - private List nodeDataBeans; private PersonViewModel personViewModel; + private CaseOperateViewModel operateViewModel; + private List nodeDataBeans; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private List personBeans; private String id; @@ -61,12 +64,13 @@ @Override public void initData() { - id = getIntent().getStringExtra("id"); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); personViewModel = new ViewModelProvider(this).get(PersonViewModel.class); + operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); } @Override @@ -192,39 +196,18 @@ } }); - personViewModel.processPersonModel.observe(this, new Observer() { + viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override - public void onChanged(ProcessPersonBean resultBean) { - if (resultBean.getCode() == 200) { - personBeans = resultBean.getData(); - if (personBeans.size() == 0) { - viewBinding.caseHandlePersonView.setText("无处置人员"); - } else { - ProcessPersonBean.DataBean dataBean = personBeans.get(0); - taskUserId = dataBean.getId(); - viewBinding.caseHandlePersonView.setText(dataBean.getName());//默认选择第一个 - } - viewBinding.caseHandlePersonView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); - } + public void onClick(View v) { + OtherUtils.displayOnMap(context, data.getEorcName(), data.getLng(), data.getLat()); } }); - viewBinding.locationMapView.setOnClickListener(this); - viewBinding.caseOptTypeLayout.setOnClickListener(this); - viewBinding.casePersonLayout.setOnClickListener(this); - viewBinding.commonTipsLayout.setOnClickListener(this); - viewBinding.submitButton.setOnClickListener(this); - } - - @Override - public void onClick(View v) { - int viewId = v.getId(); - if (viewId == R.id.locationMapView) { - OtherUtils.displayOnMap(this, data.getEorcName(), data.getLng(), data.getLat()); - } else if (viewId == R.id.caseOptTypeLayout) { - if (nodeDataBeans != null) { + viewBinding.caseOptTypeLayout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { if (nodeDataBeans.size() >= 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(context); sheetBuilder.setTitle("操作类型"); for (CaseNextNodeBean.DataBean dataBean : nodeDataBeans) { sheetBuilder.addItem(dataBean.getNextOperation()); @@ -254,10 +237,29 @@ }).build().show(); } } - } else if (viewId == R.id.casePersonLayout) { - if (personBeans != null) { + }); + personViewModel.processPersonModel.observe(this, new Observer() { + @Override + public void onChanged(ProcessPersonBean resultBean) { + if (resultBean.getCode() == 200) { + personBeans = resultBean.getData(); + if (personBeans.size() == 0) { + viewBinding.caseHandlePersonView.setText("无处置人员"); + } else { + ProcessPersonBean.DataBean dataBean = personBeans.get(0); + taskUserId = dataBean.getId(); + viewBinding.caseHandlePersonView.setText(dataBean.getName());//默认选择第一个 + } + viewBinding.caseHandlePersonView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); + } + } + }); + + viewBinding.casePersonLayout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { if (personBeans.size() >= 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(context); sheetBuilder.setTitle("处置人员"); for (ProcessPersonBean.DataBean dataBean : personBeans) { sheetBuilder.addItem(dataBean.getName()); @@ -274,50 +276,71 @@ }).build().show(); } } - } else if (viewId == R.id.commonTipsLayout) { - new QMUIBottomSheet.BottomListSheetBuilder(this) - .setTitle("常见用语") - .addItem("请及时处理") - .addItem("调查后及时回复") - .setGravityCenter(true) - .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - viewBinding.commonTipsView.setText(tag); - viewBinding.commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); + }); - viewBinding.optionEditView.setText(tag); - viewBinding.commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); - } - }).build().show(); - } else if (viewId == R.id.submitButton) { - String optType = viewBinding.optTypeView.getText().toString(); - if (optType.equals("")) { - EasyToast.show(this, "还未选择操作类型"); - return; + viewBinding.commonTipsLayout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new QMUIBottomSheet.BottomListSheetBuilder(context) + .setTitle("常见用语") + .addItem("请及时处理") + .addItem("调查后及时回复") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + viewBinding.commonTipsView.setText(tag); + viewBinding.commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); + } + }).build().show(); } - if (optType.equals("返回处理")) { - //选择处理人员时,必选一个处置人员 - String handlePerson = viewBinding.caseHandlePersonView.getText().toString(); - if (handlePerson.equals("")) { - EasyToast.show(this, "当前状态必须指定处置员"); + }); + + viewBinding.submitButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + String optType = viewBinding.optTypeView.getText().toString(); + if (optType.equals("")) { + EasyToast.show(context, "还未选择操作类型"); return; } + if (optType.equals("返回处理")) { + //选择处理人员时,必选一个处置人员 + String handlePerson = viewBinding.caseHandlePersonView.getText().toString(); + if (handlePerson.equals("")) { + EasyToast.show(context, "当前状态必须指定处置员"); + return; + } + } + String optionInput = StringHelper.filterString(viewBinding.commonTipsView.getText().toString()); + if (TextUtils.isEmpty(optionInput)) { + EasyToast.show(context, "处理意见必须填写"); + return; + } + //只有选择返回处理的时候taskUserId才会不为空,否则用当前流程人员的id代替 + if (TextUtils.isEmpty(taskUserId)) { + taskUserId = data.getProcessPersonid(); + } + operateViewModel.dispatcherHandleCase(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, + taskUserId); } - String optionInput = StringHelper.filterString(viewBinding.optionEditView.getText().toString()); - if (TextUtils.isEmpty(optionInput)) { - EasyToast.show(this, "处理意见必须填写"); - return; + }); + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + OtherUtils.showLoadingDialog(context, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + OtherUtils.dismissLoadingDialog(); + finish(); + } else { + EasyToast.show(context, "处理失败,请重试"); + OtherUtils.dismissLoadingDialog(); + } } - //只有选择返回处理的时候taskUserId才会不为空,否则用当前流程人员的id代替 - if (TextUtils.isEmpty(taskUserId)) { - taskUserId = data.getProcessPersonid(); - } -// caseViewModel.dispatcherHandleCase(data.getProcessId(), id, -// String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, -// taskUserId); - } + }); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DeptHandleActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DeptHandleActivity.java index 694bbd5..ca49b3d 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/DeptHandleActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/DeptHandleActivity.java @@ -18,6 +18,7 @@ import com.casic.dcms.utils.LocaleConstant; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; +import com.pengxh.androidx.lite.utils.DeviceSizeUtil; import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil; import java.util.ArrayList; @@ -49,8 +50,9 @@ //绑定TabLayout viewBinding.tabLayout.setupWithViewPager(viewBinding.viewPager); LinearLayout linearLayout = (LinearLayout) viewBinding.tabLayout.getChildAt(0); - linearLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE); linearLayout.setDividerDrawable(ContextCompat.getDrawable(this, R.drawable.layout_divider_vertical)); + linearLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE); + linearLayout.setDividerPadding(DeviceSizeUtil.dp2px(this, 12.5f)); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DeptTodoDetailActivity.java index b8b9c59..9686049 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/DeptTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/DeptTodoDetailActivity.java @@ -17,9 +17,9 @@ import com.casic.dcms.mvvm.model.CaseDetailBean; import com.casic.dcms.mvvm.model.CaseNextNodeBean; import com.casic.dcms.mvvm.model.ProcessPersonBean; +import com.casic.dcms.mvvm.vm.CaseOperateViewModel; import com.casic.dcms.mvvm.vm.CaseViewModel; import com.casic.dcms.mvvm.vm.NodeViewModel; -import com.casic.dcms.mvvm.vm.PersonViewModel; import com.casic.dcms.utils.JzExoMedia; import com.casic.dcms.utils.OtherUtils; import com.casic.dcms.utils.StringHelper; @@ -40,7 +40,7 @@ private final Context context = this; private CaseViewModel caseViewModel; private NodeViewModel nodeViewModel; - private PersonViewModel personViewModel; + private CaseOperateViewModel operateViewModel; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private List personBeans; private String id; @@ -66,7 +66,7 @@ caseViewModel.obtainCaseDetail(id); nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); - personViewModel = new ViewModelProvider(this).get(PersonViewModel.class); + operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); } @Override @@ -216,60 +216,12 @@ CaseNextNodeBean.DataBean nodeBean = nodeDataBeans.get(position); changeState = String.valueOf(nodeBean.getNextState()); operationKey = nodeBean.getOperationKey(); - - if (tag.equals("返回处理") || tag.equals("处置人员")) { - viewBinding.casePersonLayout.setVisibility(View.VISIBLE); - viewBinding.personLine.setVisibility(View.VISIBLE); - - //获取下级处置人员名单 - personViewModel.obtainSubordinatePerson(); - } else { - viewBinding.casePersonLayout.setVisibility(View.GONE); - viewBinding.personLine.setVisibility(View.GONE); - } } }).build().show(); } } }); - viewBinding.casePersonLayout.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (personBeans.size() >= 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(context); - sheetBuilder.setTitle("处置人员"); - for (ProcessPersonBean.DataBean dataBean : personBeans) { - sheetBuilder.addItem(dataBean.getName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - viewBinding.caseHandlePersonView.setText(tag); - - taskUserId = personBeans.get(position).getId(); - } - }).build().show(); - } - } - }); - personViewModel.processPersonModel.observe(this, new Observer() { - @Override - public void onChanged(ProcessPersonBean resultBean) { - if (resultBean.isSuccess()) { - personBeans = resultBean.getData(); - if (personBeans.size() == 0) { - viewBinding.caseHandlePersonView.setText("无处置人员"); - } else { - ProcessPersonBean.DataBean dataBean = personBeans.get(0); - taskUserId = dataBean.getId(); - viewBinding.caseHandlePersonView.setText(dataBean.getName());//默认选择第一个 - } - } - } - }); - viewBinding.commonTipsLayout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -283,8 +235,6 @@ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { dialog.dismiss(); viewBinding.commonTipsView.setText(tag); - - viewBinding.optionEditView.setText(tag); } }).build().show(); } @@ -298,21 +248,27 @@ EasyToast.show(context, "还未选择操作类型"); return; } - if (optType.equals("处置人员") || optType.equals("返回处理")) { - //选择处理人员时,必选一个处置人员 - String handlePerson = viewBinding.caseHandlePersonView.getText().toString(); - if (handlePerson.equals("")) { - EasyToast.show(context, "当前状态必须指定处置员"); - return; - } - } - String optionInput = StringHelper.filterString(viewBinding.optionEditView.getText().toString()); + String optionInput = StringHelper.filterString(viewBinding.commonTipsView.getText().toString()); if (TextUtils.isEmpty(optionInput)) { EasyToast.show(context, "处理意见必须填写"); return; } -// caseViewModel.dispatcherHandleCase(data.getProcessId(), id, -// String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, taskUserId); + operateViewModel.dispatcherHandleCase(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, taskUserId); + } + }); + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + OtherUtils.showLoadingDialog(context, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + OtherUtils.dismissLoadingDialog(); + finish(); + } else { + EasyToast.show(context, "处理失败,请重试"); + OtherUtils.dismissLoadingDialog(); + } } }); } diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseHandledFragment.java index 0a65c11..7b65a54 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseHandledFragment.java @@ -29,7 +29,7 @@ private WeakReferenceHandler weakReferenceHandler; private DeptHandleViewModel handleViewModel; private DeptTodoOrHandledAdapter adapter; - private List dataBeans = new ArrayList<>(); + private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -78,7 +78,7 @@ @Override public void onChanged(DeptCaseBean resultBean) { if (resultBean.isSuccess()) { - List dataRows = resultBean.getData().getRows(); + List dataRows = resultBean.getData().getRows(); if (isRefresh) { dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 dataBeans = dataRows; diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseProcessFragment.java b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseProcessFragment.java index 8d780d7..a7948e0 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseProcessFragment.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseProcessFragment.java @@ -30,7 +30,7 @@ private WeakReferenceHandler weakReferenceHandler; private DeptHandleViewModel handleViewModel; private DeptTodoOrHandledAdapter adapter; - private List dataBeans = new ArrayList<>(); + private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -79,7 +79,7 @@ @Override public void onChanged(DeptCaseBean resultBean) { if (resultBean.isSuccess()) { - List dataRows = resultBean.getData().getRows(); + List dataRows = resultBean.getData().getRows(); if (isRefresh) { dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 dataBeans = dataRows; diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseTodoFragment.java b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseTodoFragment.java index a807209..e4c8eaf 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseTodoFragment.java @@ -30,7 +30,7 @@ private WeakReferenceHandler weakReferenceHandler; private DeptHandleViewModel handleViewModel; private DeptTodoOrHandledAdapter adapter; - private List dataBeans = new ArrayList<>(); + private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -79,7 +79,7 @@ @Override public void onChanged(DeptCaseBean resultBean) { if (resultBean.getCode() == 200) { - List dataRows = resultBean.getData().getRows(); + List dataRows = resultBean.getData().getRows(); if (isRefresh) { dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 dataBeans = dataRows; diff --git a/app/src/main/java/com/casic/dcms/mvvm/vm/CaseOperateViewModel.java b/app/src/main/java/com/casic/dcms/mvvm/vm/CaseOperateViewModel.java index 7969714..dbccfee 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/vm/CaseOperateViewModel.java +++ b/app/src/main/java/com/casic/dcms/mvvm/vm/CaseOperateViewModel.java @@ -258,16 +258,17 @@ } public void dispatcherHandleCase(String processId, String bizId, String currState, String changeState, String remarks, String operationKey, String taskUserId) { + loadState.setValue(LoadState.Loading); Observable observable = RetrofitServiceManager.getDispatcherHandleCaseResult(processId, bizId, currState, changeState, remarks, operationKey, taskUserId); ObserverSubscriber.addSubscribe(observable, new OnObserverCallback() { @Override public void onCompleted() { - + loadState.setValue(LoadState.Success); } @Override public void onError(Throwable e) { - + loadState.setValue(LoadState.Fail); } @Override @@ -279,6 +280,8 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); dispatcherHandleActionModel.setValue(resultBean); + } else { + loadState.setValue(LoadState.Fail); } } catch (IOException e) { e.printStackTrace(); diff --git a/app/src/main/res/layout/activity_dept_adjust.xml b/app/src/main/res/layout/activity_dept_adjust.xml index c3ec296..9b69187 100644 --- a/app/src/main/res/layout/activity_dept_adjust.xml +++ b/app/src/main/res/layout/activity_dept_adjust.xml @@ -228,29 +228,13 @@ - - - - - - - - - + android:text="处理意见" /> - - - - - - - - - + android:text="处理意见" /> + + + + @@ -48,6 +52,7 @@ + diff --git a/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java b/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java index 6c4a6a6..1fafc8b 100644 --- a/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java @@ -11,35 +11,35 @@ import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; +import com.bumptech.glide.Glide; import com.casic.dcms.R; import com.casic.dcms.mvvm.model.DeptCaseBean; import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUIRadiusImageView; import java.util.List; -/** - * {@link PackageCaseListAdapter 不适用二级派遣员部门处置列表,因为该列表不光有三包案卷,还有普通案卷} - */ public class DeptTodoOrHandledAdapter extends RecyclerView.Adapter { - private final List dataBeans; + private final Context context; + private final List dataBeans; private final LayoutInflater layoutInflater; private PunishTypeAdapter adapter; - public DeptTodoOrHandledAdapter(Context context, List dataRows) { + public DeptTodoOrHandledAdapter(Context context, List dataRows) { + this.context = context; this.dataBeans = dataRows; layoutInflater = LayoutInflater.from(context); } @NonNull @Override - public DeptTodoOrHandledAdapter.ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - View view = layoutInflater.inflate(R.layout.item_case_rv, parent, false); - return new ItemViewHolder(view); + 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 DeptTodoOrHandledAdapter.ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { + public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { holder.bindView(dataBeans.get(position)); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @@ -56,28 +56,30 @@ return dataBeans.size(); } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { -// private final TextView leftTextView; + private final QMUIRadiusImageView caseImageView; private final TextView caseTitleView; private final TextView casePlaceView; private final TextView caseTimeView; ItemViewHolder(@NonNull View itemView) { super(itemView); -// leftTextView = itemView.findViewById(R.id.leftTextView); + caseImageView = itemView.findViewById(R.id.caseImageView); caseTitleView = itemView.findViewById(R.id.caseTitleView); casePlaceView = itemView.findViewById(R.id.casePlaceView); caseTimeView = itemView.findViewById(R.id.caseTimeView); } - @SuppressLint("SetTextI18n") - void bindView(DeptCaseBean.DataBean.RowsBean rowsBean) { - String eorcName = rowsBean.getEorcName(); - if (TextUtils.isEmpty(eorcName)) { - eorcName = "未知"; + void bindView(DeptCaseBean.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); + } } -// 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/mvvm/model/DeptCaseBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/DeptCaseBean.java index 1a4ac47..79163d8 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/model/DeptCaseBean.java +++ b/app/src/main/java/com/casic/dcms/mvvm/model/DeptCaseBean.java @@ -8,7 +8,7 @@ public class DeptCaseBean { private int code; - private DataBean data; + private DataDTO data; private String message; private boolean success; @@ -20,11 +20,11 @@ this.code = code; } - public DataBean getData() { + public DataDTO getData() { return data; } - public void setData(DataBean data) { + public void setData(DataDTO data) { this.data = data; } @@ -44,10 +44,17 @@ this.success = success; } - public static class DataBean { - + public static class DataDTO { + private List rows; private int total; - private List rows; + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } public int getTotal() { return total; @@ -57,26 +64,14 @@ this.total = total; } - public List getRows() { - return rows; - } - - public void setRows(List rows) { - this.rows = rows; - } - - public static class RowsBean { - + public static class RowsDTO { private int isPostpone; - private int preState; private String description; private int source; private String eorcName; private String casetypeDetailName; private String remainingTime; private String casetypeName; - private String currUserId; - private String currUserName; private String processId; private int caseState; private String id; @@ -84,10 +79,10 @@ private String fieldintro; private String lat; private String caseStateName; - private String preOperator; private String lng; private String isOvertime; private String currRoleName; + private String fileIdVerify; private String casetypeDetailCode; private String onedeptid; private String eorc; @@ -95,8 +90,14 @@ private String caseid; private String casetypeCode; private String nodeLimittime; + private String taskName; private String sourceName; + private String fileIdProcess; private String reportTime; + private String currUserId; + private String currUserName; + private String currDeptId; + private String currDeptName; private String onedeptName; public int getIsPostpone() { @@ -107,14 +108,6 @@ this.isPostpone = isPostpone; } - public int getPreState() { - return preState; - } - - public void setPreState(int preState) { - this.preState = preState; - } - public String getDescription() { return description; } @@ -163,22 +156,6 @@ this.casetypeName = casetypeName; } - public String getCurrUserId() { - return currUserId; - } - - public void setCurrUserId(String currUserId) { - this.currUserId = currUserId; - } - - public String getCurrUserName() { - return currUserName; - } - - public void setCurrUserName(String currUserName) { - this.currUserName = currUserName; - } - public String getProcessId() { return processId; } @@ -235,14 +212,6 @@ this.caseStateName = caseStateName; } - public String getPreOperator() { - return preOperator; - } - - public void setPreOperator(String preOperator) { - this.preOperator = preOperator; - } - public String getLng() { return lng; } @@ -267,6 +236,14 @@ this.currRoleName = currRoleName; } + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + public String getCasetypeDetailCode() { return casetypeDetailCode; } @@ -323,6 +300,14 @@ this.nodeLimittime = nodeLimittime; } + public String getTaskName() { + return taskName; + } + + public void setTaskName(String taskName) { + this.taskName = taskName; + } + public String getSourceName() { return sourceName; } @@ -331,6 +316,14 @@ this.sourceName = sourceName; } + public String getFileIdProcess() { + return fileIdProcess; + } + + public void setFileIdProcess(String fileIdProcess) { + this.fileIdProcess = fileIdProcess; + } + public String getReportTime() { return reportTime; } @@ -339,6 +332,38 @@ this.reportTime = reportTime; } + public String getCurrUserId() { + return currUserId; + } + + public void setCurrUserId(String currUserId) { + this.currUserId = currUserId; + } + + public String getCurrUserName() { + return currUserName; + } + + public void setCurrUserName(String currUserName) { + this.currUserName = currUserName; + } + + public String getCurrDeptId() { + return currDeptId; + } + + public void setCurrDeptId(String currDeptId) { + this.currDeptId = currDeptId; + } + + public String getCurrDeptName() { + return currDeptName; + } + + public void setCurrDeptName(String currDeptName) { + this.currDeptName = currDeptName; + } + public String getOnedeptName() { return onedeptName; } diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java index de23222..9e72c93 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java @@ -15,6 +15,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.mvvm.model.CaseDetailBean; import com.casic.dcms.mvvm.model.CaseNextNodeBean; +import com.casic.dcms.mvvm.vm.CaseOperateViewModel; import com.casic.dcms.mvvm.vm.CaseViewModel; import com.casic.dcms.mvvm.vm.NodeViewModel; import com.casic.dcms.utils.JzExoMedia; @@ -40,6 +41,7 @@ private final Context context = this; private CaseViewModel caseViewModel; private NodeViewModel nodeViewModel; + private CaseOperateViewModel operateViewModel; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private List nodeDataBeans; private String id; @@ -62,6 +64,7 @@ caseViewModel.obtainCaseDetail(id); nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); + operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); } @Override @@ -230,8 +233,6 @@ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { dialog.dismiss(); viewBinding.commonTipsView.setText(tag); - - viewBinding.optionEditView.setText(tag); } }).build().show(); } @@ -245,14 +246,28 @@ EasyToast.show(context, "还未选择操作类型"); return; } - String optionInput = StringHelper.filterString(viewBinding.optionEditView.getText().toString()); + String optionInput = StringHelper.filterString(viewBinding.commonTipsView.getText().toString()); if (TextUtils.isEmpty(optionInput)) { EasyToast.show(context, "不同意/同意的意见必须填写"); return; } -// caseViewModel.dispatcherHandleCase(data.getProcessId(), id, -// String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, -// data.getProcessPersonid()); + operateViewModel.dispatcherHandleCase(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, + data.getProcessPersonid()); + } + }); + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + OtherUtils.showLoadingDialog(context, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + OtherUtils.dismissLoadingDialog(); + finish(); + } else { + EasyToast.show(context, "处理失败,请重试"); + OtherUtils.dismissLoadingDialog(); + } } }); } diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java index 31fc6a0..f23fc0b 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java @@ -16,6 +16,7 @@ import com.casic.dcms.mvvm.model.CaseDetailBean; import com.casic.dcms.mvvm.model.CaseNextNodeBean; import com.casic.dcms.mvvm.model.ProcessPersonBean; +import com.casic.dcms.mvvm.vm.CaseOperateViewModel; import com.casic.dcms.mvvm.vm.CaseViewModel; import com.casic.dcms.mvvm.vm.NodeViewModel; import com.casic.dcms.mvvm.vm.PersonViewModel; @@ -26,6 +27,7 @@ import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.ReadOnlyImageAdapter; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; +import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil; import com.pengxh.androidx.lite.vm.LoadState; import com.pengxh.androidx.lite.widget.EasyToast; @@ -36,13 +38,14 @@ import cn.jzvd.Jzvd; -public class DeptAuthorizeDetailActivity extends AndroidxBaseActivity implements View.OnClickListener { +public class DeptAuthorizeDetailActivity extends AndroidxBaseActivity { private final Context context = this; private CaseViewModel caseViewModel; private NodeViewModel nodeViewModel; - private List nodeDataBeans; private PersonViewModel personViewModel; + private CaseOperateViewModel operateViewModel; + private List nodeDataBeans; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private List personBeans; private String id; @@ -61,12 +64,13 @@ @Override public void initData() { - id = getIntent().getStringExtra("id"); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); personViewModel = new ViewModelProvider(this).get(PersonViewModel.class); + operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); } @Override @@ -192,39 +196,18 @@ } }); - personViewModel.processPersonModel.observe(this, new Observer() { + viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override - public void onChanged(ProcessPersonBean resultBean) { - if (resultBean.getCode() == 200) { - personBeans = resultBean.getData(); - if (personBeans.size() == 0) { - viewBinding.caseHandlePersonView.setText("无处置人员"); - } else { - ProcessPersonBean.DataBean dataBean = personBeans.get(0); - taskUserId = dataBean.getId(); - viewBinding.caseHandlePersonView.setText(dataBean.getName());//默认选择第一个 - } - viewBinding.caseHandlePersonView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); - } + public void onClick(View v) { + OtherUtils.displayOnMap(context, data.getEorcName(), data.getLng(), data.getLat()); } }); - viewBinding.locationMapView.setOnClickListener(this); - viewBinding.caseOptTypeLayout.setOnClickListener(this); - viewBinding.casePersonLayout.setOnClickListener(this); - viewBinding.commonTipsLayout.setOnClickListener(this); - viewBinding.submitButton.setOnClickListener(this); - } - - @Override - public void onClick(View v) { - int viewId = v.getId(); - if (viewId == R.id.locationMapView) { - OtherUtils.displayOnMap(this, data.getEorcName(), data.getLng(), data.getLat()); - } else if (viewId == R.id.caseOptTypeLayout) { - if (nodeDataBeans != null) { + viewBinding.caseOptTypeLayout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { if (nodeDataBeans.size() >= 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(context); sheetBuilder.setTitle("操作类型"); for (CaseNextNodeBean.DataBean dataBean : nodeDataBeans) { sheetBuilder.addItem(dataBean.getNextOperation()); @@ -254,10 +237,29 @@ }).build().show(); } } - } else if (viewId == R.id.casePersonLayout) { - if (personBeans != null) { + }); + personViewModel.processPersonModel.observe(this, new Observer() { + @Override + public void onChanged(ProcessPersonBean resultBean) { + if (resultBean.getCode() == 200) { + personBeans = resultBean.getData(); + if (personBeans.size() == 0) { + viewBinding.caseHandlePersonView.setText("无处置人员"); + } else { + ProcessPersonBean.DataBean dataBean = personBeans.get(0); + taskUserId = dataBean.getId(); + viewBinding.caseHandlePersonView.setText(dataBean.getName());//默认选择第一个 + } + viewBinding.caseHandlePersonView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); + } + } + }); + + viewBinding.casePersonLayout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { if (personBeans.size() >= 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(context); sheetBuilder.setTitle("处置人员"); for (ProcessPersonBean.DataBean dataBean : personBeans) { sheetBuilder.addItem(dataBean.getName()); @@ -274,50 +276,71 @@ }).build().show(); } } - } else if (viewId == R.id.commonTipsLayout) { - new QMUIBottomSheet.BottomListSheetBuilder(this) - .setTitle("常见用语") - .addItem("请及时处理") - .addItem("调查后及时回复") - .setGravityCenter(true) - .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - viewBinding.commonTipsView.setText(tag); - viewBinding.commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); + }); - viewBinding.optionEditView.setText(tag); - viewBinding.commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); - } - }).build().show(); - } else if (viewId == R.id.submitButton) { - String optType = viewBinding.optTypeView.getText().toString(); - if (optType.equals("")) { - EasyToast.show(this, "还未选择操作类型"); - return; + viewBinding.commonTipsLayout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new QMUIBottomSheet.BottomListSheetBuilder(context) + .setTitle("常见用语") + .addItem("请及时处理") + .addItem("调查后及时回复") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + viewBinding.commonTipsView.setText(tag); + viewBinding.commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); + } + }).build().show(); } - if (optType.equals("返回处理")) { - //选择处理人员时,必选一个处置人员 - String handlePerson = viewBinding.caseHandlePersonView.getText().toString(); - if (handlePerson.equals("")) { - EasyToast.show(this, "当前状态必须指定处置员"); + }); + + viewBinding.submitButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + String optType = viewBinding.optTypeView.getText().toString(); + if (optType.equals("")) { + EasyToast.show(context, "还未选择操作类型"); return; } + if (optType.equals("返回处理")) { + //选择处理人员时,必选一个处置人员 + String handlePerson = viewBinding.caseHandlePersonView.getText().toString(); + if (handlePerson.equals("")) { + EasyToast.show(context, "当前状态必须指定处置员"); + return; + } + } + String optionInput = StringHelper.filterString(viewBinding.commonTipsView.getText().toString()); + if (TextUtils.isEmpty(optionInput)) { + EasyToast.show(context, "处理意见必须填写"); + return; + } + //只有选择返回处理的时候taskUserId才会不为空,否则用当前流程人员的id代替 + if (TextUtils.isEmpty(taskUserId)) { + taskUserId = data.getProcessPersonid(); + } + operateViewModel.dispatcherHandleCase(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, + taskUserId); } - String optionInput = StringHelper.filterString(viewBinding.optionEditView.getText().toString()); - if (TextUtils.isEmpty(optionInput)) { - EasyToast.show(this, "处理意见必须填写"); - return; + }); + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + OtherUtils.showLoadingDialog(context, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + OtherUtils.dismissLoadingDialog(); + finish(); + } else { + EasyToast.show(context, "处理失败,请重试"); + OtherUtils.dismissLoadingDialog(); + } } - //只有选择返回处理的时候taskUserId才会不为空,否则用当前流程人员的id代替 - if (TextUtils.isEmpty(taskUserId)) { - taskUserId = data.getProcessPersonid(); - } -// caseViewModel.dispatcherHandleCase(data.getProcessId(), id, -// String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, -// taskUserId); - } + }); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DeptHandleActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DeptHandleActivity.java index 694bbd5..ca49b3d 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/DeptHandleActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/DeptHandleActivity.java @@ -18,6 +18,7 @@ import com.casic.dcms.utils.LocaleConstant; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; +import com.pengxh.androidx.lite.utils.DeviceSizeUtil; import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil; import java.util.ArrayList; @@ -49,8 +50,9 @@ //绑定TabLayout viewBinding.tabLayout.setupWithViewPager(viewBinding.viewPager); LinearLayout linearLayout = (LinearLayout) viewBinding.tabLayout.getChildAt(0); - linearLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE); linearLayout.setDividerDrawable(ContextCompat.getDrawable(this, R.drawable.layout_divider_vertical)); + linearLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE); + linearLayout.setDividerPadding(DeviceSizeUtil.dp2px(this, 12.5f)); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DeptTodoDetailActivity.java index b8b9c59..9686049 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/DeptTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/DeptTodoDetailActivity.java @@ -17,9 +17,9 @@ import com.casic.dcms.mvvm.model.CaseDetailBean; import com.casic.dcms.mvvm.model.CaseNextNodeBean; import com.casic.dcms.mvvm.model.ProcessPersonBean; +import com.casic.dcms.mvvm.vm.CaseOperateViewModel; import com.casic.dcms.mvvm.vm.CaseViewModel; import com.casic.dcms.mvvm.vm.NodeViewModel; -import com.casic.dcms.mvvm.vm.PersonViewModel; import com.casic.dcms.utils.JzExoMedia; import com.casic.dcms.utils.OtherUtils; import com.casic.dcms.utils.StringHelper; @@ -40,7 +40,7 @@ private final Context context = this; private CaseViewModel caseViewModel; private NodeViewModel nodeViewModel; - private PersonViewModel personViewModel; + private CaseOperateViewModel operateViewModel; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private List personBeans; private String id; @@ -66,7 +66,7 @@ caseViewModel.obtainCaseDetail(id); nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); - personViewModel = new ViewModelProvider(this).get(PersonViewModel.class); + operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); } @Override @@ -216,60 +216,12 @@ CaseNextNodeBean.DataBean nodeBean = nodeDataBeans.get(position); changeState = String.valueOf(nodeBean.getNextState()); operationKey = nodeBean.getOperationKey(); - - if (tag.equals("返回处理") || tag.equals("处置人员")) { - viewBinding.casePersonLayout.setVisibility(View.VISIBLE); - viewBinding.personLine.setVisibility(View.VISIBLE); - - //获取下级处置人员名单 - personViewModel.obtainSubordinatePerson(); - } else { - viewBinding.casePersonLayout.setVisibility(View.GONE); - viewBinding.personLine.setVisibility(View.GONE); - } } }).build().show(); } } }); - viewBinding.casePersonLayout.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (personBeans.size() >= 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(context); - sheetBuilder.setTitle("处置人员"); - for (ProcessPersonBean.DataBean dataBean : personBeans) { - sheetBuilder.addItem(dataBean.getName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - viewBinding.caseHandlePersonView.setText(tag); - - taskUserId = personBeans.get(position).getId(); - } - }).build().show(); - } - } - }); - personViewModel.processPersonModel.observe(this, new Observer() { - @Override - public void onChanged(ProcessPersonBean resultBean) { - if (resultBean.isSuccess()) { - personBeans = resultBean.getData(); - if (personBeans.size() == 0) { - viewBinding.caseHandlePersonView.setText("无处置人员"); - } else { - ProcessPersonBean.DataBean dataBean = personBeans.get(0); - taskUserId = dataBean.getId(); - viewBinding.caseHandlePersonView.setText(dataBean.getName());//默认选择第一个 - } - } - } - }); - viewBinding.commonTipsLayout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -283,8 +235,6 @@ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { dialog.dismiss(); viewBinding.commonTipsView.setText(tag); - - viewBinding.optionEditView.setText(tag); } }).build().show(); } @@ -298,21 +248,27 @@ EasyToast.show(context, "还未选择操作类型"); return; } - if (optType.equals("处置人员") || optType.equals("返回处理")) { - //选择处理人员时,必选一个处置人员 - String handlePerson = viewBinding.caseHandlePersonView.getText().toString(); - if (handlePerson.equals("")) { - EasyToast.show(context, "当前状态必须指定处置员"); - return; - } - } - String optionInput = StringHelper.filterString(viewBinding.optionEditView.getText().toString()); + String optionInput = StringHelper.filterString(viewBinding.commonTipsView.getText().toString()); if (TextUtils.isEmpty(optionInput)) { EasyToast.show(context, "处理意见必须填写"); return; } -// caseViewModel.dispatcherHandleCase(data.getProcessId(), id, -// String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, taskUserId); + operateViewModel.dispatcherHandleCase(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, taskUserId); + } + }); + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + OtherUtils.showLoadingDialog(context, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + OtherUtils.dismissLoadingDialog(); + finish(); + } else { + EasyToast.show(context, "处理失败,请重试"); + OtherUtils.dismissLoadingDialog(); + } } }); } diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseHandledFragment.java index 0a65c11..7b65a54 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseHandledFragment.java @@ -29,7 +29,7 @@ private WeakReferenceHandler weakReferenceHandler; private DeptHandleViewModel handleViewModel; private DeptTodoOrHandledAdapter adapter; - private List dataBeans = new ArrayList<>(); + private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -78,7 +78,7 @@ @Override public void onChanged(DeptCaseBean resultBean) { if (resultBean.isSuccess()) { - List dataRows = resultBean.getData().getRows(); + List dataRows = resultBean.getData().getRows(); if (isRefresh) { dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 dataBeans = dataRows; diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseProcessFragment.java b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseProcessFragment.java index 8d780d7..a7948e0 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseProcessFragment.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseProcessFragment.java @@ -30,7 +30,7 @@ private WeakReferenceHandler weakReferenceHandler; private DeptHandleViewModel handleViewModel; private DeptTodoOrHandledAdapter adapter; - private List dataBeans = new ArrayList<>(); + private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -79,7 +79,7 @@ @Override public void onChanged(DeptCaseBean resultBean) { if (resultBean.isSuccess()) { - List dataRows = resultBean.getData().getRows(); + List dataRows = resultBean.getData().getRows(); if (isRefresh) { dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 dataBeans = dataRows; diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseTodoFragment.java b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseTodoFragment.java index a807209..e4c8eaf 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseTodoFragment.java @@ -30,7 +30,7 @@ private WeakReferenceHandler weakReferenceHandler; private DeptHandleViewModel handleViewModel; private DeptTodoOrHandledAdapter adapter; - private List dataBeans = new ArrayList<>(); + private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -79,7 +79,7 @@ @Override public void onChanged(DeptCaseBean resultBean) { if (resultBean.getCode() == 200) { - List dataRows = resultBean.getData().getRows(); + List dataRows = resultBean.getData().getRows(); if (isRefresh) { dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 dataBeans = dataRows; diff --git a/app/src/main/java/com/casic/dcms/mvvm/vm/CaseOperateViewModel.java b/app/src/main/java/com/casic/dcms/mvvm/vm/CaseOperateViewModel.java index 7969714..dbccfee 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/vm/CaseOperateViewModel.java +++ b/app/src/main/java/com/casic/dcms/mvvm/vm/CaseOperateViewModel.java @@ -258,16 +258,17 @@ } public void dispatcherHandleCase(String processId, String bizId, String currState, String changeState, String remarks, String operationKey, String taskUserId) { + loadState.setValue(LoadState.Loading); Observable observable = RetrofitServiceManager.getDispatcherHandleCaseResult(processId, bizId, currState, changeState, remarks, operationKey, taskUserId); ObserverSubscriber.addSubscribe(observable, new OnObserverCallback() { @Override public void onCompleted() { - + loadState.setValue(LoadState.Success); } @Override public void onError(Throwable e) { - + loadState.setValue(LoadState.Fail); } @Override @@ -279,6 +280,8 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); dispatcherHandleActionModel.setValue(resultBean); + } else { + loadState.setValue(LoadState.Fail); } } catch (IOException e) { e.printStackTrace(); diff --git a/app/src/main/res/layout/activity_dept_adjust.xml b/app/src/main/res/layout/activity_dept_adjust.xml index c3ec296..9b69187 100644 --- a/app/src/main/res/layout/activity_dept_adjust.xml +++ b/app/src/main/res/layout/activity_dept_adjust.xml @@ -228,29 +228,13 @@ - - - - - - - - - + android:text="处理意见" /> - - - - - - - - - + android:text="处理意见" /> - - - - - - - - - - - - - - - - - - - - + android:text="处理意见" /> + + + + @@ -48,6 +52,7 @@ + diff --git a/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java b/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java index 6c4a6a6..1fafc8b 100644 --- a/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java +++ b/app/src/main/java/com/casic/dcms/adapter/DeptTodoOrHandledAdapter.java @@ -11,35 +11,35 @@ import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; +import com.bumptech.glide.Glide; import com.casic.dcms.R; import com.casic.dcms.mvvm.model.DeptCaseBean; import com.casic.dcms.utils.StringHelper; +import com.qmuiteam.qmui.widget.QMUIRadiusImageView; import java.util.List; -/** - * {@link PackageCaseListAdapter 不适用二级派遣员部门处置列表,因为该列表不光有三包案卷,还有普通案卷} - */ public class DeptTodoOrHandledAdapter extends RecyclerView.Adapter { - private final List dataBeans; + private final Context context; + private final List dataBeans; private final LayoutInflater layoutInflater; private PunishTypeAdapter adapter; - public DeptTodoOrHandledAdapter(Context context, List dataRows) { + public DeptTodoOrHandledAdapter(Context context, List dataRows) { + this.context = context; this.dataBeans = dataRows; layoutInflater = LayoutInflater.from(context); } @NonNull @Override - public DeptTodoOrHandledAdapter.ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - View view = layoutInflater.inflate(R.layout.item_case_rv, parent, false); - return new ItemViewHolder(view); + 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 DeptTodoOrHandledAdapter.ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { + public void onBindViewHolder(@NonNull ItemViewHolder holder, @SuppressLint("RecyclerView") int position) { holder.bindView(dataBeans.get(position)); if (clickListener != null) { holder.itemView.setOnClickListener(new View.OnClickListener() { @@ -56,28 +56,30 @@ return dataBeans.size(); } - static class ItemViewHolder extends RecyclerView.ViewHolder { + class ItemViewHolder extends RecyclerView.ViewHolder { -// private final TextView leftTextView; + private final QMUIRadiusImageView caseImageView; private final TextView caseTitleView; private final TextView casePlaceView; private final TextView caseTimeView; ItemViewHolder(@NonNull View itemView) { super(itemView); -// leftTextView = itemView.findViewById(R.id.leftTextView); + caseImageView = itemView.findViewById(R.id.caseImageView); caseTitleView = itemView.findViewById(R.id.caseTitleView); casePlaceView = itemView.findViewById(R.id.casePlaceView); caseTimeView = itemView.findViewById(R.id.caseTimeView); } - @SuppressLint("SetTextI18n") - void bindView(DeptCaseBean.DataBean.RowsBean rowsBean) { - String eorcName = rowsBean.getEorcName(); - if (TextUtils.isEmpty(eorcName)) { - eorcName = "未知"; + void bindView(DeptCaseBean.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); + } } -// 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/mvvm/model/DeptCaseBean.java b/app/src/main/java/com/casic/dcms/mvvm/model/DeptCaseBean.java index 1a4ac47..79163d8 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/model/DeptCaseBean.java +++ b/app/src/main/java/com/casic/dcms/mvvm/model/DeptCaseBean.java @@ -8,7 +8,7 @@ public class DeptCaseBean { private int code; - private DataBean data; + private DataDTO data; private String message; private boolean success; @@ -20,11 +20,11 @@ this.code = code; } - public DataBean getData() { + public DataDTO getData() { return data; } - public void setData(DataBean data) { + public void setData(DataDTO data) { this.data = data; } @@ -44,10 +44,17 @@ this.success = success; } - public static class DataBean { - + public static class DataDTO { + private List rows; private int total; - private List rows; + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } public int getTotal() { return total; @@ -57,26 +64,14 @@ this.total = total; } - public List getRows() { - return rows; - } - - public void setRows(List rows) { - this.rows = rows; - } - - public static class RowsBean { - + public static class RowsDTO { private int isPostpone; - private int preState; private String description; private int source; private String eorcName; private String casetypeDetailName; private String remainingTime; private String casetypeName; - private String currUserId; - private String currUserName; private String processId; private int caseState; private String id; @@ -84,10 +79,10 @@ private String fieldintro; private String lat; private String caseStateName; - private String preOperator; private String lng; private String isOvertime; private String currRoleName; + private String fileIdVerify; private String casetypeDetailCode; private String onedeptid; private String eorc; @@ -95,8 +90,14 @@ private String caseid; private String casetypeCode; private String nodeLimittime; + private String taskName; private String sourceName; + private String fileIdProcess; private String reportTime; + private String currUserId; + private String currUserName; + private String currDeptId; + private String currDeptName; private String onedeptName; public int getIsPostpone() { @@ -107,14 +108,6 @@ this.isPostpone = isPostpone; } - public int getPreState() { - return preState; - } - - public void setPreState(int preState) { - this.preState = preState; - } - public String getDescription() { return description; } @@ -163,22 +156,6 @@ this.casetypeName = casetypeName; } - public String getCurrUserId() { - return currUserId; - } - - public void setCurrUserId(String currUserId) { - this.currUserId = currUserId; - } - - public String getCurrUserName() { - return currUserName; - } - - public void setCurrUserName(String currUserName) { - this.currUserName = currUserName; - } - public String getProcessId() { return processId; } @@ -235,14 +212,6 @@ this.caseStateName = caseStateName; } - public String getPreOperator() { - return preOperator; - } - - public void setPreOperator(String preOperator) { - this.preOperator = preOperator; - } - public String getLng() { return lng; } @@ -267,6 +236,14 @@ this.currRoleName = currRoleName; } + public String getFileIdVerify() { + return fileIdVerify; + } + + public void setFileIdVerify(String fileIdVerify) { + this.fileIdVerify = fileIdVerify; + } + public String getCasetypeDetailCode() { return casetypeDetailCode; } @@ -323,6 +300,14 @@ this.nodeLimittime = nodeLimittime; } + public String getTaskName() { + return taskName; + } + + public void setTaskName(String taskName) { + this.taskName = taskName; + } + public String getSourceName() { return sourceName; } @@ -331,6 +316,14 @@ this.sourceName = sourceName; } + public String getFileIdProcess() { + return fileIdProcess; + } + + public void setFileIdProcess(String fileIdProcess) { + this.fileIdProcess = fileIdProcess; + } + public String getReportTime() { return reportTime; } @@ -339,6 +332,38 @@ this.reportTime = reportTime; } + public String getCurrUserId() { + return currUserId; + } + + public void setCurrUserId(String currUserId) { + this.currUserId = currUserId; + } + + public String getCurrUserName() { + return currUserName; + } + + public void setCurrUserName(String currUserName) { + this.currUserName = currUserName; + } + + public String getCurrDeptId() { + return currDeptId; + } + + public void setCurrDeptId(String currDeptId) { + this.currDeptId = currDeptId; + } + + public String getCurrDeptName() { + return currDeptName; + } + + public void setCurrDeptName(String currDeptName) { + this.currDeptName = currDeptName; + } + public String getOnedeptName() { return onedeptName; } diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java index de23222..9e72c93 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAdjustDetailActivity.java @@ -15,6 +15,7 @@ import com.casic.dcms.databinding.ActivityDeptAdjustBinding; import com.casic.dcms.mvvm.model.CaseDetailBean; import com.casic.dcms.mvvm.model.CaseNextNodeBean; +import com.casic.dcms.mvvm.vm.CaseOperateViewModel; import com.casic.dcms.mvvm.vm.CaseViewModel; import com.casic.dcms.mvvm.vm.NodeViewModel; import com.casic.dcms.utils.JzExoMedia; @@ -40,6 +41,7 @@ private final Context context = this; private CaseViewModel caseViewModel; private NodeViewModel nodeViewModel; + private CaseOperateViewModel operateViewModel; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private List nodeDataBeans; private String id; @@ -62,6 +64,7 @@ caseViewModel.obtainCaseDetail(id); nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); + operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); } @Override @@ -230,8 +233,6 @@ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { dialog.dismiss(); viewBinding.commonTipsView.setText(tag); - - viewBinding.optionEditView.setText(tag); } }).build().show(); } @@ -245,14 +246,28 @@ EasyToast.show(context, "还未选择操作类型"); return; } - String optionInput = StringHelper.filterString(viewBinding.optionEditView.getText().toString()); + String optionInput = StringHelper.filterString(viewBinding.commonTipsView.getText().toString()); if (TextUtils.isEmpty(optionInput)) { EasyToast.show(context, "不同意/同意的意见必须填写"); return; } -// caseViewModel.dispatcherHandleCase(data.getProcessId(), id, -// String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, -// data.getProcessPersonid()); + operateViewModel.dispatcherHandleCase(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, + data.getProcessPersonid()); + } + }); + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + OtherUtils.showLoadingDialog(context, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + OtherUtils.dismissLoadingDialog(); + finish(); + } else { + EasyToast.show(context, "处理失败,请重试"); + OtherUtils.dismissLoadingDialog(); + } } }); } diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java index 31fc6a0..f23fc0b 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/DeptAuthorizeDetailActivity.java @@ -16,6 +16,7 @@ import com.casic.dcms.mvvm.model.CaseDetailBean; import com.casic.dcms.mvvm.model.CaseNextNodeBean; import com.casic.dcms.mvvm.model.ProcessPersonBean; +import com.casic.dcms.mvvm.vm.CaseOperateViewModel; import com.casic.dcms.mvvm.vm.CaseViewModel; import com.casic.dcms.mvvm.vm.NodeViewModel; import com.casic.dcms.mvvm.vm.PersonViewModel; @@ -26,6 +27,7 @@ import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.adapter.ReadOnlyImageAdapter; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; +import com.pengxh.androidx.lite.utils.Constant; import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil; import com.pengxh.androidx.lite.vm.LoadState; import com.pengxh.androidx.lite.widget.EasyToast; @@ -36,13 +38,14 @@ import cn.jzvd.Jzvd; -public class DeptAuthorizeDetailActivity extends AndroidxBaseActivity implements View.OnClickListener { +public class DeptAuthorizeDetailActivity extends AndroidxBaseActivity { private final Context context = this; private CaseViewModel caseViewModel; private NodeViewModel nodeViewModel; - private List nodeDataBeans; private PersonViewModel personViewModel; + private CaseOperateViewModel operateViewModel; + private List nodeDataBeans; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private List personBeans; private String id; @@ -61,12 +64,13 @@ @Override public void initData() { - id = getIntent().getStringExtra("id"); + id = getIntent().getStringExtra(Constant.INTENT_PARAM); caseViewModel = new ViewModelProvider(this).get(CaseViewModel.class); caseViewModel.obtainCaseDetail(id); nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); personViewModel = new ViewModelProvider(this).get(PersonViewModel.class); + operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); } @Override @@ -192,39 +196,18 @@ } }); - personViewModel.processPersonModel.observe(this, new Observer() { + viewBinding.locationMapView.setOnClickListener(new View.OnClickListener() { @Override - public void onChanged(ProcessPersonBean resultBean) { - if (resultBean.getCode() == 200) { - personBeans = resultBean.getData(); - if (personBeans.size() == 0) { - viewBinding.caseHandlePersonView.setText("无处置人员"); - } else { - ProcessPersonBean.DataBean dataBean = personBeans.get(0); - taskUserId = dataBean.getId(); - viewBinding.caseHandlePersonView.setText(dataBean.getName());//默认选择第一个 - } - viewBinding.caseHandlePersonView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); - } + public void onClick(View v) { + OtherUtils.displayOnMap(context, data.getEorcName(), data.getLng(), data.getLat()); } }); - viewBinding.locationMapView.setOnClickListener(this); - viewBinding.caseOptTypeLayout.setOnClickListener(this); - viewBinding.casePersonLayout.setOnClickListener(this); - viewBinding.commonTipsLayout.setOnClickListener(this); - viewBinding.submitButton.setOnClickListener(this); - } - - @Override - public void onClick(View v) { - int viewId = v.getId(); - if (viewId == R.id.locationMapView) { - OtherUtils.displayOnMap(this, data.getEorcName(), data.getLng(), data.getLat()); - } else if (viewId == R.id.caseOptTypeLayout) { - if (nodeDataBeans != null) { + viewBinding.caseOptTypeLayout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { if (nodeDataBeans.size() >= 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(context); sheetBuilder.setTitle("操作类型"); for (CaseNextNodeBean.DataBean dataBean : nodeDataBeans) { sheetBuilder.addItem(dataBean.getNextOperation()); @@ -254,10 +237,29 @@ }).build().show(); } } - } else if (viewId == R.id.casePersonLayout) { - if (personBeans != null) { + }); + personViewModel.processPersonModel.observe(this, new Observer() { + @Override + public void onChanged(ProcessPersonBean resultBean) { + if (resultBean.getCode() == 200) { + personBeans = resultBean.getData(); + if (personBeans.size() == 0) { + viewBinding.caseHandlePersonView.setText("无处置人员"); + } else { + ProcessPersonBean.DataBean dataBean = personBeans.get(0); + taskUserId = dataBean.getId(); + viewBinding.caseHandlePersonView.setText(dataBean.getName());//默认选择第一个 + } + viewBinding.caseHandlePersonView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); + } + } + }); + + viewBinding.casePersonLayout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { if (personBeans.size() >= 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(context); sheetBuilder.setTitle("处置人员"); for (ProcessPersonBean.DataBean dataBean : personBeans) { sheetBuilder.addItem(dataBean.getName()); @@ -274,50 +276,71 @@ }).build().show(); } } - } else if (viewId == R.id.commonTipsLayout) { - new QMUIBottomSheet.BottomListSheetBuilder(this) - .setTitle("常见用语") - .addItem("请及时处理") - .addItem("调查后及时回复") - .setGravityCenter(true) - .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - viewBinding.commonTipsView.setText(tag); - viewBinding.commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); + }); - viewBinding.optionEditView.setText(tag); - viewBinding.commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); - } - }).build().show(); - } else if (viewId == R.id.submitButton) { - String optType = viewBinding.optTypeView.getText().toString(); - if (optType.equals("")) { - EasyToast.show(this, "还未选择操作类型"); - return; + viewBinding.commonTipsLayout.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + new QMUIBottomSheet.BottomListSheetBuilder(context) + .setTitle("常见用语") + .addItem("请及时处理") + .addItem("调查后及时回复") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + viewBinding.commonTipsView.setText(tag); + viewBinding.commonTipsView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor)); + } + }).build().show(); } - if (optType.equals("返回处理")) { - //选择处理人员时,必选一个处置人员 - String handlePerson = viewBinding.caseHandlePersonView.getText().toString(); - if (handlePerson.equals("")) { - EasyToast.show(this, "当前状态必须指定处置员"); + }); + + viewBinding.submitButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + String optType = viewBinding.optTypeView.getText().toString(); + if (optType.equals("")) { + EasyToast.show(context, "还未选择操作类型"); return; } + if (optType.equals("返回处理")) { + //选择处理人员时,必选一个处置人员 + String handlePerson = viewBinding.caseHandlePersonView.getText().toString(); + if (handlePerson.equals("")) { + EasyToast.show(context, "当前状态必须指定处置员"); + return; + } + } + String optionInput = StringHelper.filterString(viewBinding.commonTipsView.getText().toString()); + if (TextUtils.isEmpty(optionInput)) { + EasyToast.show(context, "处理意见必须填写"); + return; + } + //只有选择返回处理的时候taskUserId才会不为空,否则用当前流程人员的id代替 + if (TextUtils.isEmpty(taskUserId)) { + taskUserId = data.getProcessPersonid(); + } + operateViewModel.dispatcherHandleCase(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, + taskUserId); } - String optionInput = StringHelper.filterString(viewBinding.optionEditView.getText().toString()); - if (TextUtils.isEmpty(optionInput)) { - EasyToast.show(this, "处理意见必须填写"); - return; + }); + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + OtherUtils.showLoadingDialog(context, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + OtherUtils.dismissLoadingDialog(); + finish(); + } else { + EasyToast.show(context, "处理失败,请重试"); + OtherUtils.dismissLoadingDialog(); + } } - //只有选择返回处理的时候taskUserId才会不为空,否则用当前流程人员的id代替 - if (TextUtils.isEmpty(taskUserId)) { - taskUserId = data.getProcessPersonid(); - } -// caseViewModel.dispatcherHandleCase(data.getProcessId(), id, -// String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, -// taskUserId); - } + }); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DeptHandleActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DeptHandleActivity.java index 694bbd5..ca49b3d 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/DeptHandleActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/DeptHandleActivity.java @@ -18,6 +18,7 @@ import com.casic.dcms.utils.LocaleConstant; import com.gyf.immersionbar.ImmersionBar; import com.pengxh.androidx.lite.base.AndroidxBaseActivity; +import com.pengxh.androidx.lite.utils.DeviceSizeUtil; import com.pengxh.androidx.lite.utils.ImmerseStatusBarUtil; import java.util.ArrayList; @@ -49,8 +50,9 @@ //绑定TabLayout viewBinding.tabLayout.setupWithViewPager(viewBinding.viewPager); LinearLayout linearLayout = (LinearLayout) viewBinding.tabLayout.getChildAt(0); - linearLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE); linearLayout.setDividerDrawable(ContextCompat.getDrawable(this, R.drawable.layout_divider_vertical)); + linearLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE); + linearLayout.setDividerPadding(DeviceSizeUtil.dp2px(this, 12.5f)); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/DeptTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/mvvm/view/DeptTodoDetailActivity.java index b8b9c59..9686049 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/DeptTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/DeptTodoDetailActivity.java @@ -17,9 +17,9 @@ import com.casic.dcms.mvvm.model.CaseDetailBean; import com.casic.dcms.mvvm.model.CaseNextNodeBean; import com.casic.dcms.mvvm.model.ProcessPersonBean; +import com.casic.dcms.mvvm.vm.CaseOperateViewModel; import com.casic.dcms.mvvm.vm.CaseViewModel; import com.casic.dcms.mvvm.vm.NodeViewModel; -import com.casic.dcms.mvvm.vm.PersonViewModel; import com.casic.dcms.utils.JzExoMedia; import com.casic.dcms.utils.OtherUtils; import com.casic.dcms.utils.StringHelper; @@ -40,7 +40,7 @@ private final Context context = this; private CaseViewModel caseViewModel; private NodeViewModel nodeViewModel; - private PersonViewModel personViewModel; + private CaseOperateViewModel operateViewModel; private CaseDetailBean.DataBean data = new CaseDetailBean.DataBean(); private List personBeans; private String id; @@ -66,7 +66,7 @@ caseViewModel.obtainCaseDetail(id); nodeViewModel = new ViewModelProvider(this).get(NodeViewModel.class); - personViewModel = new ViewModelProvider(this).get(PersonViewModel.class); + operateViewModel = new ViewModelProvider(this).get(CaseOperateViewModel.class); } @Override @@ -216,60 +216,12 @@ CaseNextNodeBean.DataBean nodeBean = nodeDataBeans.get(position); changeState = String.valueOf(nodeBean.getNextState()); operationKey = nodeBean.getOperationKey(); - - if (tag.equals("返回处理") || tag.equals("处置人员")) { - viewBinding.casePersonLayout.setVisibility(View.VISIBLE); - viewBinding.personLine.setVisibility(View.VISIBLE); - - //获取下级处置人员名单 - personViewModel.obtainSubordinatePerson(); - } else { - viewBinding.casePersonLayout.setVisibility(View.GONE); - viewBinding.personLine.setVisibility(View.GONE); - } } }).build().show(); } } }); - viewBinding.casePersonLayout.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (personBeans.size() >= 1) { - QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(context); - sheetBuilder.setTitle("处置人员"); - for (ProcessPersonBean.DataBean dataBean : personBeans) { - sheetBuilder.addItem(dataBean.getName()); - } - sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { - @Override - public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { - dialog.dismiss(); - viewBinding.caseHandlePersonView.setText(tag); - - taskUserId = personBeans.get(position).getId(); - } - }).build().show(); - } - } - }); - personViewModel.processPersonModel.observe(this, new Observer() { - @Override - public void onChanged(ProcessPersonBean resultBean) { - if (resultBean.isSuccess()) { - personBeans = resultBean.getData(); - if (personBeans.size() == 0) { - viewBinding.caseHandlePersonView.setText("无处置人员"); - } else { - ProcessPersonBean.DataBean dataBean = personBeans.get(0); - taskUserId = dataBean.getId(); - viewBinding.caseHandlePersonView.setText(dataBean.getName());//默认选择第一个 - } - } - } - }); - viewBinding.commonTipsLayout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -283,8 +235,6 @@ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { dialog.dismiss(); viewBinding.commonTipsView.setText(tag); - - viewBinding.optionEditView.setText(tag); } }).build().show(); } @@ -298,21 +248,27 @@ EasyToast.show(context, "还未选择操作类型"); return; } - if (optType.equals("处置人员") || optType.equals("返回处理")) { - //选择处理人员时,必选一个处置人员 - String handlePerson = viewBinding.caseHandlePersonView.getText().toString(); - if (handlePerson.equals("")) { - EasyToast.show(context, "当前状态必须指定处置员"); - return; - } - } - String optionInput = StringHelper.filterString(viewBinding.optionEditView.getText().toString()); + String optionInput = StringHelper.filterString(viewBinding.commonTipsView.getText().toString()); if (TextUtils.isEmpty(optionInput)) { EasyToast.show(context, "处理意见必须填写"); return; } -// caseViewModel.dispatcherHandleCase(data.getProcessId(), id, -// String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, taskUserId); + operateViewModel.dispatcherHandleCase(data.getProcessId(), id, + String.valueOf(data.getCaseState()), changeState, optionInput, operationKey, taskUserId); + } + }); + operateViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + OtherUtils.showLoadingDialog(context, "案卷处理中,请稍后..."); + } else if (loadState == LoadState.Success) { + OtherUtils.dismissLoadingDialog(); + finish(); + } else { + EasyToast.show(context, "处理失败,请重试"); + OtherUtils.dismissLoadingDialog(); + } } }); } diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseHandledFragment.java b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseHandledFragment.java index 0a65c11..7b65a54 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseHandledFragment.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseHandledFragment.java @@ -29,7 +29,7 @@ private WeakReferenceHandler weakReferenceHandler; private DeptHandleViewModel handleViewModel; private DeptTodoOrHandledAdapter adapter; - private List dataBeans = new ArrayList<>(); + private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -78,7 +78,7 @@ @Override public void onChanged(DeptCaseBean resultBean) { if (resultBean.isSuccess()) { - List dataRows = resultBean.getData().getRows(); + List dataRows = resultBean.getData().getRows(); if (isRefresh) { dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 dataBeans = dataRows; diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseProcessFragment.java b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseProcessFragment.java index 8d780d7..a7948e0 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseProcessFragment.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseProcessFragment.java @@ -30,7 +30,7 @@ private WeakReferenceHandler weakReferenceHandler; private DeptHandleViewModel handleViewModel; private DeptTodoOrHandledAdapter adapter; - private List dataBeans = new ArrayList<>(); + private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -79,7 +79,7 @@ @Override public void onChanged(DeptCaseBean resultBean) { if (resultBean.isSuccess()) { - List dataRows = resultBean.getData().getRows(); + List dataRows = resultBean.getData().getRows(); if (isRefresh) { dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 dataBeans = dataRows; diff --git a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseTodoFragment.java b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseTodoFragment.java index a807209..e4c8eaf 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseTodoFragment.java +++ b/app/src/main/java/com/casic/dcms/mvvm/view/fragment/dept/DeptCaseTodoFragment.java @@ -30,7 +30,7 @@ private WeakReferenceHandler weakReferenceHandler; private DeptHandleViewModel handleViewModel; private DeptTodoOrHandledAdapter adapter; - private List dataBeans = new ArrayList<>(); + private List dataBeans = new ArrayList<>(); private int pageIndex = 1; private boolean isRefresh, isLoadMore = false; @@ -79,7 +79,7 @@ @Override public void onChanged(DeptCaseBean resultBean) { if (resultBean.getCode() == 200) { - List dataRows = resultBean.getData().getRows(); + List dataRows = resultBean.getData().getRows(); if (isRefresh) { dataBeans.clear();//下拉刷新必须先清空之前的List,不然会出现数据重复的问题 dataBeans = dataRows; diff --git a/app/src/main/java/com/casic/dcms/mvvm/vm/CaseOperateViewModel.java b/app/src/main/java/com/casic/dcms/mvvm/vm/CaseOperateViewModel.java index 7969714..dbccfee 100644 --- a/app/src/main/java/com/casic/dcms/mvvm/vm/CaseOperateViewModel.java +++ b/app/src/main/java/com/casic/dcms/mvvm/vm/CaseOperateViewModel.java @@ -258,16 +258,17 @@ } public void dispatcherHandleCase(String processId, String bizId, String currState, String changeState, String remarks, String operationKey, String taskUserId) { + loadState.setValue(LoadState.Loading); Observable observable = RetrofitServiceManager.getDispatcherHandleCaseResult(processId, bizId, currState, changeState, remarks, operationKey, taskUserId); ObserverSubscriber.addSubscribe(observable, new OnObserverCallback() { @Override public void onCompleted() { - + loadState.setValue(LoadState.Success); } @Override public void onError(Throwable e) { - + loadState.setValue(LoadState.Fail); } @Override @@ -279,6 +280,8 @@ ActionResultBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); dispatcherHandleActionModel.setValue(resultBean); + } else { + loadState.setValue(LoadState.Fail); } } catch (IOException e) { e.printStackTrace(); diff --git a/app/src/main/res/layout/activity_dept_adjust.xml b/app/src/main/res/layout/activity_dept_adjust.xml index c3ec296..9b69187 100644 --- a/app/src/main/res/layout/activity_dept_adjust.xml +++ b/app/src/main/res/layout/activity_dept_adjust.xml @@ -228,29 +228,13 @@ - - - - - - - - - + android:text="处理意见" /> - - - - - - - - - + android:text="处理意见" /> - - - - - - - - - - - - - - - - - - - - + android:text="处理意见" /> + android:layout_height="match_parent" + android:layout_marginTop="@dimen/dp_5">