diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d5c56ab..deeff33 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -44,6 +44,9 @@ + + + + + + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public CaseListResultAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_case_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView leftTextView; + private TextView titleView; + private TextView contentView; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + leftTextView = itemView.findViewById(R.id.leftTextView); + titleView = itemView.findViewById(R.id.titleView); + contentView = itemView.findViewById(R.id.contentView); + } + + void bindView(CaseListResultBean.DataBean.RowsBean rowsBean) { + String eorcName = rowsBean.getEorcName(); + leftTextView.setText(eorcName.substring(0, 1)); + titleView.setText(rowsBean.getCasetypeName()); + contentView.setText(rowsBean.getCasetypeDetailName()); + } + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d5c56ab..deeff33 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -44,6 +44,9 @@ + + + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public CaseListResultAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_case_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView leftTextView; + private TextView titleView; + private TextView contentView; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + leftTextView = itemView.findViewById(R.id.leftTextView); + titleView = itemView.findViewById(R.id.titleView); + contentView = itemView.findViewById(R.id.contentView); + } + + void bindView(CaseListResultBean.DataBean.RowsBean rowsBean) { + String eorcName = rowsBean.getEorcName(); + leftTextView.setText(eorcName.substring(0, 1)); + titleView.setText(rowsBean.getCasetypeName()); + contentView.setText(rowsBean.getCasetypeDetailName()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java new file mode 100644 index 0000000..3ac2b7b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java @@ -0,0 +1,342 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseListResultBean { + + /** + * code : 200 + * data : {"rows":[{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}],"total":3} + * message : 请求成功 + * success : true + */ + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + /** + * rows : [{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}] + * total : 3 + */ + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * isPostpone : 0 + * description : 音频测试 + * createUserName : 超级管理员 + * source : 11 + * eorcName : 事件 + * casetypeDetailName : 违规高空悬吊作业 + * remainingTime : 超时729小时6分钟 + * casetypeName : 其他事件 + * processId : 2680008 + * caseState : 0 + * id : 1372735305680994306 + * reportSupervisorId : + * fieldintro : 音频测试 + * lat : 27.75386000913368 + * caseStateName : 待核实 + * lng : 116.07951602267566 + * isOvertime : 1 + * casetypeDetailCode : 01 + * onedeptid : + * eorc : 1 + * caseid : 202103190001 + * casetypeCode : 06 + * createUser : 1 + * nodeLimittime : 2021-03-19 11:23:03 + * sourceName : 热线电话 + * reportTime : 2021-03-19 10:22:56 + */ + + private int isPostpone; + private String description; + private String createUserName; + private int source; + private String eorcName; + private String casetypeDetailName; + private String remainingTime; + private String casetypeName; + private String processId; + private int caseState; + private String id; + private String reportSupervisorId; + private String fieldintro; + private String lat; + private String caseStateName; + private String lng; + private String isOvertime; + private String casetypeDetailCode; + private String onedeptid; + private String eorc; + private String caseid; + private String casetypeCode; + private String createUser; + private String nodeLimittime; + private String sourceName; + private String reportTime; + + public int getIsPostpone() { + return isPostpone; + } + + public void setIsPostpone(int isPostpone) { + this.isPostpone = isPostpone; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public int getSource() { + return source; + } + + public void setSource(int source) { + this.source = source; + } + + public String getEorcName() { + return eorcName; + } + + public void setEorcName(String eorcName) { + this.eorcName = eorcName; + } + + public String getCasetypeDetailName() { + return casetypeDetailName; + } + + public void setCasetypeDetailName(String casetypeDetailName) { + this.casetypeDetailName = casetypeDetailName; + } + + public String getRemainingTime() { + return remainingTime; + } + + public void setRemainingTime(String remainingTime) { + this.remainingTime = remainingTime; + } + + public String getCasetypeName() { + return casetypeName; + } + + public void setCasetypeName(String casetypeName) { + this.casetypeName = casetypeName; + } + + public String getProcessId() { + return processId; + } + + public void setProcessId(String processId) { + this.processId = processId; + } + + public int getCaseState() { + return caseState; + } + + public void setCaseState(int caseState) { + this.caseState = caseState; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getReportSupervisorId() { + return reportSupervisorId; + } + + public void setReportSupervisorId(String reportSupervisorId) { + this.reportSupervisorId = reportSupervisorId; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getLat() { + return lat; + } + + public void setLat(String lat) { + this.lat = lat; + } + + public String getCaseStateName() { + return caseStateName; + } + + public void setCaseStateName(String caseStateName) { + this.caseStateName = caseStateName; + } + + public String getLng() { + return lng; + } + + public void setLng(String lng) { + this.lng = lng; + } + + public String getIsOvertime() { + return isOvertime; + } + + public void setIsOvertime(String isOvertime) { + this.isOvertime = isOvertime; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getOnedeptid() { + return onedeptid; + } + + public void setOnedeptid(String onedeptid) { + this.onedeptid = onedeptid; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCaseid() { + return caseid; + } + + public void setCaseid(String caseid) { + this.caseid = caseid; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getNodeLimittime() { + return nodeLimittime; + } + + public void setNodeLimittime(String nodeLimittime) { + this.nodeLimittime = nodeLimittime; + } + + public String getSourceName() { + return sourceName; + } + + public void setSourceName(String sourceName) { + this.sourceName = sourceName; + } + + public String getReportTime() { + return reportTime; + } + + public void setReportTime(String reportTime) { + this.reportTime = reportTime; + } + } + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d5c56ab..deeff33 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -44,6 +44,9 @@ + + + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public CaseListResultAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_case_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView leftTextView; + private TextView titleView; + private TextView contentView; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + leftTextView = itemView.findViewById(R.id.leftTextView); + titleView = itemView.findViewById(R.id.titleView); + contentView = itemView.findViewById(R.id.contentView); + } + + void bindView(CaseListResultBean.DataBean.RowsBean rowsBean) { + String eorcName = rowsBean.getEorcName(); + leftTextView.setText(eorcName.substring(0, 1)); + titleView.setText(rowsBean.getCasetypeName()); + contentView.setText(rowsBean.getCasetypeDetailName()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java new file mode 100644 index 0000000..3ac2b7b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java @@ -0,0 +1,342 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseListResultBean { + + /** + * code : 200 + * data : {"rows":[{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}],"total":3} + * message : 请求成功 + * success : true + */ + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + /** + * rows : [{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}] + * total : 3 + */ + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * isPostpone : 0 + * description : 音频测试 + * createUserName : 超级管理员 + * source : 11 + * eorcName : 事件 + * casetypeDetailName : 违规高空悬吊作业 + * remainingTime : 超时729小时6分钟 + * casetypeName : 其他事件 + * processId : 2680008 + * caseState : 0 + * id : 1372735305680994306 + * reportSupervisorId : + * fieldintro : 音频测试 + * lat : 27.75386000913368 + * caseStateName : 待核实 + * lng : 116.07951602267566 + * isOvertime : 1 + * casetypeDetailCode : 01 + * onedeptid : + * eorc : 1 + * caseid : 202103190001 + * casetypeCode : 06 + * createUser : 1 + * nodeLimittime : 2021-03-19 11:23:03 + * sourceName : 热线电话 + * reportTime : 2021-03-19 10:22:56 + */ + + private int isPostpone; + private String description; + private String createUserName; + private int source; + private String eorcName; + private String casetypeDetailName; + private String remainingTime; + private String casetypeName; + private String processId; + private int caseState; + private String id; + private String reportSupervisorId; + private String fieldintro; + private String lat; + private String caseStateName; + private String lng; + private String isOvertime; + private String casetypeDetailCode; + private String onedeptid; + private String eorc; + private String caseid; + private String casetypeCode; + private String createUser; + private String nodeLimittime; + private String sourceName; + private String reportTime; + + public int getIsPostpone() { + return isPostpone; + } + + public void setIsPostpone(int isPostpone) { + this.isPostpone = isPostpone; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public int getSource() { + return source; + } + + public void setSource(int source) { + this.source = source; + } + + public String getEorcName() { + return eorcName; + } + + public void setEorcName(String eorcName) { + this.eorcName = eorcName; + } + + public String getCasetypeDetailName() { + return casetypeDetailName; + } + + public void setCasetypeDetailName(String casetypeDetailName) { + this.casetypeDetailName = casetypeDetailName; + } + + public String getRemainingTime() { + return remainingTime; + } + + public void setRemainingTime(String remainingTime) { + this.remainingTime = remainingTime; + } + + public String getCasetypeName() { + return casetypeName; + } + + public void setCasetypeName(String casetypeName) { + this.casetypeName = casetypeName; + } + + public String getProcessId() { + return processId; + } + + public void setProcessId(String processId) { + this.processId = processId; + } + + public int getCaseState() { + return caseState; + } + + public void setCaseState(int caseState) { + this.caseState = caseState; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getReportSupervisorId() { + return reportSupervisorId; + } + + public void setReportSupervisorId(String reportSupervisorId) { + this.reportSupervisorId = reportSupervisorId; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getLat() { + return lat; + } + + public void setLat(String lat) { + this.lat = lat; + } + + public String getCaseStateName() { + return caseStateName; + } + + public void setCaseStateName(String caseStateName) { + this.caseStateName = caseStateName; + } + + public String getLng() { + return lng; + } + + public void setLng(String lng) { + this.lng = lng; + } + + public String getIsOvertime() { + return isOvertime; + } + + public void setIsOvertime(String isOvertime) { + this.isOvertime = isOvertime; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getOnedeptid() { + return onedeptid; + } + + public void setOnedeptid(String onedeptid) { + this.onedeptid = onedeptid; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCaseid() { + return caseid; + } + + public void setCaseid(String caseid) { + this.caseid = caseid; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getNodeLimittime() { + return nodeLimittime; + } + + public void setNodeLimittime(String nodeLimittime) { + this.nodeLimittime = nodeLimittime; + } + + public String getSourceName() { + return sourceName; + } + + public void setSourceName(String sourceName) { + this.sourceName = sourceName; + } + + public String getReportTime() { + return reportTime; + } + + public void setReportTime(String reportTime) { + this.reportTime = reportTime; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java new file mode 100644 index 0000000..6918d00 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java @@ -0,0 +1,86 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseStatusBean { + + /** + * code : 200.0 + * data : [{"name":"待核实","id":"92","value":"0"},{"name":"核实无效","id":"93","value":"1"},{"name":"待立案","id":"94","value":"10"},{"name":"预立案","id":"95","value":"11"},{"name":"待派发","id":"96","value":"20"},{"name":"挂起","id":"98","value":"22"},{"name":"预派发","id":"99","value":"23"},{"name":"待处理","id":"100","value":"30"},{"name":"二级处理审核","id":"101","value":"31"},{"name":"调整批示","id":"102","value":"36"},{"name":"部门调整批示","id":"103","value":"37"},{"name":"处置通处理","id":"104","value":"39"},{"name":"待调整","id":"105","value":"40"},{"name":"授权审核","id":"106","value":"43"},{"name":"部门授权审核","id":"107","value":"45"},{"name":"处理审核","id":"108","value":"46"},{"name":"待派发核查","id":"109","value":"50"},{"name":"现场核查","id":"110","value":"51"},{"name":"核查通过","id":"112","value":"60"},{"name":"核查未通过","id":"113","value":"61"},{"name":"快速上报","id":"114","value":"62"},{"name":"待结案","id":"115","value":"63"},{"name":"正常结案","id":"116","value":"70"},{"name":"案件作废","id":"117","value":"75"},{"name":"不予立案","id":"118","value":"76"},{"name":"销案","id":"119","value":"77"},{"name":"处理完成","id":"120","value":"301"},{"name":"申请调整","id":"121","value":"302"},{"name":"申请延期","id":"122","value":"303"},{"name":"申请缓办","id":"158","value":"304"},{"name":"待派发核实","id":"173","value":"3"}] + * message : 请求成功 + * success : true + */ + + private double code; + private String message; + private boolean success; + private List data; + + public double getCode() { + return code; + } + + public void setCode(double code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 待核实 + * id : 92 + * value : 0 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d5c56ab..deeff33 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -44,6 +44,9 @@ + + + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public CaseListResultAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_case_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView leftTextView; + private TextView titleView; + private TextView contentView; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + leftTextView = itemView.findViewById(R.id.leftTextView); + titleView = itemView.findViewById(R.id.titleView); + contentView = itemView.findViewById(R.id.contentView); + } + + void bindView(CaseListResultBean.DataBean.RowsBean rowsBean) { + String eorcName = rowsBean.getEorcName(); + leftTextView.setText(eorcName.substring(0, 1)); + titleView.setText(rowsBean.getCasetypeName()); + contentView.setText(rowsBean.getCasetypeDetailName()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java new file mode 100644 index 0000000..3ac2b7b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java @@ -0,0 +1,342 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseListResultBean { + + /** + * code : 200 + * data : {"rows":[{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}],"total":3} + * message : 请求成功 + * success : true + */ + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + /** + * rows : [{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}] + * total : 3 + */ + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * isPostpone : 0 + * description : 音频测试 + * createUserName : 超级管理员 + * source : 11 + * eorcName : 事件 + * casetypeDetailName : 违规高空悬吊作业 + * remainingTime : 超时729小时6分钟 + * casetypeName : 其他事件 + * processId : 2680008 + * caseState : 0 + * id : 1372735305680994306 + * reportSupervisorId : + * fieldintro : 音频测试 + * lat : 27.75386000913368 + * caseStateName : 待核实 + * lng : 116.07951602267566 + * isOvertime : 1 + * casetypeDetailCode : 01 + * onedeptid : + * eorc : 1 + * caseid : 202103190001 + * casetypeCode : 06 + * createUser : 1 + * nodeLimittime : 2021-03-19 11:23:03 + * sourceName : 热线电话 + * reportTime : 2021-03-19 10:22:56 + */ + + private int isPostpone; + private String description; + private String createUserName; + private int source; + private String eorcName; + private String casetypeDetailName; + private String remainingTime; + private String casetypeName; + private String processId; + private int caseState; + private String id; + private String reportSupervisorId; + private String fieldintro; + private String lat; + private String caseStateName; + private String lng; + private String isOvertime; + private String casetypeDetailCode; + private String onedeptid; + private String eorc; + private String caseid; + private String casetypeCode; + private String createUser; + private String nodeLimittime; + private String sourceName; + private String reportTime; + + public int getIsPostpone() { + return isPostpone; + } + + public void setIsPostpone(int isPostpone) { + this.isPostpone = isPostpone; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public int getSource() { + return source; + } + + public void setSource(int source) { + this.source = source; + } + + public String getEorcName() { + return eorcName; + } + + public void setEorcName(String eorcName) { + this.eorcName = eorcName; + } + + public String getCasetypeDetailName() { + return casetypeDetailName; + } + + public void setCasetypeDetailName(String casetypeDetailName) { + this.casetypeDetailName = casetypeDetailName; + } + + public String getRemainingTime() { + return remainingTime; + } + + public void setRemainingTime(String remainingTime) { + this.remainingTime = remainingTime; + } + + public String getCasetypeName() { + return casetypeName; + } + + public void setCasetypeName(String casetypeName) { + this.casetypeName = casetypeName; + } + + public String getProcessId() { + return processId; + } + + public void setProcessId(String processId) { + this.processId = processId; + } + + public int getCaseState() { + return caseState; + } + + public void setCaseState(int caseState) { + this.caseState = caseState; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getReportSupervisorId() { + return reportSupervisorId; + } + + public void setReportSupervisorId(String reportSupervisorId) { + this.reportSupervisorId = reportSupervisorId; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getLat() { + return lat; + } + + public void setLat(String lat) { + this.lat = lat; + } + + public String getCaseStateName() { + return caseStateName; + } + + public void setCaseStateName(String caseStateName) { + this.caseStateName = caseStateName; + } + + public String getLng() { + return lng; + } + + public void setLng(String lng) { + this.lng = lng; + } + + public String getIsOvertime() { + return isOvertime; + } + + public void setIsOvertime(String isOvertime) { + this.isOvertime = isOvertime; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getOnedeptid() { + return onedeptid; + } + + public void setOnedeptid(String onedeptid) { + this.onedeptid = onedeptid; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCaseid() { + return caseid; + } + + public void setCaseid(String caseid) { + this.caseid = caseid; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getNodeLimittime() { + return nodeLimittime; + } + + public void setNodeLimittime(String nodeLimittime) { + this.nodeLimittime = nodeLimittime; + } + + public String getSourceName() { + return sourceName; + } + + public void setSourceName(String sourceName) { + this.sourceName = sourceName; + } + + public String getReportTime() { + return reportTime; + } + + public void setReportTime(String reportTime) { + this.reportTime = reportTime; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java new file mode 100644 index 0000000..6918d00 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java @@ -0,0 +1,86 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseStatusBean { + + /** + * code : 200.0 + * data : [{"name":"待核实","id":"92","value":"0"},{"name":"核实无效","id":"93","value":"1"},{"name":"待立案","id":"94","value":"10"},{"name":"预立案","id":"95","value":"11"},{"name":"待派发","id":"96","value":"20"},{"name":"挂起","id":"98","value":"22"},{"name":"预派发","id":"99","value":"23"},{"name":"待处理","id":"100","value":"30"},{"name":"二级处理审核","id":"101","value":"31"},{"name":"调整批示","id":"102","value":"36"},{"name":"部门调整批示","id":"103","value":"37"},{"name":"处置通处理","id":"104","value":"39"},{"name":"待调整","id":"105","value":"40"},{"name":"授权审核","id":"106","value":"43"},{"name":"部门授权审核","id":"107","value":"45"},{"name":"处理审核","id":"108","value":"46"},{"name":"待派发核查","id":"109","value":"50"},{"name":"现场核查","id":"110","value":"51"},{"name":"核查通过","id":"112","value":"60"},{"name":"核查未通过","id":"113","value":"61"},{"name":"快速上报","id":"114","value":"62"},{"name":"待结案","id":"115","value":"63"},{"name":"正常结案","id":"116","value":"70"},{"name":"案件作废","id":"117","value":"75"},{"name":"不予立案","id":"118","value":"76"},{"name":"销案","id":"119","value":"77"},{"name":"处理完成","id":"120","value":"301"},{"name":"申请调整","id":"121","value":"302"},{"name":"申请延期","id":"122","value":"303"},{"name":"申请缓办","id":"158","value":"304"},{"name":"待派发核实","id":"173","value":"3"}] + * message : 请求成功 + * success : true + */ + + private double code; + private String message; + private boolean success; + private List data; + + public double getCode() { + return code; + } + + public void setCode(double code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 待核实 + * id : 92 + * value : 0 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java new file mode 100644 index 0000000..0a939d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java @@ -0,0 +1,52 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseListModelImpl implements ICaseListModel { + + private OnGetCaseListListener listener; + + public CaseListModelImpl(OnGetCaseListListener caseListListener) { + this.listener = caseListListener; + } + + public interface OnGetCaseListListener { + void onSuccess(CaseListResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { + Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseState, + registerTimeBegin, registerTimeEnd, eorc, limit, offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseListResultBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d5c56ab..deeff33 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -44,6 +44,9 @@ + + + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public CaseListResultAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_case_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView leftTextView; + private TextView titleView; + private TextView contentView; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + leftTextView = itemView.findViewById(R.id.leftTextView); + titleView = itemView.findViewById(R.id.titleView); + contentView = itemView.findViewById(R.id.contentView); + } + + void bindView(CaseListResultBean.DataBean.RowsBean rowsBean) { + String eorcName = rowsBean.getEorcName(); + leftTextView.setText(eorcName.substring(0, 1)); + titleView.setText(rowsBean.getCasetypeName()); + contentView.setText(rowsBean.getCasetypeDetailName()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java new file mode 100644 index 0000000..3ac2b7b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java @@ -0,0 +1,342 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseListResultBean { + + /** + * code : 200 + * data : {"rows":[{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}],"total":3} + * message : 请求成功 + * success : true + */ + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + /** + * rows : [{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}] + * total : 3 + */ + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * isPostpone : 0 + * description : 音频测试 + * createUserName : 超级管理员 + * source : 11 + * eorcName : 事件 + * casetypeDetailName : 违规高空悬吊作业 + * remainingTime : 超时729小时6分钟 + * casetypeName : 其他事件 + * processId : 2680008 + * caseState : 0 + * id : 1372735305680994306 + * reportSupervisorId : + * fieldintro : 音频测试 + * lat : 27.75386000913368 + * caseStateName : 待核实 + * lng : 116.07951602267566 + * isOvertime : 1 + * casetypeDetailCode : 01 + * onedeptid : + * eorc : 1 + * caseid : 202103190001 + * casetypeCode : 06 + * createUser : 1 + * nodeLimittime : 2021-03-19 11:23:03 + * sourceName : 热线电话 + * reportTime : 2021-03-19 10:22:56 + */ + + private int isPostpone; + private String description; + private String createUserName; + private int source; + private String eorcName; + private String casetypeDetailName; + private String remainingTime; + private String casetypeName; + private String processId; + private int caseState; + private String id; + private String reportSupervisorId; + private String fieldintro; + private String lat; + private String caseStateName; + private String lng; + private String isOvertime; + private String casetypeDetailCode; + private String onedeptid; + private String eorc; + private String caseid; + private String casetypeCode; + private String createUser; + private String nodeLimittime; + private String sourceName; + private String reportTime; + + public int getIsPostpone() { + return isPostpone; + } + + public void setIsPostpone(int isPostpone) { + this.isPostpone = isPostpone; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public int getSource() { + return source; + } + + public void setSource(int source) { + this.source = source; + } + + public String getEorcName() { + return eorcName; + } + + public void setEorcName(String eorcName) { + this.eorcName = eorcName; + } + + public String getCasetypeDetailName() { + return casetypeDetailName; + } + + public void setCasetypeDetailName(String casetypeDetailName) { + this.casetypeDetailName = casetypeDetailName; + } + + public String getRemainingTime() { + return remainingTime; + } + + public void setRemainingTime(String remainingTime) { + this.remainingTime = remainingTime; + } + + public String getCasetypeName() { + return casetypeName; + } + + public void setCasetypeName(String casetypeName) { + this.casetypeName = casetypeName; + } + + public String getProcessId() { + return processId; + } + + public void setProcessId(String processId) { + this.processId = processId; + } + + public int getCaseState() { + return caseState; + } + + public void setCaseState(int caseState) { + this.caseState = caseState; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getReportSupervisorId() { + return reportSupervisorId; + } + + public void setReportSupervisorId(String reportSupervisorId) { + this.reportSupervisorId = reportSupervisorId; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getLat() { + return lat; + } + + public void setLat(String lat) { + this.lat = lat; + } + + public String getCaseStateName() { + return caseStateName; + } + + public void setCaseStateName(String caseStateName) { + this.caseStateName = caseStateName; + } + + public String getLng() { + return lng; + } + + public void setLng(String lng) { + this.lng = lng; + } + + public String getIsOvertime() { + return isOvertime; + } + + public void setIsOvertime(String isOvertime) { + this.isOvertime = isOvertime; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getOnedeptid() { + return onedeptid; + } + + public void setOnedeptid(String onedeptid) { + this.onedeptid = onedeptid; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCaseid() { + return caseid; + } + + public void setCaseid(String caseid) { + this.caseid = caseid; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getNodeLimittime() { + return nodeLimittime; + } + + public void setNodeLimittime(String nodeLimittime) { + this.nodeLimittime = nodeLimittime; + } + + public String getSourceName() { + return sourceName; + } + + public void setSourceName(String sourceName) { + this.sourceName = sourceName; + } + + public String getReportTime() { + return reportTime; + } + + public void setReportTime(String reportTime) { + this.reportTime = reportTime; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java new file mode 100644 index 0000000..6918d00 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java @@ -0,0 +1,86 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseStatusBean { + + /** + * code : 200.0 + * data : [{"name":"待核实","id":"92","value":"0"},{"name":"核实无效","id":"93","value":"1"},{"name":"待立案","id":"94","value":"10"},{"name":"预立案","id":"95","value":"11"},{"name":"待派发","id":"96","value":"20"},{"name":"挂起","id":"98","value":"22"},{"name":"预派发","id":"99","value":"23"},{"name":"待处理","id":"100","value":"30"},{"name":"二级处理审核","id":"101","value":"31"},{"name":"调整批示","id":"102","value":"36"},{"name":"部门调整批示","id":"103","value":"37"},{"name":"处置通处理","id":"104","value":"39"},{"name":"待调整","id":"105","value":"40"},{"name":"授权审核","id":"106","value":"43"},{"name":"部门授权审核","id":"107","value":"45"},{"name":"处理审核","id":"108","value":"46"},{"name":"待派发核查","id":"109","value":"50"},{"name":"现场核查","id":"110","value":"51"},{"name":"核查通过","id":"112","value":"60"},{"name":"核查未通过","id":"113","value":"61"},{"name":"快速上报","id":"114","value":"62"},{"name":"待结案","id":"115","value":"63"},{"name":"正常结案","id":"116","value":"70"},{"name":"案件作废","id":"117","value":"75"},{"name":"不予立案","id":"118","value":"76"},{"name":"销案","id":"119","value":"77"},{"name":"处理完成","id":"120","value":"301"},{"name":"申请调整","id":"121","value":"302"},{"name":"申请延期","id":"122","value":"303"},{"name":"申请缓办","id":"158","value":"304"},{"name":"待派发核实","id":"173","value":"3"}] + * message : 请求成功 + * success : true + */ + + private double code; + private String message; + private boolean success; + private List data; + + public double getCode() { + return code; + } + + public void setCode(double code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 待核实 + * id : 92 + * value : 0 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java new file mode 100644 index 0000000..0a939d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java @@ -0,0 +1,52 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseListModelImpl implements ICaseListModel { + + private OnGetCaseListListener listener; + + public CaseListModelImpl(OnGetCaseListListener caseListListener) { + this.listener = caseListListener; + } + + public interface OnGetCaseListListener { + void onSuccess(CaseListResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { + Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseState, + registerTimeBegin, registerTimeEnd, eorc, limit, offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseListResultBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java new file mode 100644 index 0000000..65e1c13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseStatusModelImpl implements ICaseStatusModel { + + private OnGetCaseStatusListener listener; + + public CaseStatusModelImpl(OnGetCaseStatusListener onGetCaseStatusListener) { + this.listener = onGetCaseStatusListener; + } + + public interface OnGetCaseStatusListener { + void onSuccess(CaseStatusBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCaseStatusResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseStatusBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d5c56ab..deeff33 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -44,6 +44,9 @@ + + + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public CaseListResultAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_case_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView leftTextView; + private TextView titleView; + private TextView contentView; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + leftTextView = itemView.findViewById(R.id.leftTextView); + titleView = itemView.findViewById(R.id.titleView); + contentView = itemView.findViewById(R.id.contentView); + } + + void bindView(CaseListResultBean.DataBean.RowsBean rowsBean) { + String eorcName = rowsBean.getEorcName(); + leftTextView.setText(eorcName.substring(0, 1)); + titleView.setText(rowsBean.getCasetypeName()); + contentView.setText(rowsBean.getCasetypeDetailName()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java new file mode 100644 index 0000000..3ac2b7b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java @@ -0,0 +1,342 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseListResultBean { + + /** + * code : 200 + * data : {"rows":[{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}],"total":3} + * message : 请求成功 + * success : true + */ + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + /** + * rows : [{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}] + * total : 3 + */ + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * isPostpone : 0 + * description : 音频测试 + * createUserName : 超级管理员 + * source : 11 + * eorcName : 事件 + * casetypeDetailName : 违规高空悬吊作业 + * remainingTime : 超时729小时6分钟 + * casetypeName : 其他事件 + * processId : 2680008 + * caseState : 0 + * id : 1372735305680994306 + * reportSupervisorId : + * fieldintro : 音频测试 + * lat : 27.75386000913368 + * caseStateName : 待核实 + * lng : 116.07951602267566 + * isOvertime : 1 + * casetypeDetailCode : 01 + * onedeptid : + * eorc : 1 + * caseid : 202103190001 + * casetypeCode : 06 + * createUser : 1 + * nodeLimittime : 2021-03-19 11:23:03 + * sourceName : 热线电话 + * reportTime : 2021-03-19 10:22:56 + */ + + private int isPostpone; + private String description; + private String createUserName; + private int source; + private String eorcName; + private String casetypeDetailName; + private String remainingTime; + private String casetypeName; + private String processId; + private int caseState; + private String id; + private String reportSupervisorId; + private String fieldintro; + private String lat; + private String caseStateName; + private String lng; + private String isOvertime; + private String casetypeDetailCode; + private String onedeptid; + private String eorc; + private String caseid; + private String casetypeCode; + private String createUser; + private String nodeLimittime; + private String sourceName; + private String reportTime; + + public int getIsPostpone() { + return isPostpone; + } + + public void setIsPostpone(int isPostpone) { + this.isPostpone = isPostpone; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public int getSource() { + return source; + } + + public void setSource(int source) { + this.source = source; + } + + public String getEorcName() { + return eorcName; + } + + public void setEorcName(String eorcName) { + this.eorcName = eorcName; + } + + public String getCasetypeDetailName() { + return casetypeDetailName; + } + + public void setCasetypeDetailName(String casetypeDetailName) { + this.casetypeDetailName = casetypeDetailName; + } + + public String getRemainingTime() { + return remainingTime; + } + + public void setRemainingTime(String remainingTime) { + this.remainingTime = remainingTime; + } + + public String getCasetypeName() { + return casetypeName; + } + + public void setCasetypeName(String casetypeName) { + this.casetypeName = casetypeName; + } + + public String getProcessId() { + return processId; + } + + public void setProcessId(String processId) { + this.processId = processId; + } + + public int getCaseState() { + return caseState; + } + + public void setCaseState(int caseState) { + this.caseState = caseState; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getReportSupervisorId() { + return reportSupervisorId; + } + + public void setReportSupervisorId(String reportSupervisorId) { + this.reportSupervisorId = reportSupervisorId; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getLat() { + return lat; + } + + public void setLat(String lat) { + this.lat = lat; + } + + public String getCaseStateName() { + return caseStateName; + } + + public void setCaseStateName(String caseStateName) { + this.caseStateName = caseStateName; + } + + public String getLng() { + return lng; + } + + public void setLng(String lng) { + this.lng = lng; + } + + public String getIsOvertime() { + return isOvertime; + } + + public void setIsOvertime(String isOvertime) { + this.isOvertime = isOvertime; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getOnedeptid() { + return onedeptid; + } + + public void setOnedeptid(String onedeptid) { + this.onedeptid = onedeptid; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCaseid() { + return caseid; + } + + public void setCaseid(String caseid) { + this.caseid = caseid; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getNodeLimittime() { + return nodeLimittime; + } + + public void setNodeLimittime(String nodeLimittime) { + this.nodeLimittime = nodeLimittime; + } + + public String getSourceName() { + return sourceName; + } + + public void setSourceName(String sourceName) { + this.sourceName = sourceName; + } + + public String getReportTime() { + return reportTime; + } + + public void setReportTime(String reportTime) { + this.reportTime = reportTime; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java new file mode 100644 index 0000000..6918d00 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java @@ -0,0 +1,86 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseStatusBean { + + /** + * code : 200.0 + * data : [{"name":"待核实","id":"92","value":"0"},{"name":"核实无效","id":"93","value":"1"},{"name":"待立案","id":"94","value":"10"},{"name":"预立案","id":"95","value":"11"},{"name":"待派发","id":"96","value":"20"},{"name":"挂起","id":"98","value":"22"},{"name":"预派发","id":"99","value":"23"},{"name":"待处理","id":"100","value":"30"},{"name":"二级处理审核","id":"101","value":"31"},{"name":"调整批示","id":"102","value":"36"},{"name":"部门调整批示","id":"103","value":"37"},{"name":"处置通处理","id":"104","value":"39"},{"name":"待调整","id":"105","value":"40"},{"name":"授权审核","id":"106","value":"43"},{"name":"部门授权审核","id":"107","value":"45"},{"name":"处理审核","id":"108","value":"46"},{"name":"待派发核查","id":"109","value":"50"},{"name":"现场核查","id":"110","value":"51"},{"name":"核查通过","id":"112","value":"60"},{"name":"核查未通过","id":"113","value":"61"},{"name":"快速上报","id":"114","value":"62"},{"name":"待结案","id":"115","value":"63"},{"name":"正常结案","id":"116","value":"70"},{"name":"案件作废","id":"117","value":"75"},{"name":"不予立案","id":"118","value":"76"},{"name":"销案","id":"119","value":"77"},{"name":"处理完成","id":"120","value":"301"},{"name":"申请调整","id":"121","value":"302"},{"name":"申请延期","id":"122","value":"303"},{"name":"申请缓办","id":"158","value":"304"},{"name":"待派发核实","id":"173","value":"3"}] + * message : 请求成功 + * success : true + */ + + private double code; + private String message; + private boolean success; + private List data; + + public double getCode() { + return code; + } + + public void setCode(double code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 待核实 + * id : 92 + * value : 0 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java new file mode 100644 index 0000000..0a939d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java @@ -0,0 +1,52 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseListModelImpl implements ICaseListModel { + + private OnGetCaseListListener listener; + + public CaseListModelImpl(OnGetCaseListListener caseListListener) { + this.listener = caseListListener; + } + + public interface OnGetCaseListListener { + void onSuccess(CaseListResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { + Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseState, + registerTimeBegin, registerTimeEnd, eorc, limit, offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseListResultBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java new file mode 100644 index 0000000..65e1c13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseStatusModelImpl implements ICaseStatusModel { + + private OnGetCaseStatusListener listener; + + public CaseStatusModelImpl(OnGetCaseStatusListener onGetCaseStatusListener) { + this.listener = onGetCaseStatusListener; + } + + public interface OnGetCaseStatusListener { + void onSuccess(CaseStatusBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCaseStatusResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseStatusBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java new file mode 100644 index 0000000..7968c67 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseListModel { + Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, + int limit, int offset); +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d5c56ab..deeff33 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -44,6 +44,9 @@ + + + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public CaseListResultAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_case_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView leftTextView; + private TextView titleView; + private TextView contentView; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + leftTextView = itemView.findViewById(R.id.leftTextView); + titleView = itemView.findViewById(R.id.titleView); + contentView = itemView.findViewById(R.id.contentView); + } + + void bindView(CaseListResultBean.DataBean.RowsBean rowsBean) { + String eorcName = rowsBean.getEorcName(); + leftTextView.setText(eorcName.substring(0, 1)); + titleView.setText(rowsBean.getCasetypeName()); + contentView.setText(rowsBean.getCasetypeDetailName()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java new file mode 100644 index 0000000..3ac2b7b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java @@ -0,0 +1,342 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseListResultBean { + + /** + * code : 200 + * data : {"rows":[{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}],"total":3} + * message : 请求成功 + * success : true + */ + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + /** + * rows : [{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}] + * total : 3 + */ + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * isPostpone : 0 + * description : 音频测试 + * createUserName : 超级管理员 + * source : 11 + * eorcName : 事件 + * casetypeDetailName : 违规高空悬吊作业 + * remainingTime : 超时729小时6分钟 + * casetypeName : 其他事件 + * processId : 2680008 + * caseState : 0 + * id : 1372735305680994306 + * reportSupervisorId : + * fieldintro : 音频测试 + * lat : 27.75386000913368 + * caseStateName : 待核实 + * lng : 116.07951602267566 + * isOvertime : 1 + * casetypeDetailCode : 01 + * onedeptid : + * eorc : 1 + * caseid : 202103190001 + * casetypeCode : 06 + * createUser : 1 + * nodeLimittime : 2021-03-19 11:23:03 + * sourceName : 热线电话 + * reportTime : 2021-03-19 10:22:56 + */ + + private int isPostpone; + private String description; + private String createUserName; + private int source; + private String eorcName; + private String casetypeDetailName; + private String remainingTime; + private String casetypeName; + private String processId; + private int caseState; + private String id; + private String reportSupervisorId; + private String fieldintro; + private String lat; + private String caseStateName; + private String lng; + private String isOvertime; + private String casetypeDetailCode; + private String onedeptid; + private String eorc; + private String caseid; + private String casetypeCode; + private String createUser; + private String nodeLimittime; + private String sourceName; + private String reportTime; + + public int getIsPostpone() { + return isPostpone; + } + + public void setIsPostpone(int isPostpone) { + this.isPostpone = isPostpone; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public int getSource() { + return source; + } + + public void setSource(int source) { + this.source = source; + } + + public String getEorcName() { + return eorcName; + } + + public void setEorcName(String eorcName) { + this.eorcName = eorcName; + } + + public String getCasetypeDetailName() { + return casetypeDetailName; + } + + public void setCasetypeDetailName(String casetypeDetailName) { + this.casetypeDetailName = casetypeDetailName; + } + + public String getRemainingTime() { + return remainingTime; + } + + public void setRemainingTime(String remainingTime) { + this.remainingTime = remainingTime; + } + + public String getCasetypeName() { + return casetypeName; + } + + public void setCasetypeName(String casetypeName) { + this.casetypeName = casetypeName; + } + + public String getProcessId() { + return processId; + } + + public void setProcessId(String processId) { + this.processId = processId; + } + + public int getCaseState() { + return caseState; + } + + public void setCaseState(int caseState) { + this.caseState = caseState; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getReportSupervisorId() { + return reportSupervisorId; + } + + public void setReportSupervisorId(String reportSupervisorId) { + this.reportSupervisorId = reportSupervisorId; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getLat() { + return lat; + } + + public void setLat(String lat) { + this.lat = lat; + } + + public String getCaseStateName() { + return caseStateName; + } + + public void setCaseStateName(String caseStateName) { + this.caseStateName = caseStateName; + } + + public String getLng() { + return lng; + } + + public void setLng(String lng) { + this.lng = lng; + } + + public String getIsOvertime() { + return isOvertime; + } + + public void setIsOvertime(String isOvertime) { + this.isOvertime = isOvertime; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getOnedeptid() { + return onedeptid; + } + + public void setOnedeptid(String onedeptid) { + this.onedeptid = onedeptid; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCaseid() { + return caseid; + } + + public void setCaseid(String caseid) { + this.caseid = caseid; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getNodeLimittime() { + return nodeLimittime; + } + + public void setNodeLimittime(String nodeLimittime) { + this.nodeLimittime = nodeLimittime; + } + + public String getSourceName() { + return sourceName; + } + + public void setSourceName(String sourceName) { + this.sourceName = sourceName; + } + + public String getReportTime() { + return reportTime; + } + + public void setReportTime(String reportTime) { + this.reportTime = reportTime; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java new file mode 100644 index 0000000..6918d00 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java @@ -0,0 +1,86 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseStatusBean { + + /** + * code : 200.0 + * data : [{"name":"待核实","id":"92","value":"0"},{"name":"核实无效","id":"93","value":"1"},{"name":"待立案","id":"94","value":"10"},{"name":"预立案","id":"95","value":"11"},{"name":"待派发","id":"96","value":"20"},{"name":"挂起","id":"98","value":"22"},{"name":"预派发","id":"99","value":"23"},{"name":"待处理","id":"100","value":"30"},{"name":"二级处理审核","id":"101","value":"31"},{"name":"调整批示","id":"102","value":"36"},{"name":"部门调整批示","id":"103","value":"37"},{"name":"处置通处理","id":"104","value":"39"},{"name":"待调整","id":"105","value":"40"},{"name":"授权审核","id":"106","value":"43"},{"name":"部门授权审核","id":"107","value":"45"},{"name":"处理审核","id":"108","value":"46"},{"name":"待派发核查","id":"109","value":"50"},{"name":"现场核查","id":"110","value":"51"},{"name":"核查通过","id":"112","value":"60"},{"name":"核查未通过","id":"113","value":"61"},{"name":"快速上报","id":"114","value":"62"},{"name":"待结案","id":"115","value":"63"},{"name":"正常结案","id":"116","value":"70"},{"name":"案件作废","id":"117","value":"75"},{"name":"不予立案","id":"118","value":"76"},{"name":"销案","id":"119","value":"77"},{"name":"处理完成","id":"120","value":"301"},{"name":"申请调整","id":"121","value":"302"},{"name":"申请延期","id":"122","value":"303"},{"name":"申请缓办","id":"158","value":"304"},{"name":"待派发核实","id":"173","value":"3"}] + * message : 请求成功 + * success : true + */ + + private double code; + private String message; + private boolean success; + private List data; + + public double getCode() { + return code; + } + + public void setCode(double code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 待核实 + * id : 92 + * value : 0 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java new file mode 100644 index 0000000..0a939d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java @@ -0,0 +1,52 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseListModelImpl implements ICaseListModel { + + private OnGetCaseListListener listener; + + public CaseListModelImpl(OnGetCaseListListener caseListListener) { + this.listener = caseListListener; + } + + public interface OnGetCaseListListener { + void onSuccess(CaseListResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { + Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseState, + registerTimeBegin, registerTimeEnd, eorc, limit, offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseListResultBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java new file mode 100644 index 0000000..65e1c13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseStatusModelImpl implements ICaseStatusModel { + + private OnGetCaseStatusListener listener; + + public CaseStatusModelImpl(OnGetCaseStatusListener onGetCaseStatusListener) { + this.listener = onGetCaseStatusListener; + } + + public interface OnGetCaseStatusListener { + void onSuccess(CaseStatusBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCaseStatusResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseStatusBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java new file mode 100644 index 0000000..7968c67 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseListModel { + Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, + int limit, int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java new file mode 100644 index 0000000..6b21b13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseStatusModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d5c56ab..deeff33 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -44,6 +44,9 @@ + + + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public CaseListResultAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_case_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView leftTextView; + private TextView titleView; + private TextView contentView; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + leftTextView = itemView.findViewById(R.id.leftTextView); + titleView = itemView.findViewById(R.id.titleView); + contentView = itemView.findViewById(R.id.contentView); + } + + void bindView(CaseListResultBean.DataBean.RowsBean rowsBean) { + String eorcName = rowsBean.getEorcName(); + leftTextView.setText(eorcName.substring(0, 1)); + titleView.setText(rowsBean.getCasetypeName()); + contentView.setText(rowsBean.getCasetypeDetailName()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java new file mode 100644 index 0000000..3ac2b7b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java @@ -0,0 +1,342 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseListResultBean { + + /** + * code : 200 + * data : {"rows":[{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}],"total":3} + * message : 请求成功 + * success : true + */ + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + /** + * rows : [{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}] + * total : 3 + */ + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * isPostpone : 0 + * description : 音频测试 + * createUserName : 超级管理员 + * source : 11 + * eorcName : 事件 + * casetypeDetailName : 违规高空悬吊作业 + * remainingTime : 超时729小时6分钟 + * casetypeName : 其他事件 + * processId : 2680008 + * caseState : 0 + * id : 1372735305680994306 + * reportSupervisorId : + * fieldintro : 音频测试 + * lat : 27.75386000913368 + * caseStateName : 待核实 + * lng : 116.07951602267566 + * isOvertime : 1 + * casetypeDetailCode : 01 + * onedeptid : + * eorc : 1 + * caseid : 202103190001 + * casetypeCode : 06 + * createUser : 1 + * nodeLimittime : 2021-03-19 11:23:03 + * sourceName : 热线电话 + * reportTime : 2021-03-19 10:22:56 + */ + + private int isPostpone; + private String description; + private String createUserName; + private int source; + private String eorcName; + private String casetypeDetailName; + private String remainingTime; + private String casetypeName; + private String processId; + private int caseState; + private String id; + private String reportSupervisorId; + private String fieldintro; + private String lat; + private String caseStateName; + private String lng; + private String isOvertime; + private String casetypeDetailCode; + private String onedeptid; + private String eorc; + private String caseid; + private String casetypeCode; + private String createUser; + private String nodeLimittime; + private String sourceName; + private String reportTime; + + public int getIsPostpone() { + return isPostpone; + } + + public void setIsPostpone(int isPostpone) { + this.isPostpone = isPostpone; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public int getSource() { + return source; + } + + public void setSource(int source) { + this.source = source; + } + + public String getEorcName() { + return eorcName; + } + + public void setEorcName(String eorcName) { + this.eorcName = eorcName; + } + + public String getCasetypeDetailName() { + return casetypeDetailName; + } + + public void setCasetypeDetailName(String casetypeDetailName) { + this.casetypeDetailName = casetypeDetailName; + } + + public String getRemainingTime() { + return remainingTime; + } + + public void setRemainingTime(String remainingTime) { + this.remainingTime = remainingTime; + } + + public String getCasetypeName() { + return casetypeName; + } + + public void setCasetypeName(String casetypeName) { + this.casetypeName = casetypeName; + } + + public String getProcessId() { + return processId; + } + + public void setProcessId(String processId) { + this.processId = processId; + } + + public int getCaseState() { + return caseState; + } + + public void setCaseState(int caseState) { + this.caseState = caseState; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getReportSupervisorId() { + return reportSupervisorId; + } + + public void setReportSupervisorId(String reportSupervisorId) { + this.reportSupervisorId = reportSupervisorId; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getLat() { + return lat; + } + + public void setLat(String lat) { + this.lat = lat; + } + + public String getCaseStateName() { + return caseStateName; + } + + public void setCaseStateName(String caseStateName) { + this.caseStateName = caseStateName; + } + + public String getLng() { + return lng; + } + + public void setLng(String lng) { + this.lng = lng; + } + + public String getIsOvertime() { + return isOvertime; + } + + public void setIsOvertime(String isOvertime) { + this.isOvertime = isOvertime; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getOnedeptid() { + return onedeptid; + } + + public void setOnedeptid(String onedeptid) { + this.onedeptid = onedeptid; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCaseid() { + return caseid; + } + + public void setCaseid(String caseid) { + this.caseid = caseid; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getNodeLimittime() { + return nodeLimittime; + } + + public void setNodeLimittime(String nodeLimittime) { + this.nodeLimittime = nodeLimittime; + } + + public String getSourceName() { + return sourceName; + } + + public void setSourceName(String sourceName) { + this.sourceName = sourceName; + } + + public String getReportTime() { + return reportTime; + } + + public void setReportTime(String reportTime) { + this.reportTime = reportTime; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java new file mode 100644 index 0000000..6918d00 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java @@ -0,0 +1,86 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseStatusBean { + + /** + * code : 200.0 + * data : [{"name":"待核实","id":"92","value":"0"},{"name":"核实无效","id":"93","value":"1"},{"name":"待立案","id":"94","value":"10"},{"name":"预立案","id":"95","value":"11"},{"name":"待派发","id":"96","value":"20"},{"name":"挂起","id":"98","value":"22"},{"name":"预派发","id":"99","value":"23"},{"name":"待处理","id":"100","value":"30"},{"name":"二级处理审核","id":"101","value":"31"},{"name":"调整批示","id":"102","value":"36"},{"name":"部门调整批示","id":"103","value":"37"},{"name":"处置通处理","id":"104","value":"39"},{"name":"待调整","id":"105","value":"40"},{"name":"授权审核","id":"106","value":"43"},{"name":"部门授权审核","id":"107","value":"45"},{"name":"处理审核","id":"108","value":"46"},{"name":"待派发核查","id":"109","value":"50"},{"name":"现场核查","id":"110","value":"51"},{"name":"核查通过","id":"112","value":"60"},{"name":"核查未通过","id":"113","value":"61"},{"name":"快速上报","id":"114","value":"62"},{"name":"待结案","id":"115","value":"63"},{"name":"正常结案","id":"116","value":"70"},{"name":"案件作废","id":"117","value":"75"},{"name":"不予立案","id":"118","value":"76"},{"name":"销案","id":"119","value":"77"},{"name":"处理完成","id":"120","value":"301"},{"name":"申请调整","id":"121","value":"302"},{"name":"申请延期","id":"122","value":"303"},{"name":"申请缓办","id":"158","value":"304"},{"name":"待派发核实","id":"173","value":"3"}] + * message : 请求成功 + * success : true + */ + + private double code; + private String message; + private boolean success; + private List data; + + public double getCode() { + return code; + } + + public void setCode(double code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 待核实 + * id : 92 + * value : 0 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java new file mode 100644 index 0000000..0a939d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java @@ -0,0 +1,52 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseListModelImpl implements ICaseListModel { + + private OnGetCaseListListener listener; + + public CaseListModelImpl(OnGetCaseListListener caseListListener) { + this.listener = caseListListener; + } + + public interface OnGetCaseListListener { + void onSuccess(CaseListResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { + Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseState, + registerTimeBegin, registerTimeEnd, eorc, limit, offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseListResultBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java new file mode 100644 index 0000000..65e1c13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseStatusModelImpl implements ICaseStatusModel { + + private OnGetCaseStatusListener listener; + + public CaseStatusModelImpl(OnGetCaseStatusListener onGetCaseStatusListener) { + this.listener = onGetCaseStatusListener; + } + + public interface OnGetCaseStatusListener { + void onSuccess(CaseStatusBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCaseStatusResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseStatusBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java new file mode 100644 index 0000000..7968c67 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseListModel { + Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, + int limit, int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java new file mode 100644 index 0000000..6b21b13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseStatusModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java new file mode 100644 index 0000000..6cbb05d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java @@ -0,0 +1,41 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseListModelImpl; +import com.casic.dcms.mvp.view.ICaseListView; + +public class CaseListPresenterImpl extends BasePresenter implements ICaseListPresenter, CaseListModelImpl.OnGetCaseListListener { + + private ICaseListView view; + private CaseListModelImpl actionModel; + + public CaseListPresenterImpl(ICaseListView caseListView) { + this.view = caseListView; + actionModel = new CaseListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(casetypeCode, + casetypeDetailCode, caseState, registerTimeBegin, registerTimeEnd, eorc, limit, offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CaseListResultBean resultBean) { + view.hideProgress(); + view.obtainCaseStatusData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d5c56ab..deeff33 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -44,6 +44,9 @@ + + + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public CaseListResultAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_case_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView leftTextView; + private TextView titleView; + private TextView contentView; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + leftTextView = itemView.findViewById(R.id.leftTextView); + titleView = itemView.findViewById(R.id.titleView); + contentView = itemView.findViewById(R.id.contentView); + } + + void bindView(CaseListResultBean.DataBean.RowsBean rowsBean) { + String eorcName = rowsBean.getEorcName(); + leftTextView.setText(eorcName.substring(0, 1)); + titleView.setText(rowsBean.getCasetypeName()); + contentView.setText(rowsBean.getCasetypeDetailName()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java new file mode 100644 index 0000000..3ac2b7b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java @@ -0,0 +1,342 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseListResultBean { + + /** + * code : 200 + * data : {"rows":[{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}],"total":3} + * message : 请求成功 + * success : true + */ + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + /** + * rows : [{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}] + * total : 3 + */ + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * isPostpone : 0 + * description : 音频测试 + * createUserName : 超级管理员 + * source : 11 + * eorcName : 事件 + * casetypeDetailName : 违规高空悬吊作业 + * remainingTime : 超时729小时6分钟 + * casetypeName : 其他事件 + * processId : 2680008 + * caseState : 0 + * id : 1372735305680994306 + * reportSupervisorId : + * fieldintro : 音频测试 + * lat : 27.75386000913368 + * caseStateName : 待核实 + * lng : 116.07951602267566 + * isOvertime : 1 + * casetypeDetailCode : 01 + * onedeptid : + * eorc : 1 + * caseid : 202103190001 + * casetypeCode : 06 + * createUser : 1 + * nodeLimittime : 2021-03-19 11:23:03 + * sourceName : 热线电话 + * reportTime : 2021-03-19 10:22:56 + */ + + private int isPostpone; + private String description; + private String createUserName; + private int source; + private String eorcName; + private String casetypeDetailName; + private String remainingTime; + private String casetypeName; + private String processId; + private int caseState; + private String id; + private String reportSupervisorId; + private String fieldintro; + private String lat; + private String caseStateName; + private String lng; + private String isOvertime; + private String casetypeDetailCode; + private String onedeptid; + private String eorc; + private String caseid; + private String casetypeCode; + private String createUser; + private String nodeLimittime; + private String sourceName; + private String reportTime; + + public int getIsPostpone() { + return isPostpone; + } + + public void setIsPostpone(int isPostpone) { + this.isPostpone = isPostpone; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public int getSource() { + return source; + } + + public void setSource(int source) { + this.source = source; + } + + public String getEorcName() { + return eorcName; + } + + public void setEorcName(String eorcName) { + this.eorcName = eorcName; + } + + public String getCasetypeDetailName() { + return casetypeDetailName; + } + + public void setCasetypeDetailName(String casetypeDetailName) { + this.casetypeDetailName = casetypeDetailName; + } + + public String getRemainingTime() { + return remainingTime; + } + + public void setRemainingTime(String remainingTime) { + this.remainingTime = remainingTime; + } + + public String getCasetypeName() { + return casetypeName; + } + + public void setCasetypeName(String casetypeName) { + this.casetypeName = casetypeName; + } + + public String getProcessId() { + return processId; + } + + public void setProcessId(String processId) { + this.processId = processId; + } + + public int getCaseState() { + return caseState; + } + + public void setCaseState(int caseState) { + this.caseState = caseState; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getReportSupervisorId() { + return reportSupervisorId; + } + + public void setReportSupervisorId(String reportSupervisorId) { + this.reportSupervisorId = reportSupervisorId; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getLat() { + return lat; + } + + public void setLat(String lat) { + this.lat = lat; + } + + public String getCaseStateName() { + return caseStateName; + } + + public void setCaseStateName(String caseStateName) { + this.caseStateName = caseStateName; + } + + public String getLng() { + return lng; + } + + public void setLng(String lng) { + this.lng = lng; + } + + public String getIsOvertime() { + return isOvertime; + } + + public void setIsOvertime(String isOvertime) { + this.isOvertime = isOvertime; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getOnedeptid() { + return onedeptid; + } + + public void setOnedeptid(String onedeptid) { + this.onedeptid = onedeptid; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCaseid() { + return caseid; + } + + public void setCaseid(String caseid) { + this.caseid = caseid; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getNodeLimittime() { + return nodeLimittime; + } + + public void setNodeLimittime(String nodeLimittime) { + this.nodeLimittime = nodeLimittime; + } + + public String getSourceName() { + return sourceName; + } + + public void setSourceName(String sourceName) { + this.sourceName = sourceName; + } + + public String getReportTime() { + return reportTime; + } + + public void setReportTime(String reportTime) { + this.reportTime = reportTime; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java new file mode 100644 index 0000000..6918d00 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java @@ -0,0 +1,86 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseStatusBean { + + /** + * code : 200.0 + * data : [{"name":"待核实","id":"92","value":"0"},{"name":"核实无效","id":"93","value":"1"},{"name":"待立案","id":"94","value":"10"},{"name":"预立案","id":"95","value":"11"},{"name":"待派发","id":"96","value":"20"},{"name":"挂起","id":"98","value":"22"},{"name":"预派发","id":"99","value":"23"},{"name":"待处理","id":"100","value":"30"},{"name":"二级处理审核","id":"101","value":"31"},{"name":"调整批示","id":"102","value":"36"},{"name":"部门调整批示","id":"103","value":"37"},{"name":"处置通处理","id":"104","value":"39"},{"name":"待调整","id":"105","value":"40"},{"name":"授权审核","id":"106","value":"43"},{"name":"部门授权审核","id":"107","value":"45"},{"name":"处理审核","id":"108","value":"46"},{"name":"待派发核查","id":"109","value":"50"},{"name":"现场核查","id":"110","value":"51"},{"name":"核查通过","id":"112","value":"60"},{"name":"核查未通过","id":"113","value":"61"},{"name":"快速上报","id":"114","value":"62"},{"name":"待结案","id":"115","value":"63"},{"name":"正常结案","id":"116","value":"70"},{"name":"案件作废","id":"117","value":"75"},{"name":"不予立案","id":"118","value":"76"},{"name":"销案","id":"119","value":"77"},{"name":"处理完成","id":"120","value":"301"},{"name":"申请调整","id":"121","value":"302"},{"name":"申请延期","id":"122","value":"303"},{"name":"申请缓办","id":"158","value":"304"},{"name":"待派发核实","id":"173","value":"3"}] + * message : 请求成功 + * success : true + */ + + private double code; + private String message; + private boolean success; + private List data; + + public double getCode() { + return code; + } + + public void setCode(double code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 待核实 + * id : 92 + * value : 0 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java new file mode 100644 index 0000000..0a939d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java @@ -0,0 +1,52 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseListModelImpl implements ICaseListModel { + + private OnGetCaseListListener listener; + + public CaseListModelImpl(OnGetCaseListListener caseListListener) { + this.listener = caseListListener; + } + + public interface OnGetCaseListListener { + void onSuccess(CaseListResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { + Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseState, + registerTimeBegin, registerTimeEnd, eorc, limit, offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseListResultBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java new file mode 100644 index 0000000..65e1c13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseStatusModelImpl implements ICaseStatusModel { + + private OnGetCaseStatusListener listener; + + public CaseStatusModelImpl(OnGetCaseStatusListener onGetCaseStatusListener) { + this.listener = onGetCaseStatusListener; + } + + public interface OnGetCaseStatusListener { + void onSuccess(CaseStatusBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCaseStatusResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseStatusBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java new file mode 100644 index 0000000..7968c67 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseListModel { + Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, + int limit, int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java new file mode 100644 index 0000000..6b21b13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseStatusModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java new file mode 100644 index 0000000..6cbb05d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java @@ -0,0 +1,41 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseListModelImpl; +import com.casic.dcms.mvp.view.ICaseListView; + +public class CaseListPresenterImpl extends BasePresenter implements ICaseListPresenter, CaseListModelImpl.OnGetCaseListListener { + + private ICaseListView view; + private CaseListModelImpl actionModel; + + public CaseListPresenterImpl(ICaseListView caseListView) { + this.view = caseListView; + actionModel = new CaseListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(casetypeCode, + casetypeDetailCode, caseState, registerTimeBegin, registerTimeEnd, eorc, limit, offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CaseListResultBean resultBean) { + view.hideProgress(); + view.obtainCaseStatusData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java index 4889877..376e430 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -10,8 +10,8 @@ private ICaseSmallClassView view; private CaseSmallClassModelImpl actionModel; - public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { - this.view = caseTypeView; + public CaseSmallClassPresenterImpl(ICaseSmallClassView smallClassView) { + this.view = smallClassView; actionModel = new CaseSmallClassModelImpl(this); } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d5c56ab..deeff33 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -44,6 +44,9 @@ + + + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public CaseListResultAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_case_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView leftTextView; + private TextView titleView; + private TextView contentView; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + leftTextView = itemView.findViewById(R.id.leftTextView); + titleView = itemView.findViewById(R.id.titleView); + contentView = itemView.findViewById(R.id.contentView); + } + + void bindView(CaseListResultBean.DataBean.RowsBean rowsBean) { + String eorcName = rowsBean.getEorcName(); + leftTextView.setText(eorcName.substring(0, 1)); + titleView.setText(rowsBean.getCasetypeName()); + contentView.setText(rowsBean.getCasetypeDetailName()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java new file mode 100644 index 0000000..3ac2b7b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java @@ -0,0 +1,342 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseListResultBean { + + /** + * code : 200 + * data : {"rows":[{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}],"total":3} + * message : 请求成功 + * success : true + */ + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + /** + * rows : [{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}] + * total : 3 + */ + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * isPostpone : 0 + * description : 音频测试 + * createUserName : 超级管理员 + * source : 11 + * eorcName : 事件 + * casetypeDetailName : 违规高空悬吊作业 + * remainingTime : 超时729小时6分钟 + * casetypeName : 其他事件 + * processId : 2680008 + * caseState : 0 + * id : 1372735305680994306 + * reportSupervisorId : + * fieldintro : 音频测试 + * lat : 27.75386000913368 + * caseStateName : 待核实 + * lng : 116.07951602267566 + * isOvertime : 1 + * casetypeDetailCode : 01 + * onedeptid : + * eorc : 1 + * caseid : 202103190001 + * casetypeCode : 06 + * createUser : 1 + * nodeLimittime : 2021-03-19 11:23:03 + * sourceName : 热线电话 + * reportTime : 2021-03-19 10:22:56 + */ + + private int isPostpone; + private String description; + private String createUserName; + private int source; + private String eorcName; + private String casetypeDetailName; + private String remainingTime; + private String casetypeName; + private String processId; + private int caseState; + private String id; + private String reportSupervisorId; + private String fieldintro; + private String lat; + private String caseStateName; + private String lng; + private String isOvertime; + private String casetypeDetailCode; + private String onedeptid; + private String eorc; + private String caseid; + private String casetypeCode; + private String createUser; + private String nodeLimittime; + private String sourceName; + private String reportTime; + + public int getIsPostpone() { + return isPostpone; + } + + public void setIsPostpone(int isPostpone) { + this.isPostpone = isPostpone; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public int getSource() { + return source; + } + + public void setSource(int source) { + this.source = source; + } + + public String getEorcName() { + return eorcName; + } + + public void setEorcName(String eorcName) { + this.eorcName = eorcName; + } + + public String getCasetypeDetailName() { + return casetypeDetailName; + } + + public void setCasetypeDetailName(String casetypeDetailName) { + this.casetypeDetailName = casetypeDetailName; + } + + public String getRemainingTime() { + return remainingTime; + } + + public void setRemainingTime(String remainingTime) { + this.remainingTime = remainingTime; + } + + public String getCasetypeName() { + return casetypeName; + } + + public void setCasetypeName(String casetypeName) { + this.casetypeName = casetypeName; + } + + public String getProcessId() { + return processId; + } + + public void setProcessId(String processId) { + this.processId = processId; + } + + public int getCaseState() { + return caseState; + } + + public void setCaseState(int caseState) { + this.caseState = caseState; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getReportSupervisorId() { + return reportSupervisorId; + } + + public void setReportSupervisorId(String reportSupervisorId) { + this.reportSupervisorId = reportSupervisorId; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getLat() { + return lat; + } + + public void setLat(String lat) { + this.lat = lat; + } + + public String getCaseStateName() { + return caseStateName; + } + + public void setCaseStateName(String caseStateName) { + this.caseStateName = caseStateName; + } + + public String getLng() { + return lng; + } + + public void setLng(String lng) { + this.lng = lng; + } + + public String getIsOvertime() { + return isOvertime; + } + + public void setIsOvertime(String isOvertime) { + this.isOvertime = isOvertime; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getOnedeptid() { + return onedeptid; + } + + public void setOnedeptid(String onedeptid) { + this.onedeptid = onedeptid; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCaseid() { + return caseid; + } + + public void setCaseid(String caseid) { + this.caseid = caseid; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getNodeLimittime() { + return nodeLimittime; + } + + public void setNodeLimittime(String nodeLimittime) { + this.nodeLimittime = nodeLimittime; + } + + public String getSourceName() { + return sourceName; + } + + public void setSourceName(String sourceName) { + this.sourceName = sourceName; + } + + public String getReportTime() { + return reportTime; + } + + public void setReportTime(String reportTime) { + this.reportTime = reportTime; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java new file mode 100644 index 0000000..6918d00 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java @@ -0,0 +1,86 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseStatusBean { + + /** + * code : 200.0 + * data : [{"name":"待核实","id":"92","value":"0"},{"name":"核实无效","id":"93","value":"1"},{"name":"待立案","id":"94","value":"10"},{"name":"预立案","id":"95","value":"11"},{"name":"待派发","id":"96","value":"20"},{"name":"挂起","id":"98","value":"22"},{"name":"预派发","id":"99","value":"23"},{"name":"待处理","id":"100","value":"30"},{"name":"二级处理审核","id":"101","value":"31"},{"name":"调整批示","id":"102","value":"36"},{"name":"部门调整批示","id":"103","value":"37"},{"name":"处置通处理","id":"104","value":"39"},{"name":"待调整","id":"105","value":"40"},{"name":"授权审核","id":"106","value":"43"},{"name":"部门授权审核","id":"107","value":"45"},{"name":"处理审核","id":"108","value":"46"},{"name":"待派发核查","id":"109","value":"50"},{"name":"现场核查","id":"110","value":"51"},{"name":"核查通过","id":"112","value":"60"},{"name":"核查未通过","id":"113","value":"61"},{"name":"快速上报","id":"114","value":"62"},{"name":"待结案","id":"115","value":"63"},{"name":"正常结案","id":"116","value":"70"},{"name":"案件作废","id":"117","value":"75"},{"name":"不予立案","id":"118","value":"76"},{"name":"销案","id":"119","value":"77"},{"name":"处理完成","id":"120","value":"301"},{"name":"申请调整","id":"121","value":"302"},{"name":"申请延期","id":"122","value":"303"},{"name":"申请缓办","id":"158","value":"304"},{"name":"待派发核实","id":"173","value":"3"}] + * message : 请求成功 + * success : true + */ + + private double code; + private String message; + private boolean success; + private List data; + + public double getCode() { + return code; + } + + public void setCode(double code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 待核实 + * id : 92 + * value : 0 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java new file mode 100644 index 0000000..0a939d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java @@ -0,0 +1,52 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseListModelImpl implements ICaseListModel { + + private OnGetCaseListListener listener; + + public CaseListModelImpl(OnGetCaseListListener caseListListener) { + this.listener = caseListListener; + } + + public interface OnGetCaseListListener { + void onSuccess(CaseListResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { + Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseState, + registerTimeBegin, registerTimeEnd, eorc, limit, offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseListResultBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java new file mode 100644 index 0000000..65e1c13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseStatusModelImpl implements ICaseStatusModel { + + private OnGetCaseStatusListener listener; + + public CaseStatusModelImpl(OnGetCaseStatusListener onGetCaseStatusListener) { + this.listener = onGetCaseStatusListener; + } + + public interface OnGetCaseStatusListener { + void onSuccess(CaseStatusBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCaseStatusResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseStatusBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java new file mode 100644 index 0000000..7968c67 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseListModel { + Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, + int limit, int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java new file mode 100644 index 0000000..6b21b13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseStatusModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java new file mode 100644 index 0000000..6cbb05d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java @@ -0,0 +1,41 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseListModelImpl; +import com.casic.dcms.mvp.view.ICaseListView; + +public class CaseListPresenterImpl extends BasePresenter implements ICaseListPresenter, CaseListModelImpl.OnGetCaseListListener { + + private ICaseListView view; + private CaseListModelImpl actionModel; + + public CaseListPresenterImpl(ICaseListView caseListView) { + this.view = caseListView; + actionModel = new CaseListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(casetypeCode, + casetypeDetailCode, caseState, registerTimeBegin, registerTimeEnd, eorc, limit, offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CaseListResultBean resultBean) { + view.hideProgress(); + view.obtainCaseStatusData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java index 4889877..376e430 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -10,8 +10,8 @@ private ICaseSmallClassView view; private CaseSmallClassModelImpl actionModel; - public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { - this.view = caseTypeView; + public CaseSmallClassPresenterImpl(ICaseSmallClassView smallClassView) { + this.view = smallClassView; actionModel = new CaseSmallClassModelImpl(this); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java new file mode 100644 index 0000000..e297a23 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseStatusModelImpl; +import com.casic.dcms.mvp.view.ICaseStatusView; + +public class CaseStatusPresenterImpl extends BasePresenter implements ICaseStatusPresenter, CaseStatusModelImpl.OnGetCaseStatusListener { + + private ICaseStatusView view; + private CaseStatusModelImpl actionModel; + + public CaseStatusPresenterImpl(ICaseStatusView caseStatusView) { + this.view = caseStatusView; + actionModel = new CaseStatusModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CaseStatusBean resultBean) { + view.obtainCaseStatusData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d5c56ab..deeff33 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -44,6 +44,9 @@ + + + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public CaseListResultAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_case_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView leftTextView; + private TextView titleView; + private TextView contentView; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + leftTextView = itemView.findViewById(R.id.leftTextView); + titleView = itemView.findViewById(R.id.titleView); + contentView = itemView.findViewById(R.id.contentView); + } + + void bindView(CaseListResultBean.DataBean.RowsBean rowsBean) { + String eorcName = rowsBean.getEorcName(); + leftTextView.setText(eorcName.substring(0, 1)); + titleView.setText(rowsBean.getCasetypeName()); + contentView.setText(rowsBean.getCasetypeDetailName()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java new file mode 100644 index 0000000..3ac2b7b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java @@ -0,0 +1,342 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseListResultBean { + + /** + * code : 200 + * data : {"rows":[{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}],"total":3} + * message : 请求成功 + * success : true + */ + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + /** + * rows : [{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}] + * total : 3 + */ + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * isPostpone : 0 + * description : 音频测试 + * createUserName : 超级管理员 + * source : 11 + * eorcName : 事件 + * casetypeDetailName : 违规高空悬吊作业 + * remainingTime : 超时729小时6分钟 + * casetypeName : 其他事件 + * processId : 2680008 + * caseState : 0 + * id : 1372735305680994306 + * reportSupervisorId : + * fieldintro : 音频测试 + * lat : 27.75386000913368 + * caseStateName : 待核实 + * lng : 116.07951602267566 + * isOvertime : 1 + * casetypeDetailCode : 01 + * onedeptid : + * eorc : 1 + * caseid : 202103190001 + * casetypeCode : 06 + * createUser : 1 + * nodeLimittime : 2021-03-19 11:23:03 + * sourceName : 热线电话 + * reportTime : 2021-03-19 10:22:56 + */ + + private int isPostpone; + private String description; + private String createUserName; + private int source; + private String eorcName; + private String casetypeDetailName; + private String remainingTime; + private String casetypeName; + private String processId; + private int caseState; + private String id; + private String reportSupervisorId; + private String fieldintro; + private String lat; + private String caseStateName; + private String lng; + private String isOvertime; + private String casetypeDetailCode; + private String onedeptid; + private String eorc; + private String caseid; + private String casetypeCode; + private String createUser; + private String nodeLimittime; + private String sourceName; + private String reportTime; + + public int getIsPostpone() { + return isPostpone; + } + + public void setIsPostpone(int isPostpone) { + this.isPostpone = isPostpone; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public int getSource() { + return source; + } + + public void setSource(int source) { + this.source = source; + } + + public String getEorcName() { + return eorcName; + } + + public void setEorcName(String eorcName) { + this.eorcName = eorcName; + } + + public String getCasetypeDetailName() { + return casetypeDetailName; + } + + public void setCasetypeDetailName(String casetypeDetailName) { + this.casetypeDetailName = casetypeDetailName; + } + + public String getRemainingTime() { + return remainingTime; + } + + public void setRemainingTime(String remainingTime) { + this.remainingTime = remainingTime; + } + + public String getCasetypeName() { + return casetypeName; + } + + public void setCasetypeName(String casetypeName) { + this.casetypeName = casetypeName; + } + + public String getProcessId() { + return processId; + } + + public void setProcessId(String processId) { + this.processId = processId; + } + + public int getCaseState() { + return caseState; + } + + public void setCaseState(int caseState) { + this.caseState = caseState; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getReportSupervisorId() { + return reportSupervisorId; + } + + public void setReportSupervisorId(String reportSupervisorId) { + this.reportSupervisorId = reportSupervisorId; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getLat() { + return lat; + } + + public void setLat(String lat) { + this.lat = lat; + } + + public String getCaseStateName() { + return caseStateName; + } + + public void setCaseStateName(String caseStateName) { + this.caseStateName = caseStateName; + } + + public String getLng() { + return lng; + } + + public void setLng(String lng) { + this.lng = lng; + } + + public String getIsOvertime() { + return isOvertime; + } + + public void setIsOvertime(String isOvertime) { + this.isOvertime = isOvertime; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getOnedeptid() { + return onedeptid; + } + + public void setOnedeptid(String onedeptid) { + this.onedeptid = onedeptid; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCaseid() { + return caseid; + } + + public void setCaseid(String caseid) { + this.caseid = caseid; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getNodeLimittime() { + return nodeLimittime; + } + + public void setNodeLimittime(String nodeLimittime) { + this.nodeLimittime = nodeLimittime; + } + + public String getSourceName() { + return sourceName; + } + + public void setSourceName(String sourceName) { + this.sourceName = sourceName; + } + + public String getReportTime() { + return reportTime; + } + + public void setReportTime(String reportTime) { + this.reportTime = reportTime; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java new file mode 100644 index 0000000..6918d00 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java @@ -0,0 +1,86 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseStatusBean { + + /** + * code : 200.0 + * data : [{"name":"待核实","id":"92","value":"0"},{"name":"核实无效","id":"93","value":"1"},{"name":"待立案","id":"94","value":"10"},{"name":"预立案","id":"95","value":"11"},{"name":"待派发","id":"96","value":"20"},{"name":"挂起","id":"98","value":"22"},{"name":"预派发","id":"99","value":"23"},{"name":"待处理","id":"100","value":"30"},{"name":"二级处理审核","id":"101","value":"31"},{"name":"调整批示","id":"102","value":"36"},{"name":"部门调整批示","id":"103","value":"37"},{"name":"处置通处理","id":"104","value":"39"},{"name":"待调整","id":"105","value":"40"},{"name":"授权审核","id":"106","value":"43"},{"name":"部门授权审核","id":"107","value":"45"},{"name":"处理审核","id":"108","value":"46"},{"name":"待派发核查","id":"109","value":"50"},{"name":"现场核查","id":"110","value":"51"},{"name":"核查通过","id":"112","value":"60"},{"name":"核查未通过","id":"113","value":"61"},{"name":"快速上报","id":"114","value":"62"},{"name":"待结案","id":"115","value":"63"},{"name":"正常结案","id":"116","value":"70"},{"name":"案件作废","id":"117","value":"75"},{"name":"不予立案","id":"118","value":"76"},{"name":"销案","id":"119","value":"77"},{"name":"处理完成","id":"120","value":"301"},{"name":"申请调整","id":"121","value":"302"},{"name":"申请延期","id":"122","value":"303"},{"name":"申请缓办","id":"158","value":"304"},{"name":"待派发核实","id":"173","value":"3"}] + * message : 请求成功 + * success : true + */ + + private double code; + private String message; + private boolean success; + private List data; + + public double getCode() { + return code; + } + + public void setCode(double code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 待核实 + * id : 92 + * value : 0 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java new file mode 100644 index 0000000..0a939d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java @@ -0,0 +1,52 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseListModelImpl implements ICaseListModel { + + private OnGetCaseListListener listener; + + public CaseListModelImpl(OnGetCaseListListener caseListListener) { + this.listener = caseListListener; + } + + public interface OnGetCaseListListener { + void onSuccess(CaseListResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { + Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseState, + registerTimeBegin, registerTimeEnd, eorc, limit, offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseListResultBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java new file mode 100644 index 0000000..65e1c13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseStatusModelImpl implements ICaseStatusModel { + + private OnGetCaseStatusListener listener; + + public CaseStatusModelImpl(OnGetCaseStatusListener onGetCaseStatusListener) { + this.listener = onGetCaseStatusListener; + } + + public interface OnGetCaseStatusListener { + void onSuccess(CaseStatusBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCaseStatusResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseStatusBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java new file mode 100644 index 0000000..7968c67 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseListModel { + Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, + int limit, int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java new file mode 100644 index 0000000..6b21b13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseStatusModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java new file mode 100644 index 0000000..6cbb05d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java @@ -0,0 +1,41 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseListModelImpl; +import com.casic.dcms.mvp.view.ICaseListView; + +public class CaseListPresenterImpl extends BasePresenter implements ICaseListPresenter, CaseListModelImpl.OnGetCaseListListener { + + private ICaseListView view; + private CaseListModelImpl actionModel; + + public CaseListPresenterImpl(ICaseListView caseListView) { + this.view = caseListView; + actionModel = new CaseListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(casetypeCode, + casetypeDetailCode, caseState, registerTimeBegin, registerTimeEnd, eorc, limit, offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CaseListResultBean resultBean) { + view.hideProgress(); + view.obtainCaseStatusData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java index 4889877..376e430 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -10,8 +10,8 @@ private ICaseSmallClassView view; private CaseSmallClassModelImpl actionModel; - public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { - this.view = caseTypeView; + public CaseSmallClassPresenterImpl(ICaseSmallClassView smallClassView) { + this.view = smallClassView; actionModel = new CaseSmallClassModelImpl(this); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java new file mode 100644 index 0000000..e297a23 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseStatusModelImpl; +import com.casic.dcms.mvp.view.ICaseStatusView; + +public class CaseStatusPresenterImpl extends BasePresenter implements ICaseStatusPresenter, CaseStatusModelImpl.OnGetCaseStatusListener { + + private ICaseStatusView view; + private CaseStatusModelImpl actionModel; + + public CaseStatusPresenterImpl(ICaseStatusView caseStatusView) { + this.view = caseStatusView; + actionModel = new CaseStatusModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CaseStatusBean resultBean) { + view.obtainCaseStatusData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java new file mode 100644 index 0000000..67be846 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java @@ -0,0 +1,8 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseListPresenter { + void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d5c56ab..deeff33 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -44,6 +44,9 @@ + + + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public CaseListResultAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_case_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView leftTextView; + private TextView titleView; + private TextView contentView; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + leftTextView = itemView.findViewById(R.id.leftTextView); + titleView = itemView.findViewById(R.id.titleView); + contentView = itemView.findViewById(R.id.contentView); + } + + void bindView(CaseListResultBean.DataBean.RowsBean rowsBean) { + String eorcName = rowsBean.getEorcName(); + leftTextView.setText(eorcName.substring(0, 1)); + titleView.setText(rowsBean.getCasetypeName()); + contentView.setText(rowsBean.getCasetypeDetailName()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java new file mode 100644 index 0000000..3ac2b7b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java @@ -0,0 +1,342 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseListResultBean { + + /** + * code : 200 + * data : {"rows":[{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}],"total":3} + * message : 请求成功 + * success : true + */ + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + /** + * rows : [{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}] + * total : 3 + */ + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * isPostpone : 0 + * description : 音频测试 + * createUserName : 超级管理员 + * source : 11 + * eorcName : 事件 + * casetypeDetailName : 违规高空悬吊作业 + * remainingTime : 超时729小时6分钟 + * casetypeName : 其他事件 + * processId : 2680008 + * caseState : 0 + * id : 1372735305680994306 + * reportSupervisorId : + * fieldintro : 音频测试 + * lat : 27.75386000913368 + * caseStateName : 待核实 + * lng : 116.07951602267566 + * isOvertime : 1 + * casetypeDetailCode : 01 + * onedeptid : + * eorc : 1 + * caseid : 202103190001 + * casetypeCode : 06 + * createUser : 1 + * nodeLimittime : 2021-03-19 11:23:03 + * sourceName : 热线电话 + * reportTime : 2021-03-19 10:22:56 + */ + + private int isPostpone; + private String description; + private String createUserName; + private int source; + private String eorcName; + private String casetypeDetailName; + private String remainingTime; + private String casetypeName; + private String processId; + private int caseState; + private String id; + private String reportSupervisorId; + private String fieldintro; + private String lat; + private String caseStateName; + private String lng; + private String isOvertime; + private String casetypeDetailCode; + private String onedeptid; + private String eorc; + private String caseid; + private String casetypeCode; + private String createUser; + private String nodeLimittime; + private String sourceName; + private String reportTime; + + public int getIsPostpone() { + return isPostpone; + } + + public void setIsPostpone(int isPostpone) { + this.isPostpone = isPostpone; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public int getSource() { + return source; + } + + public void setSource(int source) { + this.source = source; + } + + public String getEorcName() { + return eorcName; + } + + public void setEorcName(String eorcName) { + this.eorcName = eorcName; + } + + public String getCasetypeDetailName() { + return casetypeDetailName; + } + + public void setCasetypeDetailName(String casetypeDetailName) { + this.casetypeDetailName = casetypeDetailName; + } + + public String getRemainingTime() { + return remainingTime; + } + + public void setRemainingTime(String remainingTime) { + this.remainingTime = remainingTime; + } + + public String getCasetypeName() { + return casetypeName; + } + + public void setCasetypeName(String casetypeName) { + this.casetypeName = casetypeName; + } + + public String getProcessId() { + return processId; + } + + public void setProcessId(String processId) { + this.processId = processId; + } + + public int getCaseState() { + return caseState; + } + + public void setCaseState(int caseState) { + this.caseState = caseState; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getReportSupervisorId() { + return reportSupervisorId; + } + + public void setReportSupervisorId(String reportSupervisorId) { + this.reportSupervisorId = reportSupervisorId; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getLat() { + return lat; + } + + public void setLat(String lat) { + this.lat = lat; + } + + public String getCaseStateName() { + return caseStateName; + } + + public void setCaseStateName(String caseStateName) { + this.caseStateName = caseStateName; + } + + public String getLng() { + return lng; + } + + public void setLng(String lng) { + this.lng = lng; + } + + public String getIsOvertime() { + return isOvertime; + } + + public void setIsOvertime(String isOvertime) { + this.isOvertime = isOvertime; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getOnedeptid() { + return onedeptid; + } + + public void setOnedeptid(String onedeptid) { + this.onedeptid = onedeptid; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCaseid() { + return caseid; + } + + public void setCaseid(String caseid) { + this.caseid = caseid; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getNodeLimittime() { + return nodeLimittime; + } + + public void setNodeLimittime(String nodeLimittime) { + this.nodeLimittime = nodeLimittime; + } + + public String getSourceName() { + return sourceName; + } + + public void setSourceName(String sourceName) { + this.sourceName = sourceName; + } + + public String getReportTime() { + return reportTime; + } + + public void setReportTime(String reportTime) { + this.reportTime = reportTime; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java new file mode 100644 index 0000000..6918d00 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java @@ -0,0 +1,86 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseStatusBean { + + /** + * code : 200.0 + * data : [{"name":"待核实","id":"92","value":"0"},{"name":"核实无效","id":"93","value":"1"},{"name":"待立案","id":"94","value":"10"},{"name":"预立案","id":"95","value":"11"},{"name":"待派发","id":"96","value":"20"},{"name":"挂起","id":"98","value":"22"},{"name":"预派发","id":"99","value":"23"},{"name":"待处理","id":"100","value":"30"},{"name":"二级处理审核","id":"101","value":"31"},{"name":"调整批示","id":"102","value":"36"},{"name":"部门调整批示","id":"103","value":"37"},{"name":"处置通处理","id":"104","value":"39"},{"name":"待调整","id":"105","value":"40"},{"name":"授权审核","id":"106","value":"43"},{"name":"部门授权审核","id":"107","value":"45"},{"name":"处理审核","id":"108","value":"46"},{"name":"待派发核查","id":"109","value":"50"},{"name":"现场核查","id":"110","value":"51"},{"name":"核查通过","id":"112","value":"60"},{"name":"核查未通过","id":"113","value":"61"},{"name":"快速上报","id":"114","value":"62"},{"name":"待结案","id":"115","value":"63"},{"name":"正常结案","id":"116","value":"70"},{"name":"案件作废","id":"117","value":"75"},{"name":"不予立案","id":"118","value":"76"},{"name":"销案","id":"119","value":"77"},{"name":"处理完成","id":"120","value":"301"},{"name":"申请调整","id":"121","value":"302"},{"name":"申请延期","id":"122","value":"303"},{"name":"申请缓办","id":"158","value":"304"},{"name":"待派发核实","id":"173","value":"3"}] + * message : 请求成功 + * success : true + */ + + private double code; + private String message; + private boolean success; + private List data; + + public double getCode() { + return code; + } + + public void setCode(double code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 待核实 + * id : 92 + * value : 0 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java new file mode 100644 index 0000000..0a939d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java @@ -0,0 +1,52 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseListModelImpl implements ICaseListModel { + + private OnGetCaseListListener listener; + + public CaseListModelImpl(OnGetCaseListListener caseListListener) { + this.listener = caseListListener; + } + + public interface OnGetCaseListListener { + void onSuccess(CaseListResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { + Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseState, + registerTimeBegin, registerTimeEnd, eorc, limit, offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseListResultBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java new file mode 100644 index 0000000..65e1c13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseStatusModelImpl implements ICaseStatusModel { + + private OnGetCaseStatusListener listener; + + public CaseStatusModelImpl(OnGetCaseStatusListener onGetCaseStatusListener) { + this.listener = onGetCaseStatusListener; + } + + public interface OnGetCaseStatusListener { + void onSuccess(CaseStatusBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCaseStatusResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseStatusBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java new file mode 100644 index 0000000..7968c67 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseListModel { + Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, + int limit, int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java new file mode 100644 index 0000000..6b21b13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseStatusModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java new file mode 100644 index 0000000..6cbb05d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java @@ -0,0 +1,41 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseListModelImpl; +import com.casic.dcms.mvp.view.ICaseListView; + +public class CaseListPresenterImpl extends BasePresenter implements ICaseListPresenter, CaseListModelImpl.OnGetCaseListListener { + + private ICaseListView view; + private CaseListModelImpl actionModel; + + public CaseListPresenterImpl(ICaseListView caseListView) { + this.view = caseListView; + actionModel = new CaseListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(casetypeCode, + casetypeDetailCode, caseState, registerTimeBegin, registerTimeEnd, eorc, limit, offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CaseListResultBean resultBean) { + view.hideProgress(); + view.obtainCaseStatusData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java index 4889877..376e430 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -10,8 +10,8 @@ private ICaseSmallClassView view; private CaseSmallClassModelImpl actionModel; - public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { - this.view = caseTypeView; + public CaseSmallClassPresenterImpl(ICaseSmallClassView smallClassView) { + this.view = smallClassView; actionModel = new CaseSmallClassModelImpl(this); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java new file mode 100644 index 0000000..e297a23 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseStatusModelImpl; +import com.casic.dcms.mvp.view.ICaseStatusView; + +public class CaseStatusPresenterImpl extends BasePresenter implements ICaseStatusPresenter, CaseStatusModelImpl.OnGetCaseStatusListener { + + private ICaseStatusView view; + private CaseStatusModelImpl actionModel; + + public CaseStatusPresenterImpl(ICaseStatusView caseStatusView) { + this.view = caseStatusView; + actionModel = new CaseStatusModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CaseStatusBean resultBean) { + view.obtainCaseStatusData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java new file mode 100644 index 0000000..67be846 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java @@ -0,0 +1,8 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseListPresenter { + void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java new file mode 100644 index 0000000..19f2532 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseStatusPresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d5c56ab..deeff33 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -44,6 +44,9 @@ + + + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public CaseListResultAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_case_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView leftTextView; + private TextView titleView; + private TextView contentView; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + leftTextView = itemView.findViewById(R.id.leftTextView); + titleView = itemView.findViewById(R.id.titleView); + contentView = itemView.findViewById(R.id.contentView); + } + + void bindView(CaseListResultBean.DataBean.RowsBean rowsBean) { + String eorcName = rowsBean.getEorcName(); + leftTextView.setText(eorcName.substring(0, 1)); + titleView.setText(rowsBean.getCasetypeName()); + contentView.setText(rowsBean.getCasetypeDetailName()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java new file mode 100644 index 0000000..3ac2b7b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java @@ -0,0 +1,342 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseListResultBean { + + /** + * code : 200 + * data : {"rows":[{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}],"total":3} + * message : 请求成功 + * success : true + */ + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + /** + * rows : [{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}] + * total : 3 + */ + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * isPostpone : 0 + * description : 音频测试 + * createUserName : 超级管理员 + * source : 11 + * eorcName : 事件 + * casetypeDetailName : 违规高空悬吊作业 + * remainingTime : 超时729小时6分钟 + * casetypeName : 其他事件 + * processId : 2680008 + * caseState : 0 + * id : 1372735305680994306 + * reportSupervisorId : + * fieldintro : 音频测试 + * lat : 27.75386000913368 + * caseStateName : 待核实 + * lng : 116.07951602267566 + * isOvertime : 1 + * casetypeDetailCode : 01 + * onedeptid : + * eorc : 1 + * caseid : 202103190001 + * casetypeCode : 06 + * createUser : 1 + * nodeLimittime : 2021-03-19 11:23:03 + * sourceName : 热线电话 + * reportTime : 2021-03-19 10:22:56 + */ + + private int isPostpone; + private String description; + private String createUserName; + private int source; + private String eorcName; + private String casetypeDetailName; + private String remainingTime; + private String casetypeName; + private String processId; + private int caseState; + private String id; + private String reportSupervisorId; + private String fieldintro; + private String lat; + private String caseStateName; + private String lng; + private String isOvertime; + private String casetypeDetailCode; + private String onedeptid; + private String eorc; + private String caseid; + private String casetypeCode; + private String createUser; + private String nodeLimittime; + private String sourceName; + private String reportTime; + + public int getIsPostpone() { + return isPostpone; + } + + public void setIsPostpone(int isPostpone) { + this.isPostpone = isPostpone; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public int getSource() { + return source; + } + + public void setSource(int source) { + this.source = source; + } + + public String getEorcName() { + return eorcName; + } + + public void setEorcName(String eorcName) { + this.eorcName = eorcName; + } + + public String getCasetypeDetailName() { + return casetypeDetailName; + } + + public void setCasetypeDetailName(String casetypeDetailName) { + this.casetypeDetailName = casetypeDetailName; + } + + public String getRemainingTime() { + return remainingTime; + } + + public void setRemainingTime(String remainingTime) { + this.remainingTime = remainingTime; + } + + public String getCasetypeName() { + return casetypeName; + } + + public void setCasetypeName(String casetypeName) { + this.casetypeName = casetypeName; + } + + public String getProcessId() { + return processId; + } + + public void setProcessId(String processId) { + this.processId = processId; + } + + public int getCaseState() { + return caseState; + } + + public void setCaseState(int caseState) { + this.caseState = caseState; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getReportSupervisorId() { + return reportSupervisorId; + } + + public void setReportSupervisorId(String reportSupervisorId) { + this.reportSupervisorId = reportSupervisorId; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getLat() { + return lat; + } + + public void setLat(String lat) { + this.lat = lat; + } + + public String getCaseStateName() { + return caseStateName; + } + + public void setCaseStateName(String caseStateName) { + this.caseStateName = caseStateName; + } + + public String getLng() { + return lng; + } + + public void setLng(String lng) { + this.lng = lng; + } + + public String getIsOvertime() { + return isOvertime; + } + + public void setIsOvertime(String isOvertime) { + this.isOvertime = isOvertime; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getOnedeptid() { + return onedeptid; + } + + public void setOnedeptid(String onedeptid) { + this.onedeptid = onedeptid; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCaseid() { + return caseid; + } + + public void setCaseid(String caseid) { + this.caseid = caseid; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getNodeLimittime() { + return nodeLimittime; + } + + public void setNodeLimittime(String nodeLimittime) { + this.nodeLimittime = nodeLimittime; + } + + public String getSourceName() { + return sourceName; + } + + public void setSourceName(String sourceName) { + this.sourceName = sourceName; + } + + public String getReportTime() { + return reportTime; + } + + public void setReportTime(String reportTime) { + this.reportTime = reportTime; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java new file mode 100644 index 0000000..6918d00 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java @@ -0,0 +1,86 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseStatusBean { + + /** + * code : 200.0 + * data : [{"name":"待核实","id":"92","value":"0"},{"name":"核实无效","id":"93","value":"1"},{"name":"待立案","id":"94","value":"10"},{"name":"预立案","id":"95","value":"11"},{"name":"待派发","id":"96","value":"20"},{"name":"挂起","id":"98","value":"22"},{"name":"预派发","id":"99","value":"23"},{"name":"待处理","id":"100","value":"30"},{"name":"二级处理审核","id":"101","value":"31"},{"name":"调整批示","id":"102","value":"36"},{"name":"部门调整批示","id":"103","value":"37"},{"name":"处置通处理","id":"104","value":"39"},{"name":"待调整","id":"105","value":"40"},{"name":"授权审核","id":"106","value":"43"},{"name":"部门授权审核","id":"107","value":"45"},{"name":"处理审核","id":"108","value":"46"},{"name":"待派发核查","id":"109","value":"50"},{"name":"现场核查","id":"110","value":"51"},{"name":"核查通过","id":"112","value":"60"},{"name":"核查未通过","id":"113","value":"61"},{"name":"快速上报","id":"114","value":"62"},{"name":"待结案","id":"115","value":"63"},{"name":"正常结案","id":"116","value":"70"},{"name":"案件作废","id":"117","value":"75"},{"name":"不予立案","id":"118","value":"76"},{"name":"销案","id":"119","value":"77"},{"name":"处理完成","id":"120","value":"301"},{"name":"申请调整","id":"121","value":"302"},{"name":"申请延期","id":"122","value":"303"},{"name":"申请缓办","id":"158","value":"304"},{"name":"待派发核实","id":"173","value":"3"}] + * message : 请求成功 + * success : true + */ + + private double code; + private String message; + private boolean success; + private List data; + + public double getCode() { + return code; + } + + public void setCode(double code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 待核实 + * id : 92 + * value : 0 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java new file mode 100644 index 0000000..0a939d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java @@ -0,0 +1,52 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseListModelImpl implements ICaseListModel { + + private OnGetCaseListListener listener; + + public CaseListModelImpl(OnGetCaseListListener caseListListener) { + this.listener = caseListListener; + } + + public interface OnGetCaseListListener { + void onSuccess(CaseListResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { + Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseState, + registerTimeBegin, registerTimeEnd, eorc, limit, offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseListResultBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java new file mode 100644 index 0000000..65e1c13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseStatusModelImpl implements ICaseStatusModel { + + private OnGetCaseStatusListener listener; + + public CaseStatusModelImpl(OnGetCaseStatusListener onGetCaseStatusListener) { + this.listener = onGetCaseStatusListener; + } + + public interface OnGetCaseStatusListener { + void onSuccess(CaseStatusBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCaseStatusResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseStatusBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java new file mode 100644 index 0000000..7968c67 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseListModel { + Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, + int limit, int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java new file mode 100644 index 0000000..6b21b13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseStatusModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java new file mode 100644 index 0000000..6cbb05d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java @@ -0,0 +1,41 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseListModelImpl; +import com.casic.dcms.mvp.view.ICaseListView; + +public class CaseListPresenterImpl extends BasePresenter implements ICaseListPresenter, CaseListModelImpl.OnGetCaseListListener { + + private ICaseListView view; + private CaseListModelImpl actionModel; + + public CaseListPresenterImpl(ICaseListView caseListView) { + this.view = caseListView; + actionModel = new CaseListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(casetypeCode, + casetypeDetailCode, caseState, registerTimeBegin, registerTimeEnd, eorc, limit, offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CaseListResultBean resultBean) { + view.hideProgress(); + view.obtainCaseStatusData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java index 4889877..376e430 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -10,8 +10,8 @@ private ICaseSmallClassView view; private CaseSmallClassModelImpl actionModel; - public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { - this.view = caseTypeView; + public CaseSmallClassPresenterImpl(ICaseSmallClassView smallClassView) { + this.view = smallClassView; actionModel = new CaseSmallClassModelImpl(this); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java new file mode 100644 index 0000000..e297a23 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseStatusModelImpl; +import com.casic.dcms.mvp.view.ICaseStatusView; + +public class CaseStatusPresenterImpl extends BasePresenter implements ICaseStatusPresenter, CaseStatusModelImpl.OnGetCaseStatusListener { + + private ICaseStatusView view; + private CaseStatusModelImpl actionModel; + + public CaseStatusPresenterImpl(ICaseStatusView caseStatusView) { + this.view = caseStatusView; + actionModel = new CaseStatusModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CaseStatusBean resultBean) { + view.obtainCaseStatusData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java new file mode 100644 index 0000000..67be846 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java @@ -0,0 +1,8 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseListPresenter { + void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java new file mode 100644 index 0000000..19f2532 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseStatusPresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseListView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseListView.java new file mode 100644 index 0000000..430b7b7 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseListView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseListResultBean; + +public interface ICaseListView { + void showProgress(); + + void hideProgress(); + + void obtainCaseStatusData(CaseListResultBean resultBean); +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d5c56ab..deeff33 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -44,6 +44,9 @@ + + + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public CaseListResultAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_case_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView leftTextView; + private TextView titleView; + private TextView contentView; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + leftTextView = itemView.findViewById(R.id.leftTextView); + titleView = itemView.findViewById(R.id.titleView); + contentView = itemView.findViewById(R.id.contentView); + } + + void bindView(CaseListResultBean.DataBean.RowsBean rowsBean) { + String eorcName = rowsBean.getEorcName(); + leftTextView.setText(eorcName.substring(0, 1)); + titleView.setText(rowsBean.getCasetypeName()); + contentView.setText(rowsBean.getCasetypeDetailName()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java new file mode 100644 index 0000000..3ac2b7b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java @@ -0,0 +1,342 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseListResultBean { + + /** + * code : 200 + * data : {"rows":[{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}],"total":3} + * message : 请求成功 + * success : true + */ + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + /** + * rows : [{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}] + * total : 3 + */ + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * isPostpone : 0 + * description : 音频测试 + * createUserName : 超级管理员 + * source : 11 + * eorcName : 事件 + * casetypeDetailName : 违规高空悬吊作业 + * remainingTime : 超时729小时6分钟 + * casetypeName : 其他事件 + * processId : 2680008 + * caseState : 0 + * id : 1372735305680994306 + * reportSupervisorId : + * fieldintro : 音频测试 + * lat : 27.75386000913368 + * caseStateName : 待核实 + * lng : 116.07951602267566 + * isOvertime : 1 + * casetypeDetailCode : 01 + * onedeptid : + * eorc : 1 + * caseid : 202103190001 + * casetypeCode : 06 + * createUser : 1 + * nodeLimittime : 2021-03-19 11:23:03 + * sourceName : 热线电话 + * reportTime : 2021-03-19 10:22:56 + */ + + private int isPostpone; + private String description; + private String createUserName; + private int source; + private String eorcName; + private String casetypeDetailName; + private String remainingTime; + private String casetypeName; + private String processId; + private int caseState; + private String id; + private String reportSupervisorId; + private String fieldintro; + private String lat; + private String caseStateName; + private String lng; + private String isOvertime; + private String casetypeDetailCode; + private String onedeptid; + private String eorc; + private String caseid; + private String casetypeCode; + private String createUser; + private String nodeLimittime; + private String sourceName; + private String reportTime; + + public int getIsPostpone() { + return isPostpone; + } + + public void setIsPostpone(int isPostpone) { + this.isPostpone = isPostpone; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public int getSource() { + return source; + } + + public void setSource(int source) { + this.source = source; + } + + public String getEorcName() { + return eorcName; + } + + public void setEorcName(String eorcName) { + this.eorcName = eorcName; + } + + public String getCasetypeDetailName() { + return casetypeDetailName; + } + + public void setCasetypeDetailName(String casetypeDetailName) { + this.casetypeDetailName = casetypeDetailName; + } + + public String getRemainingTime() { + return remainingTime; + } + + public void setRemainingTime(String remainingTime) { + this.remainingTime = remainingTime; + } + + public String getCasetypeName() { + return casetypeName; + } + + public void setCasetypeName(String casetypeName) { + this.casetypeName = casetypeName; + } + + public String getProcessId() { + return processId; + } + + public void setProcessId(String processId) { + this.processId = processId; + } + + public int getCaseState() { + return caseState; + } + + public void setCaseState(int caseState) { + this.caseState = caseState; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getReportSupervisorId() { + return reportSupervisorId; + } + + public void setReportSupervisorId(String reportSupervisorId) { + this.reportSupervisorId = reportSupervisorId; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getLat() { + return lat; + } + + public void setLat(String lat) { + this.lat = lat; + } + + public String getCaseStateName() { + return caseStateName; + } + + public void setCaseStateName(String caseStateName) { + this.caseStateName = caseStateName; + } + + public String getLng() { + return lng; + } + + public void setLng(String lng) { + this.lng = lng; + } + + public String getIsOvertime() { + return isOvertime; + } + + public void setIsOvertime(String isOvertime) { + this.isOvertime = isOvertime; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getOnedeptid() { + return onedeptid; + } + + public void setOnedeptid(String onedeptid) { + this.onedeptid = onedeptid; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCaseid() { + return caseid; + } + + public void setCaseid(String caseid) { + this.caseid = caseid; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getNodeLimittime() { + return nodeLimittime; + } + + public void setNodeLimittime(String nodeLimittime) { + this.nodeLimittime = nodeLimittime; + } + + public String getSourceName() { + return sourceName; + } + + public void setSourceName(String sourceName) { + this.sourceName = sourceName; + } + + public String getReportTime() { + return reportTime; + } + + public void setReportTime(String reportTime) { + this.reportTime = reportTime; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java new file mode 100644 index 0000000..6918d00 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java @@ -0,0 +1,86 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseStatusBean { + + /** + * code : 200.0 + * data : [{"name":"待核实","id":"92","value":"0"},{"name":"核实无效","id":"93","value":"1"},{"name":"待立案","id":"94","value":"10"},{"name":"预立案","id":"95","value":"11"},{"name":"待派发","id":"96","value":"20"},{"name":"挂起","id":"98","value":"22"},{"name":"预派发","id":"99","value":"23"},{"name":"待处理","id":"100","value":"30"},{"name":"二级处理审核","id":"101","value":"31"},{"name":"调整批示","id":"102","value":"36"},{"name":"部门调整批示","id":"103","value":"37"},{"name":"处置通处理","id":"104","value":"39"},{"name":"待调整","id":"105","value":"40"},{"name":"授权审核","id":"106","value":"43"},{"name":"部门授权审核","id":"107","value":"45"},{"name":"处理审核","id":"108","value":"46"},{"name":"待派发核查","id":"109","value":"50"},{"name":"现场核查","id":"110","value":"51"},{"name":"核查通过","id":"112","value":"60"},{"name":"核查未通过","id":"113","value":"61"},{"name":"快速上报","id":"114","value":"62"},{"name":"待结案","id":"115","value":"63"},{"name":"正常结案","id":"116","value":"70"},{"name":"案件作废","id":"117","value":"75"},{"name":"不予立案","id":"118","value":"76"},{"name":"销案","id":"119","value":"77"},{"name":"处理完成","id":"120","value":"301"},{"name":"申请调整","id":"121","value":"302"},{"name":"申请延期","id":"122","value":"303"},{"name":"申请缓办","id":"158","value":"304"},{"name":"待派发核实","id":"173","value":"3"}] + * message : 请求成功 + * success : true + */ + + private double code; + private String message; + private boolean success; + private List data; + + public double getCode() { + return code; + } + + public void setCode(double code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 待核实 + * id : 92 + * value : 0 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java new file mode 100644 index 0000000..0a939d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java @@ -0,0 +1,52 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseListModelImpl implements ICaseListModel { + + private OnGetCaseListListener listener; + + public CaseListModelImpl(OnGetCaseListListener caseListListener) { + this.listener = caseListListener; + } + + public interface OnGetCaseListListener { + void onSuccess(CaseListResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { + Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseState, + registerTimeBegin, registerTimeEnd, eorc, limit, offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseListResultBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java new file mode 100644 index 0000000..65e1c13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseStatusModelImpl implements ICaseStatusModel { + + private OnGetCaseStatusListener listener; + + public CaseStatusModelImpl(OnGetCaseStatusListener onGetCaseStatusListener) { + this.listener = onGetCaseStatusListener; + } + + public interface OnGetCaseStatusListener { + void onSuccess(CaseStatusBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCaseStatusResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseStatusBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java new file mode 100644 index 0000000..7968c67 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseListModel { + Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, + int limit, int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java new file mode 100644 index 0000000..6b21b13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseStatusModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java new file mode 100644 index 0000000..6cbb05d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java @@ -0,0 +1,41 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseListModelImpl; +import com.casic.dcms.mvp.view.ICaseListView; + +public class CaseListPresenterImpl extends BasePresenter implements ICaseListPresenter, CaseListModelImpl.OnGetCaseListListener { + + private ICaseListView view; + private CaseListModelImpl actionModel; + + public CaseListPresenterImpl(ICaseListView caseListView) { + this.view = caseListView; + actionModel = new CaseListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(casetypeCode, + casetypeDetailCode, caseState, registerTimeBegin, registerTimeEnd, eorc, limit, offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CaseListResultBean resultBean) { + view.hideProgress(); + view.obtainCaseStatusData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java index 4889877..376e430 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -10,8 +10,8 @@ private ICaseSmallClassView view; private CaseSmallClassModelImpl actionModel; - public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { - this.view = caseTypeView; + public CaseSmallClassPresenterImpl(ICaseSmallClassView smallClassView) { + this.view = smallClassView; actionModel = new CaseSmallClassModelImpl(this); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java new file mode 100644 index 0000000..e297a23 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseStatusModelImpl; +import com.casic.dcms.mvp.view.ICaseStatusView; + +public class CaseStatusPresenterImpl extends BasePresenter implements ICaseStatusPresenter, CaseStatusModelImpl.OnGetCaseStatusListener { + + private ICaseStatusView view; + private CaseStatusModelImpl actionModel; + + public CaseStatusPresenterImpl(ICaseStatusView caseStatusView) { + this.view = caseStatusView; + actionModel = new CaseStatusModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CaseStatusBean resultBean) { + view.obtainCaseStatusData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java new file mode 100644 index 0000000..67be846 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java @@ -0,0 +1,8 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseListPresenter { + void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java new file mode 100644 index 0000000..19f2532 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseStatusPresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseListView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseListView.java new file mode 100644 index 0000000..430b7b7 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseListView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseListResultBean; + +public interface ICaseListView { + void showProgress(); + + void hideProgress(); + + void obtainCaseStatusData(CaseListResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseStatusView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseStatusView.java new file mode 100644 index 0000000..76384f7 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseStatusView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseStatusBean; + +public interface ICaseStatusView { + void obtainCaseStatusData(CaseStatusBean resultBean); +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d5c56ab..deeff33 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -44,6 +44,9 @@ + + + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public CaseListResultAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_case_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView leftTextView; + private TextView titleView; + private TextView contentView; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + leftTextView = itemView.findViewById(R.id.leftTextView); + titleView = itemView.findViewById(R.id.titleView); + contentView = itemView.findViewById(R.id.contentView); + } + + void bindView(CaseListResultBean.DataBean.RowsBean rowsBean) { + String eorcName = rowsBean.getEorcName(); + leftTextView.setText(eorcName.substring(0, 1)); + titleView.setText(rowsBean.getCasetypeName()); + contentView.setText(rowsBean.getCasetypeDetailName()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java new file mode 100644 index 0000000..3ac2b7b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java @@ -0,0 +1,342 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseListResultBean { + + /** + * code : 200 + * data : {"rows":[{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}],"total":3} + * message : 请求成功 + * success : true + */ + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + /** + * rows : [{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}] + * total : 3 + */ + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * isPostpone : 0 + * description : 音频测试 + * createUserName : 超级管理员 + * source : 11 + * eorcName : 事件 + * casetypeDetailName : 违规高空悬吊作业 + * remainingTime : 超时729小时6分钟 + * casetypeName : 其他事件 + * processId : 2680008 + * caseState : 0 + * id : 1372735305680994306 + * reportSupervisorId : + * fieldintro : 音频测试 + * lat : 27.75386000913368 + * caseStateName : 待核实 + * lng : 116.07951602267566 + * isOvertime : 1 + * casetypeDetailCode : 01 + * onedeptid : + * eorc : 1 + * caseid : 202103190001 + * casetypeCode : 06 + * createUser : 1 + * nodeLimittime : 2021-03-19 11:23:03 + * sourceName : 热线电话 + * reportTime : 2021-03-19 10:22:56 + */ + + private int isPostpone; + private String description; + private String createUserName; + private int source; + private String eorcName; + private String casetypeDetailName; + private String remainingTime; + private String casetypeName; + private String processId; + private int caseState; + private String id; + private String reportSupervisorId; + private String fieldintro; + private String lat; + private String caseStateName; + private String lng; + private String isOvertime; + private String casetypeDetailCode; + private String onedeptid; + private String eorc; + private String caseid; + private String casetypeCode; + private String createUser; + private String nodeLimittime; + private String sourceName; + private String reportTime; + + public int getIsPostpone() { + return isPostpone; + } + + public void setIsPostpone(int isPostpone) { + this.isPostpone = isPostpone; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public int getSource() { + return source; + } + + public void setSource(int source) { + this.source = source; + } + + public String getEorcName() { + return eorcName; + } + + public void setEorcName(String eorcName) { + this.eorcName = eorcName; + } + + public String getCasetypeDetailName() { + return casetypeDetailName; + } + + public void setCasetypeDetailName(String casetypeDetailName) { + this.casetypeDetailName = casetypeDetailName; + } + + public String getRemainingTime() { + return remainingTime; + } + + public void setRemainingTime(String remainingTime) { + this.remainingTime = remainingTime; + } + + public String getCasetypeName() { + return casetypeName; + } + + public void setCasetypeName(String casetypeName) { + this.casetypeName = casetypeName; + } + + public String getProcessId() { + return processId; + } + + public void setProcessId(String processId) { + this.processId = processId; + } + + public int getCaseState() { + return caseState; + } + + public void setCaseState(int caseState) { + this.caseState = caseState; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getReportSupervisorId() { + return reportSupervisorId; + } + + public void setReportSupervisorId(String reportSupervisorId) { + this.reportSupervisorId = reportSupervisorId; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getLat() { + return lat; + } + + public void setLat(String lat) { + this.lat = lat; + } + + public String getCaseStateName() { + return caseStateName; + } + + public void setCaseStateName(String caseStateName) { + this.caseStateName = caseStateName; + } + + public String getLng() { + return lng; + } + + public void setLng(String lng) { + this.lng = lng; + } + + public String getIsOvertime() { + return isOvertime; + } + + public void setIsOvertime(String isOvertime) { + this.isOvertime = isOvertime; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getOnedeptid() { + return onedeptid; + } + + public void setOnedeptid(String onedeptid) { + this.onedeptid = onedeptid; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCaseid() { + return caseid; + } + + public void setCaseid(String caseid) { + this.caseid = caseid; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getNodeLimittime() { + return nodeLimittime; + } + + public void setNodeLimittime(String nodeLimittime) { + this.nodeLimittime = nodeLimittime; + } + + public String getSourceName() { + return sourceName; + } + + public void setSourceName(String sourceName) { + this.sourceName = sourceName; + } + + public String getReportTime() { + return reportTime; + } + + public void setReportTime(String reportTime) { + this.reportTime = reportTime; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java new file mode 100644 index 0000000..6918d00 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java @@ -0,0 +1,86 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseStatusBean { + + /** + * code : 200.0 + * data : [{"name":"待核实","id":"92","value":"0"},{"name":"核实无效","id":"93","value":"1"},{"name":"待立案","id":"94","value":"10"},{"name":"预立案","id":"95","value":"11"},{"name":"待派发","id":"96","value":"20"},{"name":"挂起","id":"98","value":"22"},{"name":"预派发","id":"99","value":"23"},{"name":"待处理","id":"100","value":"30"},{"name":"二级处理审核","id":"101","value":"31"},{"name":"调整批示","id":"102","value":"36"},{"name":"部门调整批示","id":"103","value":"37"},{"name":"处置通处理","id":"104","value":"39"},{"name":"待调整","id":"105","value":"40"},{"name":"授权审核","id":"106","value":"43"},{"name":"部门授权审核","id":"107","value":"45"},{"name":"处理审核","id":"108","value":"46"},{"name":"待派发核查","id":"109","value":"50"},{"name":"现场核查","id":"110","value":"51"},{"name":"核查通过","id":"112","value":"60"},{"name":"核查未通过","id":"113","value":"61"},{"name":"快速上报","id":"114","value":"62"},{"name":"待结案","id":"115","value":"63"},{"name":"正常结案","id":"116","value":"70"},{"name":"案件作废","id":"117","value":"75"},{"name":"不予立案","id":"118","value":"76"},{"name":"销案","id":"119","value":"77"},{"name":"处理完成","id":"120","value":"301"},{"name":"申请调整","id":"121","value":"302"},{"name":"申请延期","id":"122","value":"303"},{"name":"申请缓办","id":"158","value":"304"},{"name":"待派发核实","id":"173","value":"3"}] + * message : 请求成功 + * success : true + */ + + private double code; + private String message; + private boolean success; + private List data; + + public double getCode() { + return code; + } + + public void setCode(double code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 待核实 + * id : 92 + * value : 0 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java new file mode 100644 index 0000000..0a939d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java @@ -0,0 +1,52 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseListModelImpl implements ICaseListModel { + + private OnGetCaseListListener listener; + + public CaseListModelImpl(OnGetCaseListListener caseListListener) { + this.listener = caseListListener; + } + + public interface OnGetCaseListListener { + void onSuccess(CaseListResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { + Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseState, + registerTimeBegin, registerTimeEnd, eorc, limit, offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseListResultBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java new file mode 100644 index 0000000..65e1c13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseStatusModelImpl implements ICaseStatusModel { + + private OnGetCaseStatusListener listener; + + public CaseStatusModelImpl(OnGetCaseStatusListener onGetCaseStatusListener) { + this.listener = onGetCaseStatusListener; + } + + public interface OnGetCaseStatusListener { + void onSuccess(CaseStatusBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCaseStatusResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseStatusBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java new file mode 100644 index 0000000..7968c67 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseListModel { + Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, + int limit, int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java new file mode 100644 index 0000000..6b21b13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseStatusModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java new file mode 100644 index 0000000..6cbb05d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java @@ -0,0 +1,41 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseListModelImpl; +import com.casic.dcms.mvp.view.ICaseListView; + +public class CaseListPresenterImpl extends BasePresenter implements ICaseListPresenter, CaseListModelImpl.OnGetCaseListListener { + + private ICaseListView view; + private CaseListModelImpl actionModel; + + public CaseListPresenterImpl(ICaseListView caseListView) { + this.view = caseListView; + actionModel = new CaseListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(casetypeCode, + casetypeDetailCode, caseState, registerTimeBegin, registerTimeEnd, eorc, limit, offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CaseListResultBean resultBean) { + view.hideProgress(); + view.obtainCaseStatusData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java index 4889877..376e430 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -10,8 +10,8 @@ private ICaseSmallClassView view; private CaseSmallClassModelImpl actionModel; - public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { - this.view = caseTypeView; + public CaseSmallClassPresenterImpl(ICaseSmallClassView smallClassView) { + this.view = smallClassView; actionModel = new CaseSmallClassModelImpl(this); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java new file mode 100644 index 0000000..e297a23 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseStatusModelImpl; +import com.casic.dcms.mvp.view.ICaseStatusView; + +public class CaseStatusPresenterImpl extends BasePresenter implements ICaseStatusPresenter, CaseStatusModelImpl.OnGetCaseStatusListener { + + private ICaseStatusView view; + private CaseStatusModelImpl actionModel; + + public CaseStatusPresenterImpl(ICaseStatusView caseStatusView) { + this.view = caseStatusView; + actionModel = new CaseStatusModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CaseStatusBean resultBean) { + view.obtainCaseStatusData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java new file mode 100644 index 0000000..67be846 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java @@ -0,0 +1,8 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseListPresenter { + void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java new file mode 100644 index 0000000..19f2532 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseStatusPresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseListView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseListView.java new file mode 100644 index 0000000..430b7b7 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseListView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseListResultBean; + +public interface ICaseListView { + void showProgress(); + + void hideProgress(); + + void obtainCaseStatusData(CaseListResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseStatusView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseStatusView.java new file mode 100644 index 0000000..76384f7 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseStatusView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseStatusBean; + +public interface ICaseStatusView { + void obtainCaseStatusData(CaseStatusBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java new file mode 100644 index 0000000..2324230 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -0,0 +1,97 @@ +package com.casic.dcms.ui; + +import android.view.View; +import android.widget.GridView; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseListResultBean; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.lang.reflect.Type; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseDetailActivity extends BaseActivity implements View.OnClickListener { + + private static final String TAG = "CaseDetailActivity"; + @BindView(R.id.caseTopLayout) + QMUITopBarLayout caseTopLayout; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseStatusView) + TextView caseStatusView; + @BindView(R.id.caseTypeView) + TextView caseTypeView; + @BindView(R.id.caseLargeTypeView) + TextView caseLargeTypeView; + @BindView(R.id.caseSmallTypeView) + TextView caseSmallTypeView; + @BindView(R.id.caseCommunityView) + TextView caseCommunityView; + @BindView(R.id.casePlaceView) + TextView casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.casePicGridView) + GridView casePicGridView; + + @Override + public int initLayoutView() { + return R.layout.activity_case_detail; + } + + @Override + protected void setupTopBarLayout() { + caseTopLayout.setTitle("案卷详情").setTextColor(ContextCompat.getColor(this, R.color.white)); + caseTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + caseTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + Gson gson = new Gson(); + String rowsBeanJson = getIntent().getStringExtra("rowsBeanJson"); + Type type = new TypeToken() { + }.getType(); + CaseListResultBean.DataBean.RowsBean rowsBean = gson.fromJson(rowsBeanJson, type); + assert rowsBean != null; + caseNumberView.setText(rowsBean.getCaseid()); + caseStatusView.setText(rowsBean.getCaseStateName()); + caseTypeView.setText(rowsBean.getEorcName()); + caseLargeTypeView.setText(rowsBean.getCasetypeName()); + caseSmallTypeView.setText(rowsBean.getCasetypeDetailName()); +// caseCommunityView.setText(); +// casePlaceView.setText(); + caseSituationView.setText(rowsBean.getDescription()); + } + + @Override + public void initEvent() { + + } + + @OnClick({R.id.caseAudioView, R.id.handleRecordLayout}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseAudioView: + + break; + case R.id.handleRecordLayout: + + break; + } + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d5c56ab..deeff33 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -44,6 +44,9 @@ + + + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public CaseListResultAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_case_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView leftTextView; + private TextView titleView; + private TextView contentView; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + leftTextView = itemView.findViewById(R.id.leftTextView); + titleView = itemView.findViewById(R.id.titleView); + contentView = itemView.findViewById(R.id.contentView); + } + + void bindView(CaseListResultBean.DataBean.RowsBean rowsBean) { + String eorcName = rowsBean.getEorcName(); + leftTextView.setText(eorcName.substring(0, 1)); + titleView.setText(rowsBean.getCasetypeName()); + contentView.setText(rowsBean.getCasetypeDetailName()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java new file mode 100644 index 0000000..3ac2b7b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java @@ -0,0 +1,342 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseListResultBean { + + /** + * code : 200 + * data : {"rows":[{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}],"total":3} + * message : 请求成功 + * success : true + */ + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + /** + * rows : [{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}] + * total : 3 + */ + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * isPostpone : 0 + * description : 音频测试 + * createUserName : 超级管理员 + * source : 11 + * eorcName : 事件 + * casetypeDetailName : 违规高空悬吊作业 + * remainingTime : 超时729小时6分钟 + * casetypeName : 其他事件 + * processId : 2680008 + * caseState : 0 + * id : 1372735305680994306 + * reportSupervisorId : + * fieldintro : 音频测试 + * lat : 27.75386000913368 + * caseStateName : 待核实 + * lng : 116.07951602267566 + * isOvertime : 1 + * casetypeDetailCode : 01 + * onedeptid : + * eorc : 1 + * caseid : 202103190001 + * casetypeCode : 06 + * createUser : 1 + * nodeLimittime : 2021-03-19 11:23:03 + * sourceName : 热线电话 + * reportTime : 2021-03-19 10:22:56 + */ + + private int isPostpone; + private String description; + private String createUserName; + private int source; + private String eorcName; + private String casetypeDetailName; + private String remainingTime; + private String casetypeName; + private String processId; + private int caseState; + private String id; + private String reportSupervisorId; + private String fieldintro; + private String lat; + private String caseStateName; + private String lng; + private String isOvertime; + private String casetypeDetailCode; + private String onedeptid; + private String eorc; + private String caseid; + private String casetypeCode; + private String createUser; + private String nodeLimittime; + private String sourceName; + private String reportTime; + + public int getIsPostpone() { + return isPostpone; + } + + public void setIsPostpone(int isPostpone) { + this.isPostpone = isPostpone; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public int getSource() { + return source; + } + + public void setSource(int source) { + this.source = source; + } + + public String getEorcName() { + return eorcName; + } + + public void setEorcName(String eorcName) { + this.eorcName = eorcName; + } + + public String getCasetypeDetailName() { + return casetypeDetailName; + } + + public void setCasetypeDetailName(String casetypeDetailName) { + this.casetypeDetailName = casetypeDetailName; + } + + public String getRemainingTime() { + return remainingTime; + } + + public void setRemainingTime(String remainingTime) { + this.remainingTime = remainingTime; + } + + public String getCasetypeName() { + return casetypeName; + } + + public void setCasetypeName(String casetypeName) { + this.casetypeName = casetypeName; + } + + public String getProcessId() { + return processId; + } + + public void setProcessId(String processId) { + this.processId = processId; + } + + public int getCaseState() { + return caseState; + } + + public void setCaseState(int caseState) { + this.caseState = caseState; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getReportSupervisorId() { + return reportSupervisorId; + } + + public void setReportSupervisorId(String reportSupervisorId) { + this.reportSupervisorId = reportSupervisorId; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getLat() { + return lat; + } + + public void setLat(String lat) { + this.lat = lat; + } + + public String getCaseStateName() { + return caseStateName; + } + + public void setCaseStateName(String caseStateName) { + this.caseStateName = caseStateName; + } + + public String getLng() { + return lng; + } + + public void setLng(String lng) { + this.lng = lng; + } + + public String getIsOvertime() { + return isOvertime; + } + + public void setIsOvertime(String isOvertime) { + this.isOvertime = isOvertime; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getOnedeptid() { + return onedeptid; + } + + public void setOnedeptid(String onedeptid) { + this.onedeptid = onedeptid; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCaseid() { + return caseid; + } + + public void setCaseid(String caseid) { + this.caseid = caseid; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getNodeLimittime() { + return nodeLimittime; + } + + public void setNodeLimittime(String nodeLimittime) { + this.nodeLimittime = nodeLimittime; + } + + public String getSourceName() { + return sourceName; + } + + public void setSourceName(String sourceName) { + this.sourceName = sourceName; + } + + public String getReportTime() { + return reportTime; + } + + public void setReportTime(String reportTime) { + this.reportTime = reportTime; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java new file mode 100644 index 0000000..6918d00 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java @@ -0,0 +1,86 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseStatusBean { + + /** + * code : 200.0 + * data : [{"name":"待核实","id":"92","value":"0"},{"name":"核实无效","id":"93","value":"1"},{"name":"待立案","id":"94","value":"10"},{"name":"预立案","id":"95","value":"11"},{"name":"待派发","id":"96","value":"20"},{"name":"挂起","id":"98","value":"22"},{"name":"预派发","id":"99","value":"23"},{"name":"待处理","id":"100","value":"30"},{"name":"二级处理审核","id":"101","value":"31"},{"name":"调整批示","id":"102","value":"36"},{"name":"部门调整批示","id":"103","value":"37"},{"name":"处置通处理","id":"104","value":"39"},{"name":"待调整","id":"105","value":"40"},{"name":"授权审核","id":"106","value":"43"},{"name":"部门授权审核","id":"107","value":"45"},{"name":"处理审核","id":"108","value":"46"},{"name":"待派发核查","id":"109","value":"50"},{"name":"现场核查","id":"110","value":"51"},{"name":"核查通过","id":"112","value":"60"},{"name":"核查未通过","id":"113","value":"61"},{"name":"快速上报","id":"114","value":"62"},{"name":"待结案","id":"115","value":"63"},{"name":"正常结案","id":"116","value":"70"},{"name":"案件作废","id":"117","value":"75"},{"name":"不予立案","id":"118","value":"76"},{"name":"销案","id":"119","value":"77"},{"name":"处理完成","id":"120","value":"301"},{"name":"申请调整","id":"121","value":"302"},{"name":"申请延期","id":"122","value":"303"},{"name":"申请缓办","id":"158","value":"304"},{"name":"待派发核实","id":"173","value":"3"}] + * message : 请求成功 + * success : true + */ + + private double code; + private String message; + private boolean success; + private List data; + + public double getCode() { + return code; + } + + public void setCode(double code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 待核实 + * id : 92 + * value : 0 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java new file mode 100644 index 0000000..0a939d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java @@ -0,0 +1,52 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseListModelImpl implements ICaseListModel { + + private OnGetCaseListListener listener; + + public CaseListModelImpl(OnGetCaseListListener caseListListener) { + this.listener = caseListListener; + } + + public interface OnGetCaseListListener { + void onSuccess(CaseListResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { + Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseState, + registerTimeBegin, registerTimeEnd, eorc, limit, offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseListResultBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java new file mode 100644 index 0000000..65e1c13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseStatusModelImpl implements ICaseStatusModel { + + private OnGetCaseStatusListener listener; + + public CaseStatusModelImpl(OnGetCaseStatusListener onGetCaseStatusListener) { + this.listener = onGetCaseStatusListener; + } + + public interface OnGetCaseStatusListener { + void onSuccess(CaseStatusBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCaseStatusResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseStatusBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java new file mode 100644 index 0000000..7968c67 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseListModel { + Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, + int limit, int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java new file mode 100644 index 0000000..6b21b13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseStatusModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java new file mode 100644 index 0000000..6cbb05d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java @@ -0,0 +1,41 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseListModelImpl; +import com.casic.dcms.mvp.view.ICaseListView; + +public class CaseListPresenterImpl extends BasePresenter implements ICaseListPresenter, CaseListModelImpl.OnGetCaseListListener { + + private ICaseListView view; + private CaseListModelImpl actionModel; + + public CaseListPresenterImpl(ICaseListView caseListView) { + this.view = caseListView; + actionModel = new CaseListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(casetypeCode, + casetypeDetailCode, caseState, registerTimeBegin, registerTimeEnd, eorc, limit, offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CaseListResultBean resultBean) { + view.hideProgress(); + view.obtainCaseStatusData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java index 4889877..376e430 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -10,8 +10,8 @@ private ICaseSmallClassView view; private CaseSmallClassModelImpl actionModel; - public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { - this.view = caseTypeView; + public CaseSmallClassPresenterImpl(ICaseSmallClassView smallClassView) { + this.view = smallClassView; actionModel = new CaseSmallClassModelImpl(this); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java new file mode 100644 index 0000000..e297a23 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseStatusModelImpl; +import com.casic.dcms.mvp.view.ICaseStatusView; + +public class CaseStatusPresenterImpl extends BasePresenter implements ICaseStatusPresenter, CaseStatusModelImpl.OnGetCaseStatusListener { + + private ICaseStatusView view; + private CaseStatusModelImpl actionModel; + + public CaseStatusPresenterImpl(ICaseStatusView caseStatusView) { + this.view = caseStatusView; + actionModel = new CaseStatusModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CaseStatusBean resultBean) { + view.obtainCaseStatusData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java new file mode 100644 index 0000000..67be846 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java @@ -0,0 +1,8 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseListPresenter { + void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java new file mode 100644 index 0000000..19f2532 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseStatusPresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseListView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseListView.java new file mode 100644 index 0000000..430b7b7 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseListView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseListResultBean; + +public interface ICaseListView { + void showProgress(); + + void hideProgress(); + + void obtainCaseStatusData(CaseListResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseStatusView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseStatusView.java new file mode 100644 index 0000000..76384f7 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseStatusView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseStatusBean; + +public interface ICaseStatusView { + void obtainCaseStatusData(CaseStatusBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java new file mode 100644 index 0000000..2324230 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -0,0 +1,97 @@ +package com.casic.dcms.ui; + +import android.view.View; +import android.widget.GridView; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseListResultBean; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.lang.reflect.Type; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseDetailActivity extends BaseActivity implements View.OnClickListener { + + private static final String TAG = "CaseDetailActivity"; + @BindView(R.id.caseTopLayout) + QMUITopBarLayout caseTopLayout; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseStatusView) + TextView caseStatusView; + @BindView(R.id.caseTypeView) + TextView caseTypeView; + @BindView(R.id.caseLargeTypeView) + TextView caseLargeTypeView; + @BindView(R.id.caseSmallTypeView) + TextView caseSmallTypeView; + @BindView(R.id.caseCommunityView) + TextView caseCommunityView; + @BindView(R.id.casePlaceView) + TextView casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.casePicGridView) + GridView casePicGridView; + + @Override + public int initLayoutView() { + return R.layout.activity_case_detail; + } + + @Override + protected void setupTopBarLayout() { + caseTopLayout.setTitle("案卷详情").setTextColor(ContextCompat.getColor(this, R.color.white)); + caseTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + caseTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + Gson gson = new Gson(); + String rowsBeanJson = getIntent().getStringExtra("rowsBeanJson"); + Type type = new TypeToken() { + }.getType(); + CaseListResultBean.DataBean.RowsBean rowsBean = gson.fromJson(rowsBeanJson, type); + assert rowsBean != null; + caseNumberView.setText(rowsBean.getCaseid()); + caseStatusView.setText(rowsBean.getCaseStateName()); + caseTypeView.setText(rowsBean.getEorcName()); + caseLargeTypeView.setText(rowsBean.getCasetypeName()); + caseSmallTypeView.setText(rowsBean.getCasetypeDetailName()); +// caseCommunityView.setText(); +// casePlaceView.setText(); + caseSituationView.setText(rowsBean.getDescription()); + } + + @Override + public void initEvent() { + + } + + @OnClick({R.id.caseAudioView, R.id.handleRecordLayout}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseAudioView: + + break; + case R.id.handleRecordLayout: + + break; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java new file mode 100644 index 0000000..1a68fb5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java @@ -0,0 +1,74 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.view.View; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.CaseListResultAdapter; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseListResultBean; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.lang.reflect.Type; +import java.util.List; + +import butterknife.BindView; + +public class CaseListResultActivity extends BaseActivity { + + @BindView(R.id.caseTopLayout) + QMUITopBarLayout caseTopLayout; + @BindView(R.id.caseRecyclerView) + RecyclerView caseRecyclerView; + + @Override + public int initLayoutView() { + return R.layout.activity_case_list; + } + + @Override + protected void setupTopBarLayout() { + caseTopLayout.setTitle("查询结果").setTextColor(ContextCompat.getColor(this, R.color.white)); + caseTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + caseTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + Gson gson = new Gson(); + String resultBeanJson = getIntent().getStringExtra("resultBeanJson"); + Type type = new TypeToken() { + }.getType(); + CaseListResultBean resultBean = gson.fromJson(resultBeanJson, type); + List dataRows = resultBean.getData().getRows(); + CaseListResultAdapter adapter = new CaseListResultAdapter(this, dataRows); + caseRecyclerView.setLayoutManager(new LinearLayoutManager(this)); + caseRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL)); + caseRecyclerView.setAdapter(adapter); + adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + Intent intent = new Intent(CaseListResultActivity.this, CaseDetailActivity.class); + intent.putExtra("rowsBeanJson", gson.toJson(dataRows.get(position))); + startActivity(intent); + } + }); + } + + @Override + public void initEvent() { + + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d5c56ab..deeff33 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -44,6 +44,9 @@ + + + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public CaseListResultAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_case_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView leftTextView; + private TextView titleView; + private TextView contentView; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + leftTextView = itemView.findViewById(R.id.leftTextView); + titleView = itemView.findViewById(R.id.titleView); + contentView = itemView.findViewById(R.id.contentView); + } + + void bindView(CaseListResultBean.DataBean.RowsBean rowsBean) { + String eorcName = rowsBean.getEorcName(); + leftTextView.setText(eorcName.substring(0, 1)); + titleView.setText(rowsBean.getCasetypeName()); + contentView.setText(rowsBean.getCasetypeDetailName()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java new file mode 100644 index 0000000..3ac2b7b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java @@ -0,0 +1,342 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseListResultBean { + + /** + * code : 200 + * data : {"rows":[{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}],"total":3} + * message : 请求成功 + * success : true + */ + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + /** + * rows : [{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}] + * total : 3 + */ + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * isPostpone : 0 + * description : 音频测试 + * createUserName : 超级管理员 + * source : 11 + * eorcName : 事件 + * casetypeDetailName : 违规高空悬吊作业 + * remainingTime : 超时729小时6分钟 + * casetypeName : 其他事件 + * processId : 2680008 + * caseState : 0 + * id : 1372735305680994306 + * reportSupervisorId : + * fieldintro : 音频测试 + * lat : 27.75386000913368 + * caseStateName : 待核实 + * lng : 116.07951602267566 + * isOvertime : 1 + * casetypeDetailCode : 01 + * onedeptid : + * eorc : 1 + * caseid : 202103190001 + * casetypeCode : 06 + * createUser : 1 + * nodeLimittime : 2021-03-19 11:23:03 + * sourceName : 热线电话 + * reportTime : 2021-03-19 10:22:56 + */ + + private int isPostpone; + private String description; + private String createUserName; + private int source; + private String eorcName; + private String casetypeDetailName; + private String remainingTime; + private String casetypeName; + private String processId; + private int caseState; + private String id; + private String reportSupervisorId; + private String fieldintro; + private String lat; + private String caseStateName; + private String lng; + private String isOvertime; + private String casetypeDetailCode; + private String onedeptid; + private String eorc; + private String caseid; + private String casetypeCode; + private String createUser; + private String nodeLimittime; + private String sourceName; + private String reportTime; + + public int getIsPostpone() { + return isPostpone; + } + + public void setIsPostpone(int isPostpone) { + this.isPostpone = isPostpone; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public int getSource() { + return source; + } + + public void setSource(int source) { + this.source = source; + } + + public String getEorcName() { + return eorcName; + } + + public void setEorcName(String eorcName) { + this.eorcName = eorcName; + } + + public String getCasetypeDetailName() { + return casetypeDetailName; + } + + public void setCasetypeDetailName(String casetypeDetailName) { + this.casetypeDetailName = casetypeDetailName; + } + + public String getRemainingTime() { + return remainingTime; + } + + public void setRemainingTime(String remainingTime) { + this.remainingTime = remainingTime; + } + + public String getCasetypeName() { + return casetypeName; + } + + public void setCasetypeName(String casetypeName) { + this.casetypeName = casetypeName; + } + + public String getProcessId() { + return processId; + } + + public void setProcessId(String processId) { + this.processId = processId; + } + + public int getCaseState() { + return caseState; + } + + public void setCaseState(int caseState) { + this.caseState = caseState; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getReportSupervisorId() { + return reportSupervisorId; + } + + public void setReportSupervisorId(String reportSupervisorId) { + this.reportSupervisorId = reportSupervisorId; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getLat() { + return lat; + } + + public void setLat(String lat) { + this.lat = lat; + } + + public String getCaseStateName() { + return caseStateName; + } + + public void setCaseStateName(String caseStateName) { + this.caseStateName = caseStateName; + } + + public String getLng() { + return lng; + } + + public void setLng(String lng) { + this.lng = lng; + } + + public String getIsOvertime() { + return isOvertime; + } + + public void setIsOvertime(String isOvertime) { + this.isOvertime = isOvertime; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getOnedeptid() { + return onedeptid; + } + + public void setOnedeptid(String onedeptid) { + this.onedeptid = onedeptid; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCaseid() { + return caseid; + } + + public void setCaseid(String caseid) { + this.caseid = caseid; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getNodeLimittime() { + return nodeLimittime; + } + + public void setNodeLimittime(String nodeLimittime) { + this.nodeLimittime = nodeLimittime; + } + + public String getSourceName() { + return sourceName; + } + + public void setSourceName(String sourceName) { + this.sourceName = sourceName; + } + + public String getReportTime() { + return reportTime; + } + + public void setReportTime(String reportTime) { + this.reportTime = reportTime; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java new file mode 100644 index 0000000..6918d00 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java @@ -0,0 +1,86 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseStatusBean { + + /** + * code : 200.0 + * data : [{"name":"待核实","id":"92","value":"0"},{"name":"核实无效","id":"93","value":"1"},{"name":"待立案","id":"94","value":"10"},{"name":"预立案","id":"95","value":"11"},{"name":"待派发","id":"96","value":"20"},{"name":"挂起","id":"98","value":"22"},{"name":"预派发","id":"99","value":"23"},{"name":"待处理","id":"100","value":"30"},{"name":"二级处理审核","id":"101","value":"31"},{"name":"调整批示","id":"102","value":"36"},{"name":"部门调整批示","id":"103","value":"37"},{"name":"处置通处理","id":"104","value":"39"},{"name":"待调整","id":"105","value":"40"},{"name":"授权审核","id":"106","value":"43"},{"name":"部门授权审核","id":"107","value":"45"},{"name":"处理审核","id":"108","value":"46"},{"name":"待派发核查","id":"109","value":"50"},{"name":"现场核查","id":"110","value":"51"},{"name":"核查通过","id":"112","value":"60"},{"name":"核查未通过","id":"113","value":"61"},{"name":"快速上报","id":"114","value":"62"},{"name":"待结案","id":"115","value":"63"},{"name":"正常结案","id":"116","value":"70"},{"name":"案件作废","id":"117","value":"75"},{"name":"不予立案","id":"118","value":"76"},{"name":"销案","id":"119","value":"77"},{"name":"处理完成","id":"120","value":"301"},{"name":"申请调整","id":"121","value":"302"},{"name":"申请延期","id":"122","value":"303"},{"name":"申请缓办","id":"158","value":"304"},{"name":"待派发核实","id":"173","value":"3"}] + * message : 请求成功 + * success : true + */ + + private double code; + private String message; + private boolean success; + private List data; + + public double getCode() { + return code; + } + + public void setCode(double code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 待核实 + * id : 92 + * value : 0 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java new file mode 100644 index 0000000..0a939d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java @@ -0,0 +1,52 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseListModelImpl implements ICaseListModel { + + private OnGetCaseListListener listener; + + public CaseListModelImpl(OnGetCaseListListener caseListListener) { + this.listener = caseListListener; + } + + public interface OnGetCaseListListener { + void onSuccess(CaseListResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { + Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseState, + registerTimeBegin, registerTimeEnd, eorc, limit, offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseListResultBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java new file mode 100644 index 0000000..65e1c13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseStatusModelImpl implements ICaseStatusModel { + + private OnGetCaseStatusListener listener; + + public CaseStatusModelImpl(OnGetCaseStatusListener onGetCaseStatusListener) { + this.listener = onGetCaseStatusListener; + } + + public interface OnGetCaseStatusListener { + void onSuccess(CaseStatusBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCaseStatusResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseStatusBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java new file mode 100644 index 0000000..7968c67 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseListModel { + Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, + int limit, int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java new file mode 100644 index 0000000..6b21b13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseStatusModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java new file mode 100644 index 0000000..6cbb05d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java @@ -0,0 +1,41 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseListModelImpl; +import com.casic.dcms.mvp.view.ICaseListView; + +public class CaseListPresenterImpl extends BasePresenter implements ICaseListPresenter, CaseListModelImpl.OnGetCaseListListener { + + private ICaseListView view; + private CaseListModelImpl actionModel; + + public CaseListPresenterImpl(ICaseListView caseListView) { + this.view = caseListView; + actionModel = new CaseListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(casetypeCode, + casetypeDetailCode, caseState, registerTimeBegin, registerTimeEnd, eorc, limit, offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CaseListResultBean resultBean) { + view.hideProgress(); + view.obtainCaseStatusData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java index 4889877..376e430 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -10,8 +10,8 @@ private ICaseSmallClassView view; private CaseSmallClassModelImpl actionModel; - public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { - this.view = caseTypeView; + public CaseSmallClassPresenterImpl(ICaseSmallClassView smallClassView) { + this.view = smallClassView; actionModel = new CaseSmallClassModelImpl(this); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java new file mode 100644 index 0000000..e297a23 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseStatusModelImpl; +import com.casic.dcms.mvp.view.ICaseStatusView; + +public class CaseStatusPresenterImpl extends BasePresenter implements ICaseStatusPresenter, CaseStatusModelImpl.OnGetCaseStatusListener { + + private ICaseStatusView view; + private CaseStatusModelImpl actionModel; + + public CaseStatusPresenterImpl(ICaseStatusView caseStatusView) { + this.view = caseStatusView; + actionModel = new CaseStatusModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CaseStatusBean resultBean) { + view.obtainCaseStatusData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java new file mode 100644 index 0000000..67be846 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java @@ -0,0 +1,8 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseListPresenter { + void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java new file mode 100644 index 0000000..19f2532 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseStatusPresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseListView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseListView.java new file mode 100644 index 0000000..430b7b7 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseListView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseListResultBean; + +public interface ICaseListView { + void showProgress(); + + void hideProgress(); + + void obtainCaseStatusData(CaseListResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseStatusView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseStatusView.java new file mode 100644 index 0000000..76384f7 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseStatusView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseStatusBean; + +public interface ICaseStatusView { + void obtainCaseStatusData(CaseStatusBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java new file mode 100644 index 0000000..2324230 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -0,0 +1,97 @@ +package com.casic.dcms.ui; + +import android.view.View; +import android.widget.GridView; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseListResultBean; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.lang.reflect.Type; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseDetailActivity extends BaseActivity implements View.OnClickListener { + + private static final String TAG = "CaseDetailActivity"; + @BindView(R.id.caseTopLayout) + QMUITopBarLayout caseTopLayout; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseStatusView) + TextView caseStatusView; + @BindView(R.id.caseTypeView) + TextView caseTypeView; + @BindView(R.id.caseLargeTypeView) + TextView caseLargeTypeView; + @BindView(R.id.caseSmallTypeView) + TextView caseSmallTypeView; + @BindView(R.id.caseCommunityView) + TextView caseCommunityView; + @BindView(R.id.casePlaceView) + TextView casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.casePicGridView) + GridView casePicGridView; + + @Override + public int initLayoutView() { + return R.layout.activity_case_detail; + } + + @Override + protected void setupTopBarLayout() { + caseTopLayout.setTitle("案卷详情").setTextColor(ContextCompat.getColor(this, R.color.white)); + caseTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + caseTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + Gson gson = new Gson(); + String rowsBeanJson = getIntent().getStringExtra("rowsBeanJson"); + Type type = new TypeToken() { + }.getType(); + CaseListResultBean.DataBean.RowsBean rowsBean = gson.fromJson(rowsBeanJson, type); + assert rowsBean != null; + caseNumberView.setText(rowsBean.getCaseid()); + caseStatusView.setText(rowsBean.getCaseStateName()); + caseTypeView.setText(rowsBean.getEorcName()); + caseLargeTypeView.setText(rowsBean.getCasetypeName()); + caseSmallTypeView.setText(rowsBean.getCasetypeDetailName()); +// caseCommunityView.setText(); +// casePlaceView.setText(); + caseSituationView.setText(rowsBean.getDescription()); + } + + @Override + public void initEvent() { + + } + + @OnClick({R.id.caseAudioView, R.id.handleRecordLayout}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseAudioView: + + break; + case R.id.handleRecordLayout: + + break; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java new file mode 100644 index 0000000..1a68fb5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java @@ -0,0 +1,74 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.view.View; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.CaseListResultAdapter; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseListResultBean; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.lang.reflect.Type; +import java.util.List; + +import butterknife.BindView; + +public class CaseListResultActivity extends BaseActivity { + + @BindView(R.id.caseTopLayout) + QMUITopBarLayout caseTopLayout; + @BindView(R.id.caseRecyclerView) + RecyclerView caseRecyclerView; + + @Override + public int initLayoutView() { + return R.layout.activity_case_list; + } + + @Override + protected void setupTopBarLayout() { + caseTopLayout.setTitle("查询结果").setTextColor(ContextCompat.getColor(this, R.color.white)); + caseTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + caseTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + Gson gson = new Gson(); + String resultBeanJson = getIntent().getStringExtra("resultBeanJson"); + Type type = new TypeToken() { + }.getType(); + CaseListResultBean resultBean = gson.fromJson(resultBeanJson, type); + List dataRows = resultBean.getData().getRows(); + CaseListResultAdapter adapter = new CaseListResultAdapter(this, dataRows); + caseRecyclerView.setLayoutManager(new LinearLayoutManager(this)); + caseRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL)); + caseRecyclerView.setAdapter(adapter); + adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + Intent intent = new Intent(CaseListResultActivity.this, CaseDetailActivity.class); + intent.putExtra("rowsBeanJson", gson.toJson(dataRows.get(position))); + startActivity(intent); + } + }); + } + + @Override + public void initEvent() { + + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java new file mode 100644 index 0000000..da9b919 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java @@ -0,0 +1,375 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseListPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseStatusPresenterImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseListView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.ICaseStatusView; +import com.casic.dcms.utils.ColorHelper; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.TimeOrDateUtil; +import com.casic.dcms.utils.ToastHelper; +import com.google.gson.Gson; +import com.jzxiang.pickerview.TimePickerDialog; +import com.jzxiang.pickerview.data.Type; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseSearchActivity extends BaseActivity implements View.OnClickListener, + ICaseLargeClassView, ICaseSmallClassView, ICaseStatusView, ICaseListView { + + private static final String TAG = "CaseSearchActivity"; + private Context context = this; + @BindView(R.id.caseTopLayout) + QMUITopBarLayout caseTopLayout; + @BindView(R.id.caseClassView) + TextView caseClassView; + @BindView(R.id.caseLargeClassView) + TextView caseLargeClassView; + @BindView(R.id.caseSmallClassView) + TextView caseSmallClassView; + @BindView(R.id.caseStatusView) + TextView caseStatusView; + @BindView(R.id.startTimeView) + TextView startTimeView; + @BindView(R.id.endTimeView) + TextView endTimeView; + @BindView(R.id.searchButton) + QMUIRoundButton searchButton; + @BindView(R.id.resetButton) + QMUIRoundButton resetButton; + + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private List largeClassBeans; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private List smallClassBeans; + private CaseStatusPresenterImpl caseStatusPresenter; + private CaseListPresenterImpl caseListPresenter; + private QMUITipDialog loadingDialog; + private String eorc; + private String typeDetailCode; + private String typeCode; + private Gson gson; + + @Override + public int initLayoutView() { + return R.layout.activity_case_search; + } + + @Override + protected void setupTopBarLayout() { + caseTopLayout.setTitle("案卷查询").setTextColor(ContextCompat.getColor(this, R.color.white)); + caseTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + caseTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseStatusPresenter = new CaseStatusPresenterImpl(this); + caseListPresenter = new CaseListPresenterImpl(this); + } + + @Override + public void initEvent() { + searchButton.setChangeAlphaWhenPress(true); + resetButton.setChangeAlphaWhenPress(true); + loadingDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("查询中,请稍后") + .create(); + gson = new Gson(); + } + + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseStatusLayout, + R.id.selectStartDateView, R.id.selectEndDateView, R.id.searchButton, R.id.resetButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseClassLayout: + new QMUIBottomSheet.BottomListSheetBuilder(this) + .setTitle("案卷类型") + .addItem("事件") + .addItem("部件") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + caseClassView.setText(tag); + caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷大类 + String eorc = String.valueOf(position + 1); + caseLargeClassPresenter.onReadyRetrofitRequest(eorc); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseLargeClassView.setText(tag); + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + eorc = dataBean.getEorc(); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(eorc, typeId); + typeCode = dataBean.getTypeCode(); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseSmallClassView.setText(tag); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + typeDetailCode = smallClassBeans.get(position).getTypeDetailCode(); + } + }).build().show(); + } + } + break; + case R.id.caseStatusLayout: + caseStatusPresenter.onReadyRetrofitRequest(); + break; + case R.id.selectStartDateView: + new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis()) + .setType(Type.YEAR_MONTH_DAY) + .setCallBack((timePickerView, millSeconds) -> { + String date = TimeOrDateUtil.rTimestampToDate(millSeconds); + + startTimeView.setText(date); + startTimeView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + }).build().show(getSupportFragmentManager(), "year_month_day"); + break; + case R.id.selectEndDateView: + new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis()) + .setType(Type.YEAR_MONTH_DAY) + .setCallBack((timePickerView, millSeconds) -> { + String date = TimeOrDateUtil.rTimestampToDate(millSeconds); + + endTimeView.setText(date); + endTimeView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + }).build().show(getSupportFragmentManager(), "year_month_day"); + break; + case R.id.searchButton: + startSearchCaseList(); + break; + case R.id.resetButton: + new QMUIDialog.MessageDialogBuilder(context) + .setTitle("重置") + .setMessage("确定要重置填写的资料吗?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + + caseClassView.setText(""); + caseLargeClassView.setText(""); + caseSmallClassView.setText(""); + caseStatusView.setText(""); + startTimeView.setText(""); + endTimeView.setText(""); + } + }).create().show(); + break; + default: + break; + } + } + + /** + * 参数校验 + */ + private void startSearchCaseList() { + if (TextUtils.isEmpty(typeCode)) { + if (TextUtils.isEmpty(typeDetailCode)) { + ToastHelper.showToast("案卷大类还未填写,请检查", ToastHelper.ERROR); + return; + } + } + if (TextUtils.isEmpty(typeDetailCode)) { + if (TextUtils.isEmpty(typeDetailCode)) { + ToastHelper.showToast("案卷小类还未填写,请检查", ToastHelper.ERROR); + return; + } + } + String caseStatus = caseStatusView.getText().toString(); + if (TextUtils.isEmpty(caseStatus)) { + ToastHelper.showToast("处理状态还未填写,请检查", ToastHelper.ERROR); + return; + } + String startTime = startTimeView.getText().toString(); + if (TextUtils.isEmpty(startTime)) { + ToastHelper.showToast("起始时间还未填写,请检查", ToastHelper.ERROR); + return; + } + String endTime = endTimeView.getText().toString(); + if (TextUtils.isEmpty(endTime)) { + ToastHelper.showToast("结束时间还未填写,请检查", ToastHelper.ERROR); + return; + } + if (TextUtils.isEmpty(eorc)) { + ToastHelper.showToast("案卷大类还未填写,请检查", ToastHelper.ERROR); + return; + } + caseListPresenter.onReadyRetrofitRequest(typeCode, typeDetailCode, caseStatus, startTime, endTime, eorc, + 20, 0); + } + + @Override + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeClassView.setText("无小类"); + } else { + caseLargeClassView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 + } + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + + caseSmallClassView.setText("请选择"); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } + } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallClassView.setText("无小类"); + } else { + caseSmallClassView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 + } + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } + } + + @Override + public void obtainCaseStatusData(CaseStatusBean resultBean) { +// Log.d(TAG, "obtainCaseStatusData: " + new Gson().toJson(resultBean)); + if (resultBean.isSuccess()) { + List beans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处理状态"); + for (CaseStatusBean.DataBean dataBean : beans) { + 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(); + + caseStatusView.setText(tag); + caseStatusView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + } + }).build().show(); + } + } + + @Override + public void showProgress() { + loadingDialog.show(); + } + + @Override + public void obtainCaseStatusData(CaseListResultBean resultBean) { +// Log.d(TAG, "obtainCaseStatusData: " + new Gson().toJson(resultBean)); + if (resultBean.isSuccess()) { + Intent intent = new Intent(this, CaseListResultActivity.class); + intent.putExtra("resultBeanJson", gson.toJson(resultBean)); + startActivity(intent); + } + } + + @Override + public void hideProgress() { + loadingDialog.hide(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseStatusPresenter != null) { + caseStatusPresenter.disposeRetrofitRequest(); + } + if (caseListPresenter != null) { + caseListPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d5c56ab..deeff33 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -44,6 +44,9 @@ + + + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public CaseListResultAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_case_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView leftTextView; + private TextView titleView; + private TextView contentView; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + leftTextView = itemView.findViewById(R.id.leftTextView); + titleView = itemView.findViewById(R.id.titleView); + contentView = itemView.findViewById(R.id.contentView); + } + + void bindView(CaseListResultBean.DataBean.RowsBean rowsBean) { + String eorcName = rowsBean.getEorcName(); + leftTextView.setText(eorcName.substring(0, 1)); + titleView.setText(rowsBean.getCasetypeName()); + contentView.setText(rowsBean.getCasetypeDetailName()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java new file mode 100644 index 0000000..3ac2b7b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java @@ -0,0 +1,342 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseListResultBean { + + /** + * code : 200 + * data : {"rows":[{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}],"total":3} + * message : 请求成功 + * success : true + */ + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + /** + * rows : [{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}] + * total : 3 + */ + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * isPostpone : 0 + * description : 音频测试 + * createUserName : 超级管理员 + * source : 11 + * eorcName : 事件 + * casetypeDetailName : 违规高空悬吊作业 + * remainingTime : 超时729小时6分钟 + * casetypeName : 其他事件 + * processId : 2680008 + * caseState : 0 + * id : 1372735305680994306 + * reportSupervisorId : + * fieldintro : 音频测试 + * lat : 27.75386000913368 + * caseStateName : 待核实 + * lng : 116.07951602267566 + * isOvertime : 1 + * casetypeDetailCode : 01 + * onedeptid : + * eorc : 1 + * caseid : 202103190001 + * casetypeCode : 06 + * createUser : 1 + * nodeLimittime : 2021-03-19 11:23:03 + * sourceName : 热线电话 + * reportTime : 2021-03-19 10:22:56 + */ + + private int isPostpone; + private String description; + private String createUserName; + private int source; + private String eorcName; + private String casetypeDetailName; + private String remainingTime; + private String casetypeName; + private String processId; + private int caseState; + private String id; + private String reportSupervisorId; + private String fieldintro; + private String lat; + private String caseStateName; + private String lng; + private String isOvertime; + private String casetypeDetailCode; + private String onedeptid; + private String eorc; + private String caseid; + private String casetypeCode; + private String createUser; + private String nodeLimittime; + private String sourceName; + private String reportTime; + + public int getIsPostpone() { + return isPostpone; + } + + public void setIsPostpone(int isPostpone) { + this.isPostpone = isPostpone; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public int getSource() { + return source; + } + + public void setSource(int source) { + this.source = source; + } + + public String getEorcName() { + return eorcName; + } + + public void setEorcName(String eorcName) { + this.eorcName = eorcName; + } + + public String getCasetypeDetailName() { + return casetypeDetailName; + } + + public void setCasetypeDetailName(String casetypeDetailName) { + this.casetypeDetailName = casetypeDetailName; + } + + public String getRemainingTime() { + return remainingTime; + } + + public void setRemainingTime(String remainingTime) { + this.remainingTime = remainingTime; + } + + public String getCasetypeName() { + return casetypeName; + } + + public void setCasetypeName(String casetypeName) { + this.casetypeName = casetypeName; + } + + public String getProcessId() { + return processId; + } + + public void setProcessId(String processId) { + this.processId = processId; + } + + public int getCaseState() { + return caseState; + } + + public void setCaseState(int caseState) { + this.caseState = caseState; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getReportSupervisorId() { + return reportSupervisorId; + } + + public void setReportSupervisorId(String reportSupervisorId) { + this.reportSupervisorId = reportSupervisorId; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getLat() { + return lat; + } + + public void setLat(String lat) { + this.lat = lat; + } + + public String getCaseStateName() { + return caseStateName; + } + + public void setCaseStateName(String caseStateName) { + this.caseStateName = caseStateName; + } + + public String getLng() { + return lng; + } + + public void setLng(String lng) { + this.lng = lng; + } + + public String getIsOvertime() { + return isOvertime; + } + + public void setIsOvertime(String isOvertime) { + this.isOvertime = isOvertime; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getOnedeptid() { + return onedeptid; + } + + public void setOnedeptid(String onedeptid) { + this.onedeptid = onedeptid; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCaseid() { + return caseid; + } + + public void setCaseid(String caseid) { + this.caseid = caseid; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getNodeLimittime() { + return nodeLimittime; + } + + public void setNodeLimittime(String nodeLimittime) { + this.nodeLimittime = nodeLimittime; + } + + public String getSourceName() { + return sourceName; + } + + public void setSourceName(String sourceName) { + this.sourceName = sourceName; + } + + public String getReportTime() { + return reportTime; + } + + public void setReportTime(String reportTime) { + this.reportTime = reportTime; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java new file mode 100644 index 0000000..6918d00 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java @@ -0,0 +1,86 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseStatusBean { + + /** + * code : 200.0 + * data : [{"name":"待核实","id":"92","value":"0"},{"name":"核实无效","id":"93","value":"1"},{"name":"待立案","id":"94","value":"10"},{"name":"预立案","id":"95","value":"11"},{"name":"待派发","id":"96","value":"20"},{"name":"挂起","id":"98","value":"22"},{"name":"预派发","id":"99","value":"23"},{"name":"待处理","id":"100","value":"30"},{"name":"二级处理审核","id":"101","value":"31"},{"name":"调整批示","id":"102","value":"36"},{"name":"部门调整批示","id":"103","value":"37"},{"name":"处置通处理","id":"104","value":"39"},{"name":"待调整","id":"105","value":"40"},{"name":"授权审核","id":"106","value":"43"},{"name":"部门授权审核","id":"107","value":"45"},{"name":"处理审核","id":"108","value":"46"},{"name":"待派发核查","id":"109","value":"50"},{"name":"现场核查","id":"110","value":"51"},{"name":"核查通过","id":"112","value":"60"},{"name":"核查未通过","id":"113","value":"61"},{"name":"快速上报","id":"114","value":"62"},{"name":"待结案","id":"115","value":"63"},{"name":"正常结案","id":"116","value":"70"},{"name":"案件作废","id":"117","value":"75"},{"name":"不予立案","id":"118","value":"76"},{"name":"销案","id":"119","value":"77"},{"name":"处理完成","id":"120","value":"301"},{"name":"申请调整","id":"121","value":"302"},{"name":"申请延期","id":"122","value":"303"},{"name":"申请缓办","id":"158","value":"304"},{"name":"待派发核实","id":"173","value":"3"}] + * message : 请求成功 + * success : true + */ + + private double code; + private String message; + private boolean success; + private List data; + + public double getCode() { + return code; + } + + public void setCode(double code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 待核实 + * id : 92 + * value : 0 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java new file mode 100644 index 0000000..0a939d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java @@ -0,0 +1,52 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseListModelImpl implements ICaseListModel { + + private OnGetCaseListListener listener; + + public CaseListModelImpl(OnGetCaseListListener caseListListener) { + this.listener = caseListListener; + } + + public interface OnGetCaseListListener { + void onSuccess(CaseListResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { + Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseState, + registerTimeBegin, registerTimeEnd, eorc, limit, offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseListResultBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java new file mode 100644 index 0000000..65e1c13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseStatusModelImpl implements ICaseStatusModel { + + private OnGetCaseStatusListener listener; + + public CaseStatusModelImpl(OnGetCaseStatusListener onGetCaseStatusListener) { + this.listener = onGetCaseStatusListener; + } + + public interface OnGetCaseStatusListener { + void onSuccess(CaseStatusBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCaseStatusResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseStatusBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java new file mode 100644 index 0000000..7968c67 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseListModel { + Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, + int limit, int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java new file mode 100644 index 0000000..6b21b13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseStatusModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java new file mode 100644 index 0000000..6cbb05d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java @@ -0,0 +1,41 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseListModelImpl; +import com.casic.dcms.mvp.view.ICaseListView; + +public class CaseListPresenterImpl extends BasePresenter implements ICaseListPresenter, CaseListModelImpl.OnGetCaseListListener { + + private ICaseListView view; + private CaseListModelImpl actionModel; + + public CaseListPresenterImpl(ICaseListView caseListView) { + this.view = caseListView; + actionModel = new CaseListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(casetypeCode, + casetypeDetailCode, caseState, registerTimeBegin, registerTimeEnd, eorc, limit, offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CaseListResultBean resultBean) { + view.hideProgress(); + view.obtainCaseStatusData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java index 4889877..376e430 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -10,8 +10,8 @@ private ICaseSmallClassView view; private CaseSmallClassModelImpl actionModel; - public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { - this.view = caseTypeView; + public CaseSmallClassPresenterImpl(ICaseSmallClassView smallClassView) { + this.view = smallClassView; actionModel = new CaseSmallClassModelImpl(this); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java new file mode 100644 index 0000000..e297a23 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseStatusModelImpl; +import com.casic.dcms.mvp.view.ICaseStatusView; + +public class CaseStatusPresenterImpl extends BasePresenter implements ICaseStatusPresenter, CaseStatusModelImpl.OnGetCaseStatusListener { + + private ICaseStatusView view; + private CaseStatusModelImpl actionModel; + + public CaseStatusPresenterImpl(ICaseStatusView caseStatusView) { + this.view = caseStatusView; + actionModel = new CaseStatusModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CaseStatusBean resultBean) { + view.obtainCaseStatusData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java new file mode 100644 index 0000000..67be846 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java @@ -0,0 +1,8 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseListPresenter { + void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java new file mode 100644 index 0000000..19f2532 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseStatusPresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseListView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseListView.java new file mode 100644 index 0000000..430b7b7 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseListView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseListResultBean; + +public interface ICaseListView { + void showProgress(); + + void hideProgress(); + + void obtainCaseStatusData(CaseListResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseStatusView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseStatusView.java new file mode 100644 index 0000000..76384f7 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseStatusView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseStatusBean; + +public interface ICaseStatusView { + void obtainCaseStatusData(CaseStatusBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java new file mode 100644 index 0000000..2324230 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -0,0 +1,97 @@ +package com.casic.dcms.ui; + +import android.view.View; +import android.widget.GridView; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseListResultBean; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.lang.reflect.Type; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseDetailActivity extends BaseActivity implements View.OnClickListener { + + private static final String TAG = "CaseDetailActivity"; + @BindView(R.id.caseTopLayout) + QMUITopBarLayout caseTopLayout; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseStatusView) + TextView caseStatusView; + @BindView(R.id.caseTypeView) + TextView caseTypeView; + @BindView(R.id.caseLargeTypeView) + TextView caseLargeTypeView; + @BindView(R.id.caseSmallTypeView) + TextView caseSmallTypeView; + @BindView(R.id.caseCommunityView) + TextView caseCommunityView; + @BindView(R.id.casePlaceView) + TextView casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.casePicGridView) + GridView casePicGridView; + + @Override + public int initLayoutView() { + return R.layout.activity_case_detail; + } + + @Override + protected void setupTopBarLayout() { + caseTopLayout.setTitle("案卷详情").setTextColor(ContextCompat.getColor(this, R.color.white)); + caseTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + caseTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + Gson gson = new Gson(); + String rowsBeanJson = getIntent().getStringExtra("rowsBeanJson"); + Type type = new TypeToken() { + }.getType(); + CaseListResultBean.DataBean.RowsBean rowsBean = gson.fromJson(rowsBeanJson, type); + assert rowsBean != null; + caseNumberView.setText(rowsBean.getCaseid()); + caseStatusView.setText(rowsBean.getCaseStateName()); + caseTypeView.setText(rowsBean.getEorcName()); + caseLargeTypeView.setText(rowsBean.getCasetypeName()); + caseSmallTypeView.setText(rowsBean.getCasetypeDetailName()); +// caseCommunityView.setText(); +// casePlaceView.setText(); + caseSituationView.setText(rowsBean.getDescription()); + } + + @Override + public void initEvent() { + + } + + @OnClick({R.id.caseAudioView, R.id.handleRecordLayout}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseAudioView: + + break; + case R.id.handleRecordLayout: + + break; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java new file mode 100644 index 0000000..1a68fb5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java @@ -0,0 +1,74 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.view.View; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.CaseListResultAdapter; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseListResultBean; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.lang.reflect.Type; +import java.util.List; + +import butterknife.BindView; + +public class CaseListResultActivity extends BaseActivity { + + @BindView(R.id.caseTopLayout) + QMUITopBarLayout caseTopLayout; + @BindView(R.id.caseRecyclerView) + RecyclerView caseRecyclerView; + + @Override + public int initLayoutView() { + return R.layout.activity_case_list; + } + + @Override + protected void setupTopBarLayout() { + caseTopLayout.setTitle("查询结果").setTextColor(ContextCompat.getColor(this, R.color.white)); + caseTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + caseTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + Gson gson = new Gson(); + String resultBeanJson = getIntent().getStringExtra("resultBeanJson"); + Type type = new TypeToken() { + }.getType(); + CaseListResultBean resultBean = gson.fromJson(resultBeanJson, type); + List dataRows = resultBean.getData().getRows(); + CaseListResultAdapter adapter = new CaseListResultAdapter(this, dataRows); + caseRecyclerView.setLayoutManager(new LinearLayoutManager(this)); + caseRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL)); + caseRecyclerView.setAdapter(adapter); + adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + Intent intent = new Intent(CaseListResultActivity.this, CaseDetailActivity.class); + intent.putExtra("rowsBeanJson", gson.toJson(dataRows.get(position))); + startActivity(intent); + } + }); + } + + @Override + public void initEvent() { + + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java new file mode 100644 index 0000000..da9b919 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java @@ -0,0 +1,375 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseListPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseStatusPresenterImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseListView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.ICaseStatusView; +import com.casic.dcms.utils.ColorHelper; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.TimeOrDateUtil; +import com.casic.dcms.utils.ToastHelper; +import com.google.gson.Gson; +import com.jzxiang.pickerview.TimePickerDialog; +import com.jzxiang.pickerview.data.Type; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseSearchActivity extends BaseActivity implements View.OnClickListener, + ICaseLargeClassView, ICaseSmallClassView, ICaseStatusView, ICaseListView { + + private static final String TAG = "CaseSearchActivity"; + private Context context = this; + @BindView(R.id.caseTopLayout) + QMUITopBarLayout caseTopLayout; + @BindView(R.id.caseClassView) + TextView caseClassView; + @BindView(R.id.caseLargeClassView) + TextView caseLargeClassView; + @BindView(R.id.caseSmallClassView) + TextView caseSmallClassView; + @BindView(R.id.caseStatusView) + TextView caseStatusView; + @BindView(R.id.startTimeView) + TextView startTimeView; + @BindView(R.id.endTimeView) + TextView endTimeView; + @BindView(R.id.searchButton) + QMUIRoundButton searchButton; + @BindView(R.id.resetButton) + QMUIRoundButton resetButton; + + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private List largeClassBeans; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private List smallClassBeans; + private CaseStatusPresenterImpl caseStatusPresenter; + private CaseListPresenterImpl caseListPresenter; + private QMUITipDialog loadingDialog; + private String eorc; + private String typeDetailCode; + private String typeCode; + private Gson gson; + + @Override + public int initLayoutView() { + return R.layout.activity_case_search; + } + + @Override + protected void setupTopBarLayout() { + caseTopLayout.setTitle("案卷查询").setTextColor(ContextCompat.getColor(this, R.color.white)); + caseTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + caseTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseStatusPresenter = new CaseStatusPresenterImpl(this); + caseListPresenter = new CaseListPresenterImpl(this); + } + + @Override + public void initEvent() { + searchButton.setChangeAlphaWhenPress(true); + resetButton.setChangeAlphaWhenPress(true); + loadingDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("查询中,请稍后") + .create(); + gson = new Gson(); + } + + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseStatusLayout, + R.id.selectStartDateView, R.id.selectEndDateView, R.id.searchButton, R.id.resetButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseClassLayout: + new QMUIBottomSheet.BottomListSheetBuilder(this) + .setTitle("案卷类型") + .addItem("事件") + .addItem("部件") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + caseClassView.setText(tag); + caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷大类 + String eorc = String.valueOf(position + 1); + caseLargeClassPresenter.onReadyRetrofitRequest(eorc); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseLargeClassView.setText(tag); + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + eorc = dataBean.getEorc(); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(eorc, typeId); + typeCode = dataBean.getTypeCode(); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseSmallClassView.setText(tag); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + typeDetailCode = smallClassBeans.get(position).getTypeDetailCode(); + } + }).build().show(); + } + } + break; + case R.id.caseStatusLayout: + caseStatusPresenter.onReadyRetrofitRequest(); + break; + case R.id.selectStartDateView: + new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis()) + .setType(Type.YEAR_MONTH_DAY) + .setCallBack((timePickerView, millSeconds) -> { + String date = TimeOrDateUtil.rTimestampToDate(millSeconds); + + startTimeView.setText(date); + startTimeView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + }).build().show(getSupportFragmentManager(), "year_month_day"); + break; + case R.id.selectEndDateView: + new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis()) + .setType(Type.YEAR_MONTH_DAY) + .setCallBack((timePickerView, millSeconds) -> { + String date = TimeOrDateUtil.rTimestampToDate(millSeconds); + + endTimeView.setText(date); + endTimeView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + }).build().show(getSupportFragmentManager(), "year_month_day"); + break; + case R.id.searchButton: + startSearchCaseList(); + break; + case R.id.resetButton: + new QMUIDialog.MessageDialogBuilder(context) + .setTitle("重置") + .setMessage("确定要重置填写的资料吗?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + + caseClassView.setText(""); + caseLargeClassView.setText(""); + caseSmallClassView.setText(""); + caseStatusView.setText(""); + startTimeView.setText(""); + endTimeView.setText(""); + } + }).create().show(); + break; + default: + break; + } + } + + /** + * 参数校验 + */ + private void startSearchCaseList() { + if (TextUtils.isEmpty(typeCode)) { + if (TextUtils.isEmpty(typeDetailCode)) { + ToastHelper.showToast("案卷大类还未填写,请检查", ToastHelper.ERROR); + return; + } + } + if (TextUtils.isEmpty(typeDetailCode)) { + if (TextUtils.isEmpty(typeDetailCode)) { + ToastHelper.showToast("案卷小类还未填写,请检查", ToastHelper.ERROR); + return; + } + } + String caseStatus = caseStatusView.getText().toString(); + if (TextUtils.isEmpty(caseStatus)) { + ToastHelper.showToast("处理状态还未填写,请检查", ToastHelper.ERROR); + return; + } + String startTime = startTimeView.getText().toString(); + if (TextUtils.isEmpty(startTime)) { + ToastHelper.showToast("起始时间还未填写,请检查", ToastHelper.ERROR); + return; + } + String endTime = endTimeView.getText().toString(); + if (TextUtils.isEmpty(endTime)) { + ToastHelper.showToast("结束时间还未填写,请检查", ToastHelper.ERROR); + return; + } + if (TextUtils.isEmpty(eorc)) { + ToastHelper.showToast("案卷大类还未填写,请检查", ToastHelper.ERROR); + return; + } + caseListPresenter.onReadyRetrofitRequest(typeCode, typeDetailCode, caseStatus, startTime, endTime, eorc, + 20, 0); + } + + @Override + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeClassView.setText("无小类"); + } else { + caseLargeClassView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 + } + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + + caseSmallClassView.setText("请选择"); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } + } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallClassView.setText("无小类"); + } else { + caseSmallClassView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 + } + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } + } + + @Override + public void obtainCaseStatusData(CaseStatusBean resultBean) { +// Log.d(TAG, "obtainCaseStatusData: " + new Gson().toJson(resultBean)); + if (resultBean.isSuccess()) { + List beans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处理状态"); + for (CaseStatusBean.DataBean dataBean : beans) { + 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(); + + caseStatusView.setText(tag); + caseStatusView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + } + }).build().show(); + } + } + + @Override + public void showProgress() { + loadingDialog.show(); + } + + @Override + public void obtainCaseStatusData(CaseListResultBean resultBean) { +// Log.d(TAG, "obtainCaseStatusData: " + new Gson().toJson(resultBean)); + if (resultBean.isSuccess()) { + Intent intent = new Intent(this, CaseListResultActivity.class); + intent.putExtra("resultBeanJson", gson.toJson(resultBean)); + startActivity(intent); + } + } + + @Override + public void hideProgress() { + loadingDialog.hide(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseStatusPresenter != null) { + caseStatusPresenter.disposeRetrofitRequest(); + } + if (caseListPresenter != null) { + caseListPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 549b16a..c3436a2 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -583,4 +583,18 @@ public void hideProgress() { submitDialog.hide(); } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseSubmitPresenter != null) { + caseSubmitPresenter.disposeRetrofitRequest(); + } + } } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d5c56ab..deeff33 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -44,6 +44,9 @@ + + + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public CaseListResultAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_case_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView leftTextView; + private TextView titleView; + private TextView contentView; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + leftTextView = itemView.findViewById(R.id.leftTextView); + titleView = itemView.findViewById(R.id.titleView); + contentView = itemView.findViewById(R.id.contentView); + } + + void bindView(CaseListResultBean.DataBean.RowsBean rowsBean) { + String eorcName = rowsBean.getEorcName(); + leftTextView.setText(eorcName.substring(0, 1)); + titleView.setText(rowsBean.getCasetypeName()); + contentView.setText(rowsBean.getCasetypeDetailName()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java new file mode 100644 index 0000000..3ac2b7b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java @@ -0,0 +1,342 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseListResultBean { + + /** + * code : 200 + * data : {"rows":[{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}],"total":3} + * message : 请求成功 + * success : true + */ + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + /** + * rows : [{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}] + * total : 3 + */ + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * isPostpone : 0 + * description : 音频测试 + * createUserName : 超级管理员 + * source : 11 + * eorcName : 事件 + * casetypeDetailName : 违规高空悬吊作业 + * remainingTime : 超时729小时6分钟 + * casetypeName : 其他事件 + * processId : 2680008 + * caseState : 0 + * id : 1372735305680994306 + * reportSupervisorId : + * fieldintro : 音频测试 + * lat : 27.75386000913368 + * caseStateName : 待核实 + * lng : 116.07951602267566 + * isOvertime : 1 + * casetypeDetailCode : 01 + * onedeptid : + * eorc : 1 + * caseid : 202103190001 + * casetypeCode : 06 + * createUser : 1 + * nodeLimittime : 2021-03-19 11:23:03 + * sourceName : 热线电话 + * reportTime : 2021-03-19 10:22:56 + */ + + private int isPostpone; + private String description; + private String createUserName; + private int source; + private String eorcName; + private String casetypeDetailName; + private String remainingTime; + private String casetypeName; + private String processId; + private int caseState; + private String id; + private String reportSupervisorId; + private String fieldintro; + private String lat; + private String caseStateName; + private String lng; + private String isOvertime; + private String casetypeDetailCode; + private String onedeptid; + private String eorc; + private String caseid; + private String casetypeCode; + private String createUser; + private String nodeLimittime; + private String sourceName; + private String reportTime; + + public int getIsPostpone() { + return isPostpone; + } + + public void setIsPostpone(int isPostpone) { + this.isPostpone = isPostpone; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public int getSource() { + return source; + } + + public void setSource(int source) { + this.source = source; + } + + public String getEorcName() { + return eorcName; + } + + public void setEorcName(String eorcName) { + this.eorcName = eorcName; + } + + public String getCasetypeDetailName() { + return casetypeDetailName; + } + + public void setCasetypeDetailName(String casetypeDetailName) { + this.casetypeDetailName = casetypeDetailName; + } + + public String getRemainingTime() { + return remainingTime; + } + + public void setRemainingTime(String remainingTime) { + this.remainingTime = remainingTime; + } + + public String getCasetypeName() { + return casetypeName; + } + + public void setCasetypeName(String casetypeName) { + this.casetypeName = casetypeName; + } + + public String getProcessId() { + return processId; + } + + public void setProcessId(String processId) { + this.processId = processId; + } + + public int getCaseState() { + return caseState; + } + + public void setCaseState(int caseState) { + this.caseState = caseState; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getReportSupervisorId() { + return reportSupervisorId; + } + + public void setReportSupervisorId(String reportSupervisorId) { + this.reportSupervisorId = reportSupervisorId; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getLat() { + return lat; + } + + public void setLat(String lat) { + this.lat = lat; + } + + public String getCaseStateName() { + return caseStateName; + } + + public void setCaseStateName(String caseStateName) { + this.caseStateName = caseStateName; + } + + public String getLng() { + return lng; + } + + public void setLng(String lng) { + this.lng = lng; + } + + public String getIsOvertime() { + return isOvertime; + } + + public void setIsOvertime(String isOvertime) { + this.isOvertime = isOvertime; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getOnedeptid() { + return onedeptid; + } + + public void setOnedeptid(String onedeptid) { + this.onedeptid = onedeptid; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCaseid() { + return caseid; + } + + public void setCaseid(String caseid) { + this.caseid = caseid; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getNodeLimittime() { + return nodeLimittime; + } + + public void setNodeLimittime(String nodeLimittime) { + this.nodeLimittime = nodeLimittime; + } + + public String getSourceName() { + return sourceName; + } + + public void setSourceName(String sourceName) { + this.sourceName = sourceName; + } + + public String getReportTime() { + return reportTime; + } + + public void setReportTime(String reportTime) { + this.reportTime = reportTime; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java new file mode 100644 index 0000000..6918d00 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java @@ -0,0 +1,86 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseStatusBean { + + /** + * code : 200.0 + * data : [{"name":"待核实","id":"92","value":"0"},{"name":"核实无效","id":"93","value":"1"},{"name":"待立案","id":"94","value":"10"},{"name":"预立案","id":"95","value":"11"},{"name":"待派发","id":"96","value":"20"},{"name":"挂起","id":"98","value":"22"},{"name":"预派发","id":"99","value":"23"},{"name":"待处理","id":"100","value":"30"},{"name":"二级处理审核","id":"101","value":"31"},{"name":"调整批示","id":"102","value":"36"},{"name":"部门调整批示","id":"103","value":"37"},{"name":"处置通处理","id":"104","value":"39"},{"name":"待调整","id":"105","value":"40"},{"name":"授权审核","id":"106","value":"43"},{"name":"部门授权审核","id":"107","value":"45"},{"name":"处理审核","id":"108","value":"46"},{"name":"待派发核查","id":"109","value":"50"},{"name":"现场核查","id":"110","value":"51"},{"name":"核查通过","id":"112","value":"60"},{"name":"核查未通过","id":"113","value":"61"},{"name":"快速上报","id":"114","value":"62"},{"name":"待结案","id":"115","value":"63"},{"name":"正常结案","id":"116","value":"70"},{"name":"案件作废","id":"117","value":"75"},{"name":"不予立案","id":"118","value":"76"},{"name":"销案","id":"119","value":"77"},{"name":"处理完成","id":"120","value":"301"},{"name":"申请调整","id":"121","value":"302"},{"name":"申请延期","id":"122","value":"303"},{"name":"申请缓办","id":"158","value":"304"},{"name":"待派发核实","id":"173","value":"3"}] + * message : 请求成功 + * success : true + */ + + private double code; + private String message; + private boolean success; + private List data; + + public double getCode() { + return code; + } + + public void setCode(double code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 待核实 + * id : 92 + * value : 0 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java new file mode 100644 index 0000000..0a939d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java @@ -0,0 +1,52 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseListModelImpl implements ICaseListModel { + + private OnGetCaseListListener listener; + + public CaseListModelImpl(OnGetCaseListListener caseListListener) { + this.listener = caseListListener; + } + + public interface OnGetCaseListListener { + void onSuccess(CaseListResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { + Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseState, + registerTimeBegin, registerTimeEnd, eorc, limit, offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseListResultBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java new file mode 100644 index 0000000..65e1c13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseStatusModelImpl implements ICaseStatusModel { + + private OnGetCaseStatusListener listener; + + public CaseStatusModelImpl(OnGetCaseStatusListener onGetCaseStatusListener) { + this.listener = onGetCaseStatusListener; + } + + public interface OnGetCaseStatusListener { + void onSuccess(CaseStatusBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCaseStatusResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseStatusBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java new file mode 100644 index 0000000..7968c67 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseListModel { + Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, + int limit, int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java new file mode 100644 index 0000000..6b21b13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseStatusModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java new file mode 100644 index 0000000..6cbb05d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java @@ -0,0 +1,41 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseListModelImpl; +import com.casic.dcms.mvp.view.ICaseListView; + +public class CaseListPresenterImpl extends BasePresenter implements ICaseListPresenter, CaseListModelImpl.OnGetCaseListListener { + + private ICaseListView view; + private CaseListModelImpl actionModel; + + public CaseListPresenterImpl(ICaseListView caseListView) { + this.view = caseListView; + actionModel = new CaseListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(casetypeCode, + casetypeDetailCode, caseState, registerTimeBegin, registerTimeEnd, eorc, limit, offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CaseListResultBean resultBean) { + view.hideProgress(); + view.obtainCaseStatusData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java index 4889877..376e430 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -10,8 +10,8 @@ private ICaseSmallClassView view; private CaseSmallClassModelImpl actionModel; - public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { - this.view = caseTypeView; + public CaseSmallClassPresenterImpl(ICaseSmallClassView smallClassView) { + this.view = smallClassView; actionModel = new CaseSmallClassModelImpl(this); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java new file mode 100644 index 0000000..e297a23 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseStatusModelImpl; +import com.casic.dcms.mvp.view.ICaseStatusView; + +public class CaseStatusPresenterImpl extends BasePresenter implements ICaseStatusPresenter, CaseStatusModelImpl.OnGetCaseStatusListener { + + private ICaseStatusView view; + private CaseStatusModelImpl actionModel; + + public CaseStatusPresenterImpl(ICaseStatusView caseStatusView) { + this.view = caseStatusView; + actionModel = new CaseStatusModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CaseStatusBean resultBean) { + view.obtainCaseStatusData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java new file mode 100644 index 0000000..67be846 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java @@ -0,0 +1,8 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseListPresenter { + void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java new file mode 100644 index 0000000..19f2532 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseStatusPresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseListView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseListView.java new file mode 100644 index 0000000..430b7b7 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseListView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseListResultBean; + +public interface ICaseListView { + void showProgress(); + + void hideProgress(); + + void obtainCaseStatusData(CaseListResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseStatusView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseStatusView.java new file mode 100644 index 0000000..76384f7 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseStatusView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseStatusBean; + +public interface ICaseStatusView { + void obtainCaseStatusData(CaseStatusBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java new file mode 100644 index 0000000..2324230 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -0,0 +1,97 @@ +package com.casic.dcms.ui; + +import android.view.View; +import android.widget.GridView; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseListResultBean; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.lang.reflect.Type; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseDetailActivity extends BaseActivity implements View.OnClickListener { + + private static final String TAG = "CaseDetailActivity"; + @BindView(R.id.caseTopLayout) + QMUITopBarLayout caseTopLayout; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseStatusView) + TextView caseStatusView; + @BindView(R.id.caseTypeView) + TextView caseTypeView; + @BindView(R.id.caseLargeTypeView) + TextView caseLargeTypeView; + @BindView(R.id.caseSmallTypeView) + TextView caseSmallTypeView; + @BindView(R.id.caseCommunityView) + TextView caseCommunityView; + @BindView(R.id.casePlaceView) + TextView casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.casePicGridView) + GridView casePicGridView; + + @Override + public int initLayoutView() { + return R.layout.activity_case_detail; + } + + @Override + protected void setupTopBarLayout() { + caseTopLayout.setTitle("案卷详情").setTextColor(ContextCompat.getColor(this, R.color.white)); + caseTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + caseTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + Gson gson = new Gson(); + String rowsBeanJson = getIntent().getStringExtra("rowsBeanJson"); + Type type = new TypeToken() { + }.getType(); + CaseListResultBean.DataBean.RowsBean rowsBean = gson.fromJson(rowsBeanJson, type); + assert rowsBean != null; + caseNumberView.setText(rowsBean.getCaseid()); + caseStatusView.setText(rowsBean.getCaseStateName()); + caseTypeView.setText(rowsBean.getEorcName()); + caseLargeTypeView.setText(rowsBean.getCasetypeName()); + caseSmallTypeView.setText(rowsBean.getCasetypeDetailName()); +// caseCommunityView.setText(); +// casePlaceView.setText(); + caseSituationView.setText(rowsBean.getDescription()); + } + + @Override + public void initEvent() { + + } + + @OnClick({R.id.caseAudioView, R.id.handleRecordLayout}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseAudioView: + + break; + case R.id.handleRecordLayout: + + break; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java new file mode 100644 index 0000000..1a68fb5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java @@ -0,0 +1,74 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.view.View; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.CaseListResultAdapter; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseListResultBean; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.lang.reflect.Type; +import java.util.List; + +import butterknife.BindView; + +public class CaseListResultActivity extends BaseActivity { + + @BindView(R.id.caseTopLayout) + QMUITopBarLayout caseTopLayout; + @BindView(R.id.caseRecyclerView) + RecyclerView caseRecyclerView; + + @Override + public int initLayoutView() { + return R.layout.activity_case_list; + } + + @Override + protected void setupTopBarLayout() { + caseTopLayout.setTitle("查询结果").setTextColor(ContextCompat.getColor(this, R.color.white)); + caseTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + caseTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + Gson gson = new Gson(); + String resultBeanJson = getIntent().getStringExtra("resultBeanJson"); + Type type = new TypeToken() { + }.getType(); + CaseListResultBean resultBean = gson.fromJson(resultBeanJson, type); + List dataRows = resultBean.getData().getRows(); + CaseListResultAdapter adapter = new CaseListResultAdapter(this, dataRows); + caseRecyclerView.setLayoutManager(new LinearLayoutManager(this)); + caseRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL)); + caseRecyclerView.setAdapter(adapter); + adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + Intent intent = new Intent(CaseListResultActivity.this, CaseDetailActivity.class); + intent.putExtra("rowsBeanJson", gson.toJson(dataRows.get(position))); + startActivity(intent); + } + }); + } + + @Override + public void initEvent() { + + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java new file mode 100644 index 0000000..da9b919 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java @@ -0,0 +1,375 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseListPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseStatusPresenterImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseListView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.ICaseStatusView; +import com.casic.dcms.utils.ColorHelper; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.TimeOrDateUtil; +import com.casic.dcms.utils.ToastHelper; +import com.google.gson.Gson; +import com.jzxiang.pickerview.TimePickerDialog; +import com.jzxiang.pickerview.data.Type; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseSearchActivity extends BaseActivity implements View.OnClickListener, + ICaseLargeClassView, ICaseSmallClassView, ICaseStatusView, ICaseListView { + + private static final String TAG = "CaseSearchActivity"; + private Context context = this; + @BindView(R.id.caseTopLayout) + QMUITopBarLayout caseTopLayout; + @BindView(R.id.caseClassView) + TextView caseClassView; + @BindView(R.id.caseLargeClassView) + TextView caseLargeClassView; + @BindView(R.id.caseSmallClassView) + TextView caseSmallClassView; + @BindView(R.id.caseStatusView) + TextView caseStatusView; + @BindView(R.id.startTimeView) + TextView startTimeView; + @BindView(R.id.endTimeView) + TextView endTimeView; + @BindView(R.id.searchButton) + QMUIRoundButton searchButton; + @BindView(R.id.resetButton) + QMUIRoundButton resetButton; + + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private List largeClassBeans; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private List smallClassBeans; + private CaseStatusPresenterImpl caseStatusPresenter; + private CaseListPresenterImpl caseListPresenter; + private QMUITipDialog loadingDialog; + private String eorc; + private String typeDetailCode; + private String typeCode; + private Gson gson; + + @Override + public int initLayoutView() { + return R.layout.activity_case_search; + } + + @Override + protected void setupTopBarLayout() { + caseTopLayout.setTitle("案卷查询").setTextColor(ContextCompat.getColor(this, R.color.white)); + caseTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + caseTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseStatusPresenter = new CaseStatusPresenterImpl(this); + caseListPresenter = new CaseListPresenterImpl(this); + } + + @Override + public void initEvent() { + searchButton.setChangeAlphaWhenPress(true); + resetButton.setChangeAlphaWhenPress(true); + loadingDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("查询中,请稍后") + .create(); + gson = new Gson(); + } + + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseStatusLayout, + R.id.selectStartDateView, R.id.selectEndDateView, R.id.searchButton, R.id.resetButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseClassLayout: + new QMUIBottomSheet.BottomListSheetBuilder(this) + .setTitle("案卷类型") + .addItem("事件") + .addItem("部件") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + caseClassView.setText(tag); + caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷大类 + String eorc = String.valueOf(position + 1); + caseLargeClassPresenter.onReadyRetrofitRequest(eorc); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseLargeClassView.setText(tag); + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + eorc = dataBean.getEorc(); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(eorc, typeId); + typeCode = dataBean.getTypeCode(); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseSmallClassView.setText(tag); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + typeDetailCode = smallClassBeans.get(position).getTypeDetailCode(); + } + }).build().show(); + } + } + break; + case R.id.caseStatusLayout: + caseStatusPresenter.onReadyRetrofitRequest(); + break; + case R.id.selectStartDateView: + new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis()) + .setType(Type.YEAR_MONTH_DAY) + .setCallBack((timePickerView, millSeconds) -> { + String date = TimeOrDateUtil.rTimestampToDate(millSeconds); + + startTimeView.setText(date); + startTimeView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + }).build().show(getSupportFragmentManager(), "year_month_day"); + break; + case R.id.selectEndDateView: + new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis()) + .setType(Type.YEAR_MONTH_DAY) + .setCallBack((timePickerView, millSeconds) -> { + String date = TimeOrDateUtil.rTimestampToDate(millSeconds); + + endTimeView.setText(date); + endTimeView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + }).build().show(getSupportFragmentManager(), "year_month_day"); + break; + case R.id.searchButton: + startSearchCaseList(); + break; + case R.id.resetButton: + new QMUIDialog.MessageDialogBuilder(context) + .setTitle("重置") + .setMessage("确定要重置填写的资料吗?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + + caseClassView.setText(""); + caseLargeClassView.setText(""); + caseSmallClassView.setText(""); + caseStatusView.setText(""); + startTimeView.setText(""); + endTimeView.setText(""); + } + }).create().show(); + break; + default: + break; + } + } + + /** + * 参数校验 + */ + private void startSearchCaseList() { + if (TextUtils.isEmpty(typeCode)) { + if (TextUtils.isEmpty(typeDetailCode)) { + ToastHelper.showToast("案卷大类还未填写,请检查", ToastHelper.ERROR); + return; + } + } + if (TextUtils.isEmpty(typeDetailCode)) { + if (TextUtils.isEmpty(typeDetailCode)) { + ToastHelper.showToast("案卷小类还未填写,请检查", ToastHelper.ERROR); + return; + } + } + String caseStatus = caseStatusView.getText().toString(); + if (TextUtils.isEmpty(caseStatus)) { + ToastHelper.showToast("处理状态还未填写,请检查", ToastHelper.ERROR); + return; + } + String startTime = startTimeView.getText().toString(); + if (TextUtils.isEmpty(startTime)) { + ToastHelper.showToast("起始时间还未填写,请检查", ToastHelper.ERROR); + return; + } + String endTime = endTimeView.getText().toString(); + if (TextUtils.isEmpty(endTime)) { + ToastHelper.showToast("结束时间还未填写,请检查", ToastHelper.ERROR); + return; + } + if (TextUtils.isEmpty(eorc)) { + ToastHelper.showToast("案卷大类还未填写,请检查", ToastHelper.ERROR); + return; + } + caseListPresenter.onReadyRetrofitRequest(typeCode, typeDetailCode, caseStatus, startTime, endTime, eorc, + 20, 0); + } + + @Override + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeClassView.setText("无小类"); + } else { + caseLargeClassView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 + } + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + + caseSmallClassView.setText("请选择"); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } + } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallClassView.setText("无小类"); + } else { + caseSmallClassView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 + } + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } + } + + @Override + public void obtainCaseStatusData(CaseStatusBean resultBean) { +// Log.d(TAG, "obtainCaseStatusData: " + new Gson().toJson(resultBean)); + if (resultBean.isSuccess()) { + List beans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处理状态"); + for (CaseStatusBean.DataBean dataBean : beans) { + 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(); + + caseStatusView.setText(tag); + caseStatusView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + } + }).build().show(); + } + } + + @Override + public void showProgress() { + loadingDialog.show(); + } + + @Override + public void obtainCaseStatusData(CaseListResultBean resultBean) { +// Log.d(TAG, "obtainCaseStatusData: " + new Gson().toJson(resultBean)); + if (resultBean.isSuccess()) { + Intent intent = new Intent(this, CaseListResultActivity.class); + intent.putExtra("resultBeanJson", gson.toJson(resultBean)); + startActivity(intent); + } + } + + @Override + public void hideProgress() { + loadingDialog.hide(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseStatusPresenter != null) { + caseStatusPresenter.disposeRetrofitRequest(); + } + if (caseListPresenter != null) { + caseListPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 549b16a..c3436a2 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -583,4 +583,18 @@ public void hideProgress() { submitDialog.hide(); } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseSubmitPresenter != null) { + caseSubmitPresenter.disposeRetrofitRequest(); + } + } } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index a21d874..a6c35b4 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -16,6 +16,7 @@ import com.casic.dcms.bean.UserBean; import com.casic.dcms.mvp.presenter.UserDataPresenterImpl; import com.casic.dcms.mvp.view.IUserDataView; +import com.casic.dcms.ui.CaseSearchActivity; import com.casic.dcms.ui.CaseUploadActivity; import com.casic.dcms.ui.DataAnalysisActivity; import com.casic.dcms.utils.StringHelper; @@ -102,7 +103,8 @@ ToastHelper.showToast("在岗人员", ToastHelper.INFO); break; case 10: - ToastHelper.showToast("案卷查询", ToastHelper.INFO); + intent.setClass(context, CaseSearchActivity.class); + startActivity(intent); break; case 11: ToastHelper.showToast("地图查看", ToastHelper.INFO); diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d5c56ab..deeff33 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -44,6 +44,9 @@ + + + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public CaseListResultAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_case_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView leftTextView; + private TextView titleView; + private TextView contentView; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + leftTextView = itemView.findViewById(R.id.leftTextView); + titleView = itemView.findViewById(R.id.titleView); + contentView = itemView.findViewById(R.id.contentView); + } + + void bindView(CaseListResultBean.DataBean.RowsBean rowsBean) { + String eorcName = rowsBean.getEorcName(); + leftTextView.setText(eorcName.substring(0, 1)); + titleView.setText(rowsBean.getCasetypeName()); + contentView.setText(rowsBean.getCasetypeDetailName()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java new file mode 100644 index 0000000..3ac2b7b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java @@ -0,0 +1,342 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseListResultBean { + + /** + * code : 200 + * data : {"rows":[{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}],"total":3} + * message : 请求成功 + * success : true + */ + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + /** + * rows : [{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}] + * total : 3 + */ + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * isPostpone : 0 + * description : 音频测试 + * createUserName : 超级管理员 + * source : 11 + * eorcName : 事件 + * casetypeDetailName : 违规高空悬吊作业 + * remainingTime : 超时729小时6分钟 + * casetypeName : 其他事件 + * processId : 2680008 + * caseState : 0 + * id : 1372735305680994306 + * reportSupervisorId : + * fieldintro : 音频测试 + * lat : 27.75386000913368 + * caseStateName : 待核实 + * lng : 116.07951602267566 + * isOvertime : 1 + * casetypeDetailCode : 01 + * onedeptid : + * eorc : 1 + * caseid : 202103190001 + * casetypeCode : 06 + * createUser : 1 + * nodeLimittime : 2021-03-19 11:23:03 + * sourceName : 热线电话 + * reportTime : 2021-03-19 10:22:56 + */ + + private int isPostpone; + private String description; + private String createUserName; + private int source; + private String eorcName; + private String casetypeDetailName; + private String remainingTime; + private String casetypeName; + private String processId; + private int caseState; + private String id; + private String reportSupervisorId; + private String fieldintro; + private String lat; + private String caseStateName; + private String lng; + private String isOvertime; + private String casetypeDetailCode; + private String onedeptid; + private String eorc; + private String caseid; + private String casetypeCode; + private String createUser; + private String nodeLimittime; + private String sourceName; + private String reportTime; + + public int getIsPostpone() { + return isPostpone; + } + + public void setIsPostpone(int isPostpone) { + this.isPostpone = isPostpone; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public int getSource() { + return source; + } + + public void setSource(int source) { + this.source = source; + } + + public String getEorcName() { + return eorcName; + } + + public void setEorcName(String eorcName) { + this.eorcName = eorcName; + } + + public String getCasetypeDetailName() { + return casetypeDetailName; + } + + public void setCasetypeDetailName(String casetypeDetailName) { + this.casetypeDetailName = casetypeDetailName; + } + + public String getRemainingTime() { + return remainingTime; + } + + public void setRemainingTime(String remainingTime) { + this.remainingTime = remainingTime; + } + + public String getCasetypeName() { + return casetypeName; + } + + public void setCasetypeName(String casetypeName) { + this.casetypeName = casetypeName; + } + + public String getProcessId() { + return processId; + } + + public void setProcessId(String processId) { + this.processId = processId; + } + + public int getCaseState() { + return caseState; + } + + public void setCaseState(int caseState) { + this.caseState = caseState; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getReportSupervisorId() { + return reportSupervisorId; + } + + public void setReportSupervisorId(String reportSupervisorId) { + this.reportSupervisorId = reportSupervisorId; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getLat() { + return lat; + } + + public void setLat(String lat) { + this.lat = lat; + } + + public String getCaseStateName() { + return caseStateName; + } + + public void setCaseStateName(String caseStateName) { + this.caseStateName = caseStateName; + } + + public String getLng() { + return lng; + } + + public void setLng(String lng) { + this.lng = lng; + } + + public String getIsOvertime() { + return isOvertime; + } + + public void setIsOvertime(String isOvertime) { + this.isOvertime = isOvertime; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getOnedeptid() { + return onedeptid; + } + + public void setOnedeptid(String onedeptid) { + this.onedeptid = onedeptid; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCaseid() { + return caseid; + } + + public void setCaseid(String caseid) { + this.caseid = caseid; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getNodeLimittime() { + return nodeLimittime; + } + + public void setNodeLimittime(String nodeLimittime) { + this.nodeLimittime = nodeLimittime; + } + + public String getSourceName() { + return sourceName; + } + + public void setSourceName(String sourceName) { + this.sourceName = sourceName; + } + + public String getReportTime() { + return reportTime; + } + + public void setReportTime(String reportTime) { + this.reportTime = reportTime; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java new file mode 100644 index 0000000..6918d00 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java @@ -0,0 +1,86 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseStatusBean { + + /** + * code : 200.0 + * data : [{"name":"待核实","id":"92","value":"0"},{"name":"核实无效","id":"93","value":"1"},{"name":"待立案","id":"94","value":"10"},{"name":"预立案","id":"95","value":"11"},{"name":"待派发","id":"96","value":"20"},{"name":"挂起","id":"98","value":"22"},{"name":"预派发","id":"99","value":"23"},{"name":"待处理","id":"100","value":"30"},{"name":"二级处理审核","id":"101","value":"31"},{"name":"调整批示","id":"102","value":"36"},{"name":"部门调整批示","id":"103","value":"37"},{"name":"处置通处理","id":"104","value":"39"},{"name":"待调整","id":"105","value":"40"},{"name":"授权审核","id":"106","value":"43"},{"name":"部门授权审核","id":"107","value":"45"},{"name":"处理审核","id":"108","value":"46"},{"name":"待派发核查","id":"109","value":"50"},{"name":"现场核查","id":"110","value":"51"},{"name":"核查通过","id":"112","value":"60"},{"name":"核查未通过","id":"113","value":"61"},{"name":"快速上报","id":"114","value":"62"},{"name":"待结案","id":"115","value":"63"},{"name":"正常结案","id":"116","value":"70"},{"name":"案件作废","id":"117","value":"75"},{"name":"不予立案","id":"118","value":"76"},{"name":"销案","id":"119","value":"77"},{"name":"处理完成","id":"120","value":"301"},{"name":"申请调整","id":"121","value":"302"},{"name":"申请延期","id":"122","value":"303"},{"name":"申请缓办","id":"158","value":"304"},{"name":"待派发核实","id":"173","value":"3"}] + * message : 请求成功 + * success : true + */ + + private double code; + private String message; + private boolean success; + private List data; + + public double getCode() { + return code; + } + + public void setCode(double code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 待核实 + * id : 92 + * value : 0 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java new file mode 100644 index 0000000..0a939d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java @@ -0,0 +1,52 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseListModelImpl implements ICaseListModel { + + private OnGetCaseListListener listener; + + public CaseListModelImpl(OnGetCaseListListener caseListListener) { + this.listener = caseListListener; + } + + public interface OnGetCaseListListener { + void onSuccess(CaseListResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { + Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseState, + registerTimeBegin, registerTimeEnd, eorc, limit, offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseListResultBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java new file mode 100644 index 0000000..65e1c13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseStatusModelImpl implements ICaseStatusModel { + + private OnGetCaseStatusListener listener; + + public CaseStatusModelImpl(OnGetCaseStatusListener onGetCaseStatusListener) { + this.listener = onGetCaseStatusListener; + } + + public interface OnGetCaseStatusListener { + void onSuccess(CaseStatusBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCaseStatusResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseStatusBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java new file mode 100644 index 0000000..7968c67 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseListModel { + Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, + int limit, int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java new file mode 100644 index 0000000..6b21b13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseStatusModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java new file mode 100644 index 0000000..6cbb05d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java @@ -0,0 +1,41 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseListModelImpl; +import com.casic.dcms.mvp.view.ICaseListView; + +public class CaseListPresenterImpl extends BasePresenter implements ICaseListPresenter, CaseListModelImpl.OnGetCaseListListener { + + private ICaseListView view; + private CaseListModelImpl actionModel; + + public CaseListPresenterImpl(ICaseListView caseListView) { + this.view = caseListView; + actionModel = new CaseListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(casetypeCode, + casetypeDetailCode, caseState, registerTimeBegin, registerTimeEnd, eorc, limit, offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CaseListResultBean resultBean) { + view.hideProgress(); + view.obtainCaseStatusData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java index 4889877..376e430 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -10,8 +10,8 @@ private ICaseSmallClassView view; private CaseSmallClassModelImpl actionModel; - public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { - this.view = caseTypeView; + public CaseSmallClassPresenterImpl(ICaseSmallClassView smallClassView) { + this.view = smallClassView; actionModel = new CaseSmallClassModelImpl(this); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java new file mode 100644 index 0000000..e297a23 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseStatusModelImpl; +import com.casic.dcms.mvp.view.ICaseStatusView; + +public class CaseStatusPresenterImpl extends BasePresenter implements ICaseStatusPresenter, CaseStatusModelImpl.OnGetCaseStatusListener { + + private ICaseStatusView view; + private CaseStatusModelImpl actionModel; + + public CaseStatusPresenterImpl(ICaseStatusView caseStatusView) { + this.view = caseStatusView; + actionModel = new CaseStatusModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CaseStatusBean resultBean) { + view.obtainCaseStatusData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java new file mode 100644 index 0000000..67be846 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java @@ -0,0 +1,8 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseListPresenter { + void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java new file mode 100644 index 0000000..19f2532 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseStatusPresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseListView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseListView.java new file mode 100644 index 0000000..430b7b7 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseListView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseListResultBean; + +public interface ICaseListView { + void showProgress(); + + void hideProgress(); + + void obtainCaseStatusData(CaseListResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseStatusView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseStatusView.java new file mode 100644 index 0000000..76384f7 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseStatusView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseStatusBean; + +public interface ICaseStatusView { + void obtainCaseStatusData(CaseStatusBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java new file mode 100644 index 0000000..2324230 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -0,0 +1,97 @@ +package com.casic.dcms.ui; + +import android.view.View; +import android.widget.GridView; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseListResultBean; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.lang.reflect.Type; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseDetailActivity extends BaseActivity implements View.OnClickListener { + + private static final String TAG = "CaseDetailActivity"; + @BindView(R.id.caseTopLayout) + QMUITopBarLayout caseTopLayout; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseStatusView) + TextView caseStatusView; + @BindView(R.id.caseTypeView) + TextView caseTypeView; + @BindView(R.id.caseLargeTypeView) + TextView caseLargeTypeView; + @BindView(R.id.caseSmallTypeView) + TextView caseSmallTypeView; + @BindView(R.id.caseCommunityView) + TextView caseCommunityView; + @BindView(R.id.casePlaceView) + TextView casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.casePicGridView) + GridView casePicGridView; + + @Override + public int initLayoutView() { + return R.layout.activity_case_detail; + } + + @Override + protected void setupTopBarLayout() { + caseTopLayout.setTitle("案卷详情").setTextColor(ContextCompat.getColor(this, R.color.white)); + caseTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + caseTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + Gson gson = new Gson(); + String rowsBeanJson = getIntent().getStringExtra("rowsBeanJson"); + Type type = new TypeToken() { + }.getType(); + CaseListResultBean.DataBean.RowsBean rowsBean = gson.fromJson(rowsBeanJson, type); + assert rowsBean != null; + caseNumberView.setText(rowsBean.getCaseid()); + caseStatusView.setText(rowsBean.getCaseStateName()); + caseTypeView.setText(rowsBean.getEorcName()); + caseLargeTypeView.setText(rowsBean.getCasetypeName()); + caseSmallTypeView.setText(rowsBean.getCasetypeDetailName()); +// caseCommunityView.setText(); +// casePlaceView.setText(); + caseSituationView.setText(rowsBean.getDescription()); + } + + @Override + public void initEvent() { + + } + + @OnClick({R.id.caseAudioView, R.id.handleRecordLayout}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseAudioView: + + break; + case R.id.handleRecordLayout: + + break; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java new file mode 100644 index 0000000..1a68fb5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java @@ -0,0 +1,74 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.view.View; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.CaseListResultAdapter; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseListResultBean; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.lang.reflect.Type; +import java.util.List; + +import butterknife.BindView; + +public class CaseListResultActivity extends BaseActivity { + + @BindView(R.id.caseTopLayout) + QMUITopBarLayout caseTopLayout; + @BindView(R.id.caseRecyclerView) + RecyclerView caseRecyclerView; + + @Override + public int initLayoutView() { + return R.layout.activity_case_list; + } + + @Override + protected void setupTopBarLayout() { + caseTopLayout.setTitle("查询结果").setTextColor(ContextCompat.getColor(this, R.color.white)); + caseTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + caseTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + Gson gson = new Gson(); + String resultBeanJson = getIntent().getStringExtra("resultBeanJson"); + Type type = new TypeToken() { + }.getType(); + CaseListResultBean resultBean = gson.fromJson(resultBeanJson, type); + List dataRows = resultBean.getData().getRows(); + CaseListResultAdapter adapter = new CaseListResultAdapter(this, dataRows); + caseRecyclerView.setLayoutManager(new LinearLayoutManager(this)); + caseRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL)); + caseRecyclerView.setAdapter(adapter); + adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + Intent intent = new Intent(CaseListResultActivity.this, CaseDetailActivity.class); + intent.putExtra("rowsBeanJson", gson.toJson(dataRows.get(position))); + startActivity(intent); + } + }); + } + + @Override + public void initEvent() { + + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java new file mode 100644 index 0000000..da9b919 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java @@ -0,0 +1,375 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseListPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseStatusPresenterImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseListView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.ICaseStatusView; +import com.casic.dcms.utils.ColorHelper; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.TimeOrDateUtil; +import com.casic.dcms.utils.ToastHelper; +import com.google.gson.Gson; +import com.jzxiang.pickerview.TimePickerDialog; +import com.jzxiang.pickerview.data.Type; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseSearchActivity extends BaseActivity implements View.OnClickListener, + ICaseLargeClassView, ICaseSmallClassView, ICaseStatusView, ICaseListView { + + private static final String TAG = "CaseSearchActivity"; + private Context context = this; + @BindView(R.id.caseTopLayout) + QMUITopBarLayout caseTopLayout; + @BindView(R.id.caseClassView) + TextView caseClassView; + @BindView(R.id.caseLargeClassView) + TextView caseLargeClassView; + @BindView(R.id.caseSmallClassView) + TextView caseSmallClassView; + @BindView(R.id.caseStatusView) + TextView caseStatusView; + @BindView(R.id.startTimeView) + TextView startTimeView; + @BindView(R.id.endTimeView) + TextView endTimeView; + @BindView(R.id.searchButton) + QMUIRoundButton searchButton; + @BindView(R.id.resetButton) + QMUIRoundButton resetButton; + + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private List largeClassBeans; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private List smallClassBeans; + private CaseStatusPresenterImpl caseStatusPresenter; + private CaseListPresenterImpl caseListPresenter; + private QMUITipDialog loadingDialog; + private String eorc; + private String typeDetailCode; + private String typeCode; + private Gson gson; + + @Override + public int initLayoutView() { + return R.layout.activity_case_search; + } + + @Override + protected void setupTopBarLayout() { + caseTopLayout.setTitle("案卷查询").setTextColor(ContextCompat.getColor(this, R.color.white)); + caseTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + caseTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseStatusPresenter = new CaseStatusPresenterImpl(this); + caseListPresenter = new CaseListPresenterImpl(this); + } + + @Override + public void initEvent() { + searchButton.setChangeAlphaWhenPress(true); + resetButton.setChangeAlphaWhenPress(true); + loadingDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("查询中,请稍后") + .create(); + gson = new Gson(); + } + + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseStatusLayout, + R.id.selectStartDateView, R.id.selectEndDateView, R.id.searchButton, R.id.resetButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseClassLayout: + new QMUIBottomSheet.BottomListSheetBuilder(this) + .setTitle("案卷类型") + .addItem("事件") + .addItem("部件") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + caseClassView.setText(tag); + caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷大类 + String eorc = String.valueOf(position + 1); + caseLargeClassPresenter.onReadyRetrofitRequest(eorc); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseLargeClassView.setText(tag); + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + eorc = dataBean.getEorc(); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(eorc, typeId); + typeCode = dataBean.getTypeCode(); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseSmallClassView.setText(tag); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + typeDetailCode = smallClassBeans.get(position).getTypeDetailCode(); + } + }).build().show(); + } + } + break; + case R.id.caseStatusLayout: + caseStatusPresenter.onReadyRetrofitRequest(); + break; + case R.id.selectStartDateView: + new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis()) + .setType(Type.YEAR_MONTH_DAY) + .setCallBack((timePickerView, millSeconds) -> { + String date = TimeOrDateUtil.rTimestampToDate(millSeconds); + + startTimeView.setText(date); + startTimeView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + }).build().show(getSupportFragmentManager(), "year_month_day"); + break; + case R.id.selectEndDateView: + new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis()) + .setType(Type.YEAR_MONTH_DAY) + .setCallBack((timePickerView, millSeconds) -> { + String date = TimeOrDateUtil.rTimestampToDate(millSeconds); + + endTimeView.setText(date); + endTimeView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + }).build().show(getSupportFragmentManager(), "year_month_day"); + break; + case R.id.searchButton: + startSearchCaseList(); + break; + case R.id.resetButton: + new QMUIDialog.MessageDialogBuilder(context) + .setTitle("重置") + .setMessage("确定要重置填写的资料吗?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + + caseClassView.setText(""); + caseLargeClassView.setText(""); + caseSmallClassView.setText(""); + caseStatusView.setText(""); + startTimeView.setText(""); + endTimeView.setText(""); + } + }).create().show(); + break; + default: + break; + } + } + + /** + * 参数校验 + */ + private void startSearchCaseList() { + if (TextUtils.isEmpty(typeCode)) { + if (TextUtils.isEmpty(typeDetailCode)) { + ToastHelper.showToast("案卷大类还未填写,请检查", ToastHelper.ERROR); + return; + } + } + if (TextUtils.isEmpty(typeDetailCode)) { + if (TextUtils.isEmpty(typeDetailCode)) { + ToastHelper.showToast("案卷小类还未填写,请检查", ToastHelper.ERROR); + return; + } + } + String caseStatus = caseStatusView.getText().toString(); + if (TextUtils.isEmpty(caseStatus)) { + ToastHelper.showToast("处理状态还未填写,请检查", ToastHelper.ERROR); + return; + } + String startTime = startTimeView.getText().toString(); + if (TextUtils.isEmpty(startTime)) { + ToastHelper.showToast("起始时间还未填写,请检查", ToastHelper.ERROR); + return; + } + String endTime = endTimeView.getText().toString(); + if (TextUtils.isEmpty(endTime)) { + ToastHelper.showToast("结束时间还未填写,请检查", ToastHelper.ERROR); + return; + } + if (TextUtils.isEmpty(eorc)) { + ToastHelper.showToast("案卷大类还未填写,请检查", ToastHelper.ERROR); + return; + } + caseListPresenter.onReadyRetrofitRequest(typeCode, typeDetailCode, caseStatus, startTime, endTime, eorc, + 20, 0); + } + + @Override + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeClassView.setText("无小类"); + } else { + caseLargeClassView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 + } + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + + caseSmallClassView.setText("请选择"); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } + } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallClassView.setText("无小类"); + } else { + caseSmallClassView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 + } + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } + } + + @Override + public void obtainCaseStatusData(CaseStatusBean resultBean) { +// Log.d(TAG, "obtainCaseStatusData: " + new Gson().toJson(resultBean)); + if (resultBean.isSuccess()) { + List beans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处理状态"); + for (CaseStatusBean.DataBean dataBean : beans) { + 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(); + + caseStatusView.setText(tag); + caseStatusView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + } + }).build().show(); + } + } + + @Override + public void showProgress() { + loadingDialog.show(); + } + + @Override + public void obtainCaseStatusData(CaseListResultBean resultBean) { +// Log.d(TAG, "obtainCaseStatusData: " + new Gson().toJson(resultBean)); + if (resultBean.isSuccess()) { + Intent intent = new Intent(this, CaseListResultActivity.class); + intent.putExtra("resultBeanJson", gson.toJson(resultBean)); + startActivity(intent); + } + } + + @Override + public void hideProgress() { + loadingDialog.hide(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseStatusPresenter != null) { + caseStatusPresenter.disposeRetrofitRequest(); + } + if (caseListPresenter != null) { + caseListPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 549b16a..c3436a2 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -583,4 +583,18 @@ public void hideProgress() { submitDialog.hide(); } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseSubmitPresenter != null) { + caseSubmitPresenter.disposeRetrofitRequest(); + } + } } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index a21d874..a6c35b4 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -16,6 +16,7 @@ import com.casic.dcms.bean.UserBean; import com.casic.dcms.mvp.presenter.UserDataPresenterImpl; import com.casic.dcms.mvp.view.IUserDataView; +import com.casic.dcms.ui.CaseSearchActivity; import com.casic.dcms.ui.CaseUploadActivity; import com.casic.dcms.ui.DataAnalysisActivity; import com.casic.dcms.utils.StringHelper; @@ -102,7 +103,8 @@ ToastHelper.showToast("在岗人员", ToastHelper.INFO); break; case 10: - ToastHelper.showToast("案卷查询", ToastHelper.INFO); + intent.setClass(context, CaseSearchActivity.class); + startActivity(intent); break; case 11: ToastHelper.showToast("地图查看", ToastHelper.INFO); diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index 6b22eaf..11d462b 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -1,7 +1,9 @@ package com.casic.dcms.utils.retrofit; import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseListResultBean; import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.bean.CaseStatusBean; import com.casic.dcms.bean.ChangePasswordResultBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; @@ -116,4 +118,24 @@ Observable obtainEventSource(@Header("token") String token, @Field("begTime") String begTime, @Field("deptid") String endTime); + + /** + * 获取案件状态 + */ + @GET("/dict/code/caseState") + Observable getCaseStatus(@Header("token") String token); + + /** + * 获取案件状态 + */ + @GET("/case/queryListPage") + Observable obtainCaseList(@Header("token") String token, + @Query("casetypeCode") String casetypeCode, + @Query("casetypeDetailCode") String casetypeDetailCode, + @Query("caseState") String caseState, + @Query("createTimeBegin") String createTimeBegin, + @Query("createTimeEnd") String createTimeEnd, + @Query("eorc") String eorc, + @Query("limit") int limit, + @Query("offset") int offset); } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d5c56ab..deeff33 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -44,6 +44,9 @@ + + + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public CaseListResultAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_case_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView leftTextView; + private TextView titleView; + private TextView contentView; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + leftTextView = itemView.findViewById(R.id.leftTextView); + titleView = itemView.findViewById(R.id.titleView); + contentView = itemView.findViewById(R.id.contentView); + } + + void bindView(CaseListResultBean.DataBean.RowsBean rowsBean) { + String eorcName = rowsBean.getEorcName(); + leftTextView.setText(eorcName.substring(0, 1)); + titleView.setText(rowsBean.getCasetypeName()); + contentView.setText(rowsBean.getCasetypeDetailName()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java new file mode 100644 index 0000000..3ac2b7b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java @@ -0,0 +1,342 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseListResultBean { + + /** + * code : 200 + * data : {"rows":[{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}],"total":3} + * message : 请求成功 + * success : true + */ + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + /** + * rows : [{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}] + * total : 3 + */ + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * isPostpone : 0 + * description : 音频测试 + * createUserName : 超级管理员 + * source : 11 + * eorcName : 事件 + * casetypeDetailName : 违规高空悬吊作业 + * remainingTime : 超时729小时6分钟 + * casetypeName : 其他事件 + * processId : 2680008 + * caseState : 0 + * id : 1372735305680994306 + * reportSupervisorId : + * fieldintro : 音频测试 + * lat : 27.75386000913368 + * caseStateName : 待核实 + * lng : 116.07951602267566 + * isOvertime : 1 + * casetypeDetailCode : 01 + * onedeptid : + * eorc : 1 + * caseid : 202103190001 + * casetypeCode : 06 + * createUser : 1 + * nodeLimittime : 2021-03-19 11:23:03 + * sourceName : 热线电话 + * reportTime : 2021-03-19 10:22:56 + */ + + private int isPostpone; + private String description; + private String createUserName; + private int source; + private String eorcName; + private String casetypeDetailName; + private String remainingTime; + private String casetypeName; + private String processId; + private int caseState; + private String id; + private String reportSupervisorId; + private String fieldintro; + private String lat; + private String caseStateName; + private String lng; + private String isOvertime; + private String casetypeDetailCode; + private String onedeptid; + private String eorc; + private String caseid; + private String casetypeCode; + private String createUser; + private String nodeLimittime; + private String sourceName; + private String reportTime; + + public int getIsPostpone() { + return isPostpone; + } + + public void setIsPostpone(int isPostpone) { + this.isPostpone = isPostpone; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public int getSource() { + return source; + } + + public void setSource(int source) { + this.source = source; + } + + public String getEorcName() { + return eorcName; + } + + public void setEorcName(String eorcName) { + this.eorcName = eorcName; + } + + public String getCasetypeDetailName() { + return casetypeDetailName; + } + + public void setCasetypeDetailName(String casetypeDetailName) { + this.casetypeDetailName = casetypeDetailName; + } + + public String getRemainingTime() { + return remainingTime; + } + + public void setRemainingTime(String remainingTime) { + this.remainingTime = remainingTime; + } + + public String getCasetypeName() { + return casetypeName; + } + + public void setCasetypeName(String casetypeName) { + this.casetypeName = casetypeName; + } + + public String getProcessId() { + return processId; + } + + public void setProcessId(String processId) { + this.processId = processId; + } + + public int getCaseState() { + return caseState; + } + + public void setCaseState(int caseState) { + this.caseState = caseState; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getReportSupervisorId() { + return reportSupervisorId; + } + + public void setReportSupervisorId(String reportSupervisorId) { + this.reportSupervisorId = reportSupervisorId; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getLat() { + return lat; + } + + public void setLat(String lat) { + this.lat = lat; + } + + public String getCaseStateName() { + return caseStateName; + } + + public void setCaseStateName(String caseStateName) { + this.caseStateName = caseStateName; + } + + public String getLng() { + return lng; + } + + public void setLng(String lng) { + this.lng = lng; + } + + public String getIsOvertime() { + return isOvertime; + } + + public void setIsOvertime(String isOvertime) { + this.isOvertime = isOvertime; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getOnedeptid() { + return onedeptid; + } + + public void setOnedeptid(String onedeptid) { + this.onedeptid = onedeptid; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCaseid() { + return caseid; + } + + public void setCaseid(String caseid) { + this.caseid = caseid; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getNodeLimittime() { + return nodeLimittime; + } + + public void setNodeLimittime(String nodeLimittime) { + this.nodeLimittime = nodeLimittime; + } + + public String getSourceName() { + return sourceName; + } + + public void setSourceName(String sourceName) { + this.sourceName = sourceName; + } + + public String getReportTime() { + return reportTime; + } + + public void setReportTime(String reportTime) { + this.reportTime = reportTime; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java new file mode 100644 index 0000000..6918d00 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java @@ -0,0 +1,86 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseStatusBean { + + /** + * code : 200.0 + * data : [{"name":"待核实","id":"92","value":"0"},{"name":"核实无效","id":"93","value":"1"},{"name":"待立案","id":"94","value":"10"},{"name":"预立案","id":"95","value":"11"},{"name":"待派发","id":"96","value":"20"},{"name":"挂起","id":"98","value":"22"},{"name":"预派发","id":"99","value":"23"},{"name":"待处理","id":"100","value":"30"},{"name":"二级处理审核","id":"101","value":"31"},{"name":"调整批示","id":"102","value":"36"},{"name":"部门调整批示","id":"103","value":"37"},{"name":"处置通处理","id":"104","value":"39"},{"name":"待调整","id":"105","value":"40"},{"name":"授权审核","id":"106","value":"43"},{"name":"部门授权审核","id":"107","value":"45"},{"name":"处理审核","id":"108","value":"46"},{"name":"待派发核查","id":"109","value":"50"},{"name":"现场核查","id":"110","value":"51"},{"name":"核查通过","id":"112","value":"60"},{"name":"核查未通过","id":"113","value":"61"},{"name":"快速上报","id":"114","value":"62"},{"name":"待结案","id":"115","value":"63"},{"name":"正常结案","id":"116","value":"70"},{"name":"案件作废","id":"117","value":"75"},{"name":"不予立案","id":"118","value":"76"},{"name":"销案","id":"119","value":"77"},{"name":"处理完成","id":"120","value":"301"},{"name":"申请调整","id":"121","value":"302"},{"name":"申请延期","id":"122","value":"303"},{"name":"申请缓办","id":"158","value":"304"},{"name":"待派发核实","id":"173","value":"3"}] + * message : 请求成功 + * success : true + */ + + private double code; + private String message; + private boolean success; + private List data; + + public double getCode() { + return code; + } + + public void setCode(double code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 待核实 + * id : 92 + * value : 0 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java new file mode 100644 index 0000000..0a939d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java @@ -0,0 +1,52 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseListModelImpl implements ICaseListModel { + + private OnGetCaseListListener listener; + + public CaseListModelImpl(OnGetCaseListListener caseListListener) { + this.listener = caseListListener; + } + + public interface OnGetCaseListListener { + void onSuccess(CaseListResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { + Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseState, + registerTimeBegin, registerTimeEnd, eorc, limit, offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseListResultBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java new file mode 100644 index 0000000..65e1c13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseStatusModelImpl implements ICaseStatusModel { + + private OnGetCaseStatusListener listener; + + public CaseStatusModelImpl(OnGetCaseStatusListener onGetCaseStatusListener) { + this.listener = onGetCaseStatusListener; + } + + public interface OnGetCaseStatusListener { + void onSuccess(CaseStatusBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCaseStatusResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseStatusBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java new file mode 100644 index 0000000..7968c67 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseListModel { + Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, + int limit, int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java new file mode 100644 index 0000000..6b21b13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseStatusModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java new file mode 100644 index 0000000..6cbb05d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java @@ -0,0 +1,41 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseListModelImpl; +import com.casic.dcms.mvp.view.ICaseListView; + +public class CaseListPresenterImpl extends BasePresenter implements ICaseListPresenter, CaseListModelImpl.OnGetCaseListListener { + + private ICaseListView view; + private CaseListModelImpl actionModel; + + public CaseListPresenterImpl(ICaseListView caseListView) { + this.view = caseListView; + actionModel = new CaseListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(casetypeCode, + casetypeDetailCode, caseState, registerTimeBegin, registerTimeEnd, eorc, limit, offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CaseListResultBean resultBean) { + view.hideProgress(); + view.obtainCaseStatusData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java index 4889877..376e430 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -10,8 +10,8 @@ private ICaseSmallClassView view; private CaseSmallClassModelImpl actionModel; - public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { - this.view = caseTypeView; + public CaseSmallClassPresenterImpl(ICaseSmallClassView smallClassView) { + this.view = smallClassView; actionModel = new CaseSmallClassModelImpl(this); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java new file mode 100644 index 0000000..e297a23 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseStatusModelImpl; +import com.casic.dcms.mvp.view.ICaseStatusView; + +public class CaseStatusPresenterImpl extends BasePresenter implements ICaseStatusPresenter, CaseStatusModelImpl.OnGetCaseStatusListener { + + private ICaseStatusView view; + private CaseStatusModelImpl actionModel; + + public CaseStatusPresenterImpl(ICaseStatusView caseStatusView) { + this.view = caseStatusView; + actionModel = new CaseStatusModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CaseStatusBean resultBean) { + view.obtainCaseStatusData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java new file mode 100644 index 0000000..67be846 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java @@ -0,0 +1,8 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseListPresenter { + void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java new file mode 100644 index 0000000..19f2532 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseStatusPresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseListView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseListView.java new file mode 100644 index 0000000..430b7b7 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseListView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseListResultBean; + +public interface ICaseListView { + void showProgress(); + + void hideProgress(); + + void obtainCaseStatusData(CaseListResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseStatusView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseStatusView.java new file mode 100644 index 0000000..76384f7 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseStatusView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseStatusBean; + +public interface ICaseStatusView { + void obtainCaseStatusData(CaseStatusBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java new file mode 100644 index 0000000..2324230 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -0,0 +1,97 @@ +package com.casic.dcms.ui; + +import android.view.View; +import android.widget.GridView; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseListResultBean; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.lang.reflect.Type; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseDetailActivity extends BaseActivity implements View.OnClickListener { + + private static final String TAG = "CaseDetailActivity"; + @BindView(R.id.caseTopLayout) + QMUITopBarLayout caseTopLayout; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseStatusView) + TextView caseStatusView; + @BindView(R.id.caseTypeView) + TextView caseTypeView; + @BindView(R.id.caseLargeTypeView) + TextView caseLargeTypeView; + @BindView(R.id.caseSmallTypeView) + TextView caseSmallTypeView; + @BindView(R.id.caseCommunityView) + TextView caseCommunityView; + @BindView(R.id.casePlaceView) + TextView casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.casePicGridView) + GridView casePicGridView; + + @Override + public int initLayoutView() { + return R.layout.activity_case_detail; + } + + @Override + protected void setupTopBarLayout() { + caseTopLayout.setTitle("案卷详情").setTextColor(ContextCompat.getColor(this, R.color.white)); + caseTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + caseTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + Gson gson = new Gson(); + String rowsBeanJson = getIntent().getStringExtra("rowsBeanJson"); + Type type = new TypeToken() { + }.getType(); + CaseListResultBean.DataBean.RowsBean rowsBean = gson.fromJson(rowsBeanJson, type); + assert rowsBean != null; + caseNumberView.setText(rowsBean.getCaseid()); + caseStatusView.setText(rowsBean.getCaseStateName()); + caseTypeView.setText(rowsBean.getEorcName()); + caseLargeTypeView.setText(rowsBean.getCasetypeName()); + caseSmallTypeView.setText(rowsBean.getCasetypeDetailName()); +// caseCommunityView.setText(); +// casePlaceView.setText(); + caseSituationView.setText(rowsBean.getDescription()); + } + + @Override + public void initEvent() { + + } + + @OnClick({R.id.caseAudioView, R.id.handleRecordLayout}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseAudioView: + + break; + case R.id.handleRecordLayout: + + break; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java new file mode 100644 index 0000000..1a68fb5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java @@ -0,0 +1,74 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.view.View; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.CaseListResultAdapter; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseListResultBean; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.lang.reflect.Type; +import java.util.List; + +import butterknife.BindView; + +public class CaseListResultActivity extends BaseActivity { + + @BindView(R.id.caseTopLayout) + QMUITopBarLayout caseTopLayout; + @BindView(R.id.caseRecyclerView) + RecyclerView caseRecyclerView; + + @Override + public int initLayoutView() { + return R.layout.activity_case_list; + } + + @Override + protected void setupTopBarLayout() { + caseTopLayout.setTitle("查询结果").setTextColor(ContextCompat.getColor(this, R.color.white)); + caseTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + caseTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + Gson gson = new Gson(); + String resultBeanJson = getIntent().getStringExtra("resultBeanJson"); + Type type = new TypeToken() { + }.getType(); + CaseListResultBean resultBean = gson.fromJson(resultBeanJson, type); + List dataRows = resultBean.getData().getRows(); + CaseListResultAdapter adapter = new CaseListResultAdapter(this, dataRows); + caseRecyclerView.setLayoutManager(new LinearLayoutManager(this)); + caseRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL)); + caseRecyclerView.setAdapter(adapter); + adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + Intent intent = new Intent(CaseListResultActivity.this, CaseDetailActivity.class); + intent.putExtra("rowsBeanJson", gson.toJson(dataRows.get(position))); + startActivity(intent); + } + }); + } + + @Override + public void initEvent() { + + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java new file mode 100644 index 0000000..da9b919 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java @@ -0,0 +1,375 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseListPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseStatusPresenterImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseListView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.ICaseStatusView; +import com.casic.dcms.utils.ColorHelper; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.TimeOrDateUtil; +import com.casic.dcms.utils.ToastHelper; +import com.google.gson.Gson; +import com.jzxiang.pickerview.TimePickerDialog; +import com.jzxiang.pickerview.data.Type; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseSearchActivity extends BaseActivity implements View.OnClickListener, + ICaseLargeClassView, ICaseSmallClassView, ICaseStatusView, ICaseListView { + + private static final String TAG = "CaseSearchActivity"; + private Context context = this; + @BindView(R.id.caseTopLayout) + QMUITopBarLayout caseTopLayout; + @BindView(R.id.caseClassView) + TextView caseClassView; + @BindView(R.id.caseLargeClassView) + TextView caseLargeClassView; + @BindView(R.id.caseSmallClassView) + TextView caseSmallClassView; + @BindView(R.id.caseStatusView) + TextView caseStatusView; + @BindView(R.id.startTimeView) + TextView startTimeView; + @BindView(R.id.endTimeView) + TextView endTimeView; + @BindView(R.id.searchButton) + QMUIRoundButton searchButton; + @BindView(R.id.resetButton) + QMUIRoundButton resetButton; + + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private List largeClassBeans; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private List smallClassBeans; + private CaseStatusPresenterImpl caseStatusPresenter; + private CaseListPresenterImpl caseListPresenter; + private QMUITipDialog loadingDialog; + private String eorc; + private String typeDetailCode; + private String typeCode; + private Gson gson; + + @Override + public int initLayoutView() { + return R.layout.activity_case_search; + } + + @Override + protected void setupTopBarLayout() { + caseTopLayout.setTitle("案卷查询").setTextColor(ContextCompat.getColor(this, R.color.white)); + caseTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + caseTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseStatusPresenter = new CaseStatusPresenterImpl(this); + caseListPresenter = new CaseListPresenterImpl(this); + } + + @Override + public void initEvent() { + searchButton.setChangeAlphaWhenPress(true); + resetButton.setChangeAlphaWhenPress(true); + loadingDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("查询中,请稍后") + .create(); + gson = new Gson(); + } + + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseStatusLayout, + R.id.selectStartDateView, R.id.selectEndDateView, R.id.searchButton, R.id.resetButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseClassLayout: + new QMUIBottomSheet.BottomListSheetBuilder(this) + .setTitle("案卷类型") + .addItem("事件") + .addItem("部件") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + caseClassView.setText(tag); + caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷大类 + String eorc = String.valueOf(position + 1); + caseLargeClassPresenter.onReadyRetrofitRequest(eorc); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseLargeClassView.setText(tag); + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + eorc = dataBean.getEorc(); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(eorc, typeId); + typeCode = dataBean.getTypeCode(); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseSmallClassView.setText(tag); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + typeDetailCode = smallClassBeans.get(position).getTypeDetailCode(); + } + }).build().show(); + } + } + break; + case R.id.caseStatusLayout: + caseStatusPresenter.onReadyRetrofitRequest(); + break; + case R.id.selectStartDateView: + new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis()) + .setType(Type.YEAR_MONTH_DAY) + .setCallBack((timePickerView, millSeconds) -> { + String date = TimeOrDateUtil.rTimestampToDate(millSeconds); + + startTimeView.setText(date); + startTimeView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + }).build().show(getSupportFragmentManager(), "year_month_day"); + break; + case R.id.selectEndDateView: + new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis()) + .setType(Type.YEAR_MONTH_DAY) + .setCallBack((timePickerView, millSeconds) -> { + String date = TimeOrDateUtil.rTimestampToDate(millSeconds); + + endTimeView.setText(date); + endTimeView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + }).build().show(getSupportFragmentManager(), "year_month_day"); + break; + case R.id.searchButton: + startSearchCaseList(); + break; + case R.id.resetButton: + new QMUIDialog.MessageDialogBuilder(context) + .setTitle("重置") + .setMessage("确定要重置填写的资料吗?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + + caseClassView.setText(""); + caseLargeClassView.setText(""); + caseSmallClassView.setText(""); + caseStatusView.setText(""); + startTimeView.setText(""); + endTimeView.setText(""); + } + }).create().show(); + break; + default: + break; + } + } + + /** + * 参数校验 + */ + private void startSearchCaseList() { + if (TextUtils.isEmpty(typeCode)) { + if (TextUtils.isEmpty(typeDetailCode)) { + ToastHelper.showToast("案卷大类还未填写,请检查", ToastHelper.ERROR); + return; + } + } + if (TextUtils.isEmpty(typeDetailCode)) { + if (TextUtils.isEmpty(typeDetailCode)) { + ToastHelper.showToast("案卷小类还未填写,请检查", ToastHelper.ERROR); + return; + } + } + String caseStatus = caseStatusView.getText().toString(); + if (TextUtils.isEmpty(caseStatus)) { + ToastHelper.showToast("处理状态还未填写,请检查", ToastHelper.ERROR); + return; + } + String startTime = startTimeView.getText().toString(); + if (TextUtils.isEmpty(startTime)) { + ToastHelper.showToast("起始时间还未填写,请检查", ToastHelper.ERROR); + return; + } + String endTime = endTimeView.getText().toString(); + if (TextUtils.isEmpty(endTime)) { + ToastHelper.showToast("结束时间还未填写,请检查", ToastHelper.ERROR); + return; + } + if (TextUtils.isEmpty(eorc)) { + ToastHelper.showToast("案卷大类还未填写,请检查", ToastHelper.ERROR); + return; + } + caseListPresenter.onReadyRetrofitRequest(typeCode, typeDetailCode, caseStatus, startTime, endTime, eorc, + 20, 0); + } + + @Override + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeClassView.setText("无小类"); + } else { + caseLargeClassView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 + } + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + + caseSmallClassView.setText("请选择"); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } + } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallClassView.setText("无小类"); + } else { + caseSmallClassView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 + } + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } + } + + @Override + public void obtainCaseStatusData(CaseStatusBean resultBean) { +// Log.d(TAG, "obtainCaseStatusData: " + new Gson().toJson(resultBean)); + if (resultBean.isSuccess()) { + List beans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处理状态"); + for (CaseStatusBean.DataBean dataBean : beans) { + 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(); + + caseStatusView.setText(tag); + caseStatusView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + } + }).build().show(); + } + } + + @Override + public void showProgress() { + loadingDialog.show(); + } + + @Override + public void obtainCaseStatusData(CaseListResultBean resultBean) { +// Log.d(TAG, "obtainCaseStatusData: " + new Gson().toJson(resultBean)); + if (resultBean.isSuccess()) { + Intent intent = new Intent(this, CaseListResultActivity.class); + intent.putExtra("resultBeanJson", gson.toJson(resultBean)); + startActivity(intent); + } + } + + @Override + public void hideProgress() { + loadingDialog.hide(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseStatusPresenter != null) { + caseStatusPresenter.disposeRetrofitRequest(); + } + if (caseListPresenter != null) { + caseListPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 549b16a..c3436a2 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -583,4 +583,18 @@ public void hideProgress() { submitDialog.hide(); } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseSubmitPresenter != null) { + caseSubmitPresenter.disposeRetrofitRequest(); + } + } } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index a21d874..a6c35b4 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -16,6 +16,7 @@ import com.casic.dcms.bean.UserBean; import com.casic.dcms.mvp.presenter.UserDataPresenterImpl; import com.casic.dcms.mvp.view.IUserDataView; +import com.casic.dcms.ui.CaseSearchActivity; import com.casic.dcms.ui.CaseUploadActivity; import com.casic.dcms.ui.DataAnalysisActivity; import com.casic.dcms.utils.StringHelper; @@ -102,7 +103,8 @@ ToastHelper.showToast("在岗人员", ToastHelper.INFO); break; case 10: - ToastHelper.showToast("案卷查询", ToastHelper.INFO); + intent.setClass(context, CaseSearchActivity.class); + startActivity(intent); break; case 11: ToastHelper.showToast("地图查看", ToastHelper.INFO); diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index 6b22eaf..11d462b 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -1,7 +1,9 @@ package com.casic.dcms.utils.retrofit; import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseListResultBean; import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.bean.CaseStatusBean; import com.casic.dcms.bean.ChangePasswordResultBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; @@ -116,4 +118,24 @@ Observable obtainEventSource(@Header("token") String token, @Field("begTime") String begTime, @Field("deptid") String endTime); + + /** + * 获取案件状态 + */ + @GET("/dict/code/caseState") + Observable getCaseStatus(@Header("token") String token); + + /** + * 获取案件状态 + */ + @GET("/case/queryListPage") + Observable obtainCaseList(@Header("token") String token, + @Query("casetypeCode") String casetypeCode, + @Query("casetypeDetailCode") String casetypeDetailCode, + @Query("caseState") String caseState, + @Query("createTimeBegin") String createTimeBegin, + @Query("createTimeEnd") String createTimeEnd, + @Query("eorc") String eorc, + @Query("limit") int limit, + @Query("offset") int offset); } diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index e20f305..c7d65a9 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -3,7 +3,9 @@ import android.util.Log; import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseListResultBean; import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.bean.CaseStatusBean; import com.casic.dcms.bean.ChangePasswordResultBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; @@ -166,4 +168,25 @@ RetrofitService service = retrofit.create(RetrofitService.class); return service.obtainEventSource(TokenHelper.getToken(), begTime, endTime); } + + /** + * 获取案件状态 + */ + public static Observable getCaseStatusResult() { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.getCaseStatus(TokenHelper.getToken()); + } + + /** + * 根据时间查询案卷列表 + */ + public static Observable getCaseListResult(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, + int limit, int offset) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainCaseList(TokenHelper.getToken(), casetypeCode, + casetypeDetailCode, caseState, registerTimeBegin, registerTimeEnd, eorc, limit, offset); + } } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d5c56ab..deeff33 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -44,6 +44,9 @@ + + + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public CaseListResultAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_case_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView leftTextView; + private TextView titleView; + private TextView contentView; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + leftTextView = itemView.findViewById(R.id.leftTextView); + titleView = itemView.findViewById(R.id.titleView); + contentView = itemView.findViewById(R.id.contentView); + } + + void bindView(CaseListResultBean.DataBean.RowsBean rowsBean) { + String eorcName = rowsBean.getEorcName(); + leftTextView.setText(eorcName.substring(0, 1)); + titleView.setText(rowsBean.getCasetypeName()); + contentView.setText(rowsBean.getCasetypeDetailName()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java new file mode 100644 index 0000000..3ac2b7b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java @@ -0,0 +1,342 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseListResultBean { + + /** + * code : 200 + * data : {"rows":[{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}],"total":3} + * message : 请求成功 + * success : true + */ + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + /** + * rows : [{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}] + * total : 3 + */ + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * isPostpone : 0 + * description : 音频测试 + * createUserName : 超级管理员 + * source : 11 + * eorcName : 事件 + * casetypeDetailName : 违规高空悬吊作业 + * remainingTime : 超时729小时6分钟 + * casetypeName : 其他事件 + * processId : 2680008 + * caseState : 0 + * id : 1372735305680994306 + * reportSupervisorId : + * fieldintro : 音频测试 + * lat : 27.75386000913368 + * caseStateName : 待核实 + * lng : 116.07951602267566 + * isOvertime : 1 + * casetypeDetailCode : 01 + * onedeptid : + * eorc : 1 + * caseid : 202103190001 + * casetypeCode : 06 + * createUser : 1 + * nodeLimittime : 2021-03-19 11:23:03 + * sourceName : 热线电话 + * reportTime : 2021-03-19 10:22:56 + */ + + private int isPostpone; + private String description; + private String createUserName; + private int source; + private String eorcName; + private String casetypeDetailName; + private String remainingTime; + private String casetypeName; + private String processId; + private int caseState; + private String id; + private String reportSupervisorId; + private String fieldintro; + private String lat; + private String caseStateName; + private String lng; + private String isOvertime; + private String casetypeDetailCode; + private String onedeptid; + private String eorc; + private String caseid; + private String casetypeCode; + private String createUser; + private String nodeLimittime; + private String sourceName; + private String reportTime; + + public int getIsPostpone() { + return isPostpone; + } + + public void setIsPostpone(int isPostpone) { + this.isPostpone = isPostpone; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public int getSource() { + return source; + } + + public void setSource(int source) { + this.source = source; + } + + public String getEorcName() { + return eorcName; + } + + public void setEorcName(String eorcName) { + this.eorcName = eorcName; + } + + public String getCasetypeDetailName() { + return casetypeDetailName; + } + + public void setCasetypeDetailName(String casetypeDetailName) { + this.casetypeDetailName = casetypeDetailName; + } + + public String getRemainingTime() { + return remainingTime; + } + + public void setRemainingTime(String remainingTime) { + this.remainingTime = remainingTime; + } + + public String getCasetypeName() { + return casetypeName; + } + + public void setCasetypeName(String casetypeName) { + this.casetypeName = casetypeName; + } + + public String getProcessId() { + return processId; + } + + public void setProcessId(String processId) { + this.processId = processId; + } + + public int getCaseState() { + return caseState; + } + + public void setCaseState(int caseState) { + this.caseState = caseState; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getReportSupervisorId() { + return reportSupervisorId; + } + + public void setReportSupervisorId(String reportSupervisorId) { + this.reportSupervisorId = reportSupervisorId; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getLat() { + return lat; + } + + public void setLat(String lat) { + this.lat = lat; + } + + public String getCaseStateName() { + return caseStateName; + } + + public void setCaseStateName(String caseStateName) { + this.caseStateName = caseStateName; + } + + public String getLng() { + return lng; + } + + public void setLng(String lng) { + this.lng = lng; + } + + public String getIsOvertime() { + return isOvertime; + } + + public void setIsOvertime(String isOvertime) { + this.isOvertime = isOvertime; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getOnedeptid() { + return onedeptid; + } + + public void setOnedeptid(String onedeptid) { + this.onedeptid = onedeptid; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCaseid() { + return caseid; + } + + public void setCaseid(String caseid) { + this.caseid = caseid; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getNodeLimittime() { + return nodeLimittime; + } + + public void setNodeLimittime(String nodeLimittime) { + this.nodeLimittime = nodeLimittime; + } + + public String getSourceName() { + return sourceName; + } + + public void setSourceName(String sourceName) { + this.sourceName = sourceName; + } + + public String getReportTime() { + return reportTime; + } + + public void setReportTime(String reportTime) { + this.reportTime = reportTime; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java new file mode 100644 index 0000000..6918d00 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java @@ -0,0 +1,86 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseStatusBean { + + /** + * code : 200.0 + * data : [{"name":"待核实","id":"92","value":"0"},{"name":"核实无效","id":"93","value":"1"},{"name":"待立案","id":"94","value":"10"},{"name":"预立案","id":"95","value":"11"},{"name":"待派发","id":"96","value":"20"},{"name":"挂起","id":"98","value":"22"},{"name":"预派发","id":"99","value":"23"},{"name":"待处理","id":"100","value":"30"},{"name":"二级处理审核","id":"101","value":"31"},{"name":"调整批示","id":"102","value":"36"},{"name":"部门调整批示","id":"103","value":"37"},{"name":"处置通处理","id":"104","value":"39"},{"name":"待调整","id":"105","value":"40"},{"name":"授权审核","id":"106","value":"43"},{"name":"部门授权审核","id":"107","value":"45"},{"name":"处理审核","id":"108","value":"46"},{"name":"待派发核查","id":"109","value":"50"},{"name":"现场核查","id":"110","value":"51"},{"name":"核查通过","id":"112","value":"60"},{"name":"核查未通过","id":"113","value":"61"},{"name":"快速上报","id":"114","value":"62"},{"name":"待结案","id":"115","value":"63"},{"name":"正常结案","id":"116","value":"70"},{"name":"案件作废","id":"117","value":"75"},{"name":"不予立案","id":"118","value":"76"},{"name":"销案","id":"119","value":"77"},{"name":"处理完成","id":"120","value":"301"},{"name":"申请调整","id":"121","value":"302"},{"name":"申请延期","id":"122","value":"303"},{"name":"申请缓办","id":"158","value":"304"},{"name":"待派发核实","id":"173","value":"3"}] + * message : 请求成功 + * success : true + */ + + private double code; + private String message; + private boolean success; + private List data; + + public double getCode() { + return code; + } + + public void setCode(double code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 待核实 + * id : 92 + * value : 0 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java new file mode 100644 index 0000000..0a939d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java @@ -0,0 +1,52 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseListModelImpl implements ICaseListModel { + + private OnGetCaseListListener listener; + + public CaseListModelImpl(OnGetCaseListListener caseListListener) { + this.listener = caseListListener; + } + + public interface OnGetCaseListListener { + void onSuccess(CaseListResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { + Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseState, + registerTimeBegin, registerTimeEnd, eorc, limit, offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseListResultBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java new file mode 100644 index 0000000..65e1c13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseStatusModelImpl implements ICaseStatusModel { + + private OnGetCaseStatusListener listener; + + public CaseStatusModelImpl(OnGetCaseStatusListener onGetCaseStatusListener) { + this.listener = onGetCaseStatusListener; + } + + public interface OnGetCaseStatusListener { + void onSuccess(CaseStatusBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCaseStatusResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseStatusBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java new file mode 100644 index 0000000..7968c67 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseListModel { + Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, + int limit, int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java new file mode 100644 index 0000000..6b21b13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseStatusModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java new file mode 100644 index 0000000..6cbb05d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java @@ -0,0 +1,41 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseListModelImpl; +import com.casic.dcms.mvp.view.ICaseListView; + +public class CaseListPresenterImpl extends BasePresenter implements ICaseListPresenter, CaseListModelImpl.OnGetCaseListListener { + + private ICaseListView view; + private CaseListModelImpl actionModel; + + public CaseListPresenterImpl(ICaseListView caseListView) { + this.view = caseListView; + actionModel = new CaseListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(casetypeCode, + casetypeDetailCode, caseState, registerTimeBegin, registerTimeEnd, eorc, limit, offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CaseListResultBean resultBean) { + view.hideProgress(); + view.obtainCaseStatusData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java index 4889877..376e430 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -10,8 +10,8 @@ private ICaseSmallClassView view; private CaseSmallClassModelImpl actionModel; - public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { - this.view = caseTypeView; + public CaseSmallClassPresenterImpl(ICaseSmallClassView smallClassView) { + this.view = smallClassView; actionModel = new CaseSmallClassModelImpl(this); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java new file mode 100644 index 0000000..e297a23 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseStatusModelImpl; +import com.casic.dcms.mvp.view.ICaseStatusView; + +public class CaseStatusPresenterImpl extends BasePresenter implements ICaseStatusPresenter, CaseStatusModelImpl.OnGetCaseStatusListener { + + private ICaseStatusView view; + private CaseStatusModelImpl actionModel; + + public CaseStatusPresenterImpl(ICaseStatusView caseStatusView) { + this.view = caseStatusView; + actionModel = new CaseStatusModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CaseStatusBean resultBean) { + view.obtainCaseStatusData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java new file mode 100644 index 0000000..67be846 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java @@ -0,0 +1,8 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseListPresenter { + void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java new file mode 100644 index 0000000..19f2532 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseStatusPresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseListView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseListView.java new file mode 100644 index 0000000..430b7b7 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseListView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseListResultBean; + +public interface ICaseListView { + void showProgress(); + + void hideProgress(); + + void obtainCaseStatusData(CaseListResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseStatusView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseStatusView.java new file mode 100644 index 0000000..76384f7 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseStatusView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseStatusBean; + +public interface ICaseStatusView { + void obtainCaseStatusData(CaseStatusBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java new file mode 100644 index 0000000..2324230 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -0,0 +1,97 @@ +package com.casic.dcms.ui; + +import android.view.View; +import android.widget.GridView; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseListResultBean; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.lang.reflect.Type; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseDetailActivity extends BaseActivity implements View.OnClickListener { + + private static final String TAG = "CaseDetailActivity"; + @BindView(R.id.caseTopLayout) + QMUITopBarLayout caseTopLayout; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseStatusView) + TextView caseStatusView; + @BindView(R.id.caseTypeView) + TextView caseTypeView; + @BindView(R.id.caseLargeTypeView) + TextView caseLargeTypeView; + @BindView(R.id.caseSmallTypeView) + TextView caseSmallTypeView; + @BindView(R.id.caseCommunityView) + TextView caseCommunityView; + @BindView(R.id.casePlaceView) + TextView casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.casePicGridView) + GridView casePicGridView; + + @Override + public int initLayoutView() { + return R.layout.activity_case_detail; + } + + @Override + protected void setupTopBarLayout() { + caseTopLayout.setTitle("案卷详情").setTextColor(ContextCompat.getColor(this, R.color.white)); + caseTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + caseTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + Gson gson = new Gson(); + String rowsBeanJson = getIntent().getStringExtra("rowsBeanJson"); + Type type = new TypeToken() { + }.getType(); + CaseListResultBean.DataBean.RowsBean rowsBean = gson.fromJson(rowsBeanJson, type); + assert rowsBean != null; + caseNumberView.setText(rowsBean.getCaseid()); + caseStatusView.setText(rowsBean.getCaseStateName()); + caseTypeView.setText(rowsBean.getEorcName()); + caseLargeTypeView.setText(rowsBean.getCasetypeName()); + caseSmallTypeView.setText(rowsBean.getCasetypeDetailName()); +// caseCommunityView.setText(); +// casePlaceView.setText(); + caseSituationView.setText(rowsBean.getDescription()); + } + + @Override + public void initEvent() { + + } + + @OnClick({R.id.caseAudioView, R.id.handleRecordLayout}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseAudioView: + + break; + case R.id.handleRecordLayout: + + break; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java new file mode 100644 index 0000000..1a68fb5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java @@ -0,0 +1,74 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.view.View; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.CaseListResultAdapter; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseListResultBean; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.lang.reflect.Type; +import java.util.List; + +import butterknife.BindView; + +public class CaseListResultActivity extends BaseActivity { + + @BindView(R.id.caseTopLayout) + QMUITopBarLayout caseTopLayout; + @BindView(R.id.caseRecyclerView) + RecyclerView caseRecyclerView; + + @Override + public int initLayoutView() { + return R.layout.activity_case_list; + } + + @Override + protected void setupTopBarLayout() { + caseTopLayout.setTitle("查询结果").setTextColor(ContextCompat.getColor(this, R.color.white)); + caseTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + caseTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + Gson gson = new Gson(); + String resultBeanJson = getIntent().getStringExtra("resultBeanJson"); + Type type = new TypeToken() { + }.getType(); + CaseListResultBean resultBean = gson.fromJson(resultBeanJson, type); + List dataRows = resultBean.getData().getRows(); + CaseListResultAdapter adapter = new CaseListResultAdapter(this, dataRows); + caseRecyclerView.setLayoutManager(new LinearLayoutManager(this)); + caseRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL)); + caseRecyclerView.setAdapter(adapter); + adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + Intent intent = new Intent(CaseListResultActivity.this, CaseDetailActivity.class); + intent.putExtra("rowsBeanJson", gson.toJson(dataRows.get(position))); + startActivity(intent); + } + }); + } + + @Override + public void initEvent() { + + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java new file mode 100644 index 0000000..da9b919 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java @@ -0,0 +1,375 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseListPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseStatusPresenterImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseListView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.ICaseStatusView; +import com.casic.dcms.utils.ColorHelper; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.TimeOrDateUtil; +import com.casic.dcms.utils.ToastHelper; +import com.google.gson.Gson; +import com.jzxiang.pickerview.TimePickerDialog; +import com.jzxiang.pickerview.data.Type; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseSearchActivity extends BaseActivity implements View.OnClickListener, + ICaseLargeClassView, ICaseSmallClassView, ICaseStatusView, ICaseListView { + + private static final String TAG = "CaseSearchActivity"; + private Context context = this; + @BindView(R.id.caseTopLayout) + QMUITopBarLayout caseTopLayout; + @BindView(R.id.caseClassView) + TextView caseClassView; + @BindView(R.id.caseLargeClassView) + TextView caseLargeClassView; + @BindView(R.id.caseSmallClassView) + TextView caseSmallClassView; + @BindView(R.id.caseStatusView) + TextView caseStatusView; + @BindView(R.id.startTimeView) + TextView startTimeView; + @BindView(R.id.endTimeView) + TextView endTimeView; + @BindView(R.id.searchButton) + QMUIRoundButton searchButton; + @BindView(R.id.resetButton) + QMUIRoundButton resetButton; + + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private List largeClassBeans; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private List smallClassBeans; + private CaseStatusPresenterImpl caseStatusPresenter; + private CaseListPresenterImpl caseListPresenter; + private QMUITipDialog loadingDialog; + private String eorc; + private String typeDetailCode; + private String typeCode; + private Gson gson; + + @Override + public int initLayoutView() { + return R.layout.activity_case_search; + } + + @Override + protected void setupTopBarLayout() { + caseTopLayout.setTitle("案卷查询").setTextColor(ContextCompat.getColor(this, R.color.white)); + caseTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + caseTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseStatusPresenter = new CaseStatusPresenterImpl(this); + caseListPresenter = new CaseListPresenterImpl(this); + } + + @Override + public void initEvent() { + searchButton.setChangeAlphaWhenPress(true); + resetButton.setChangeAlphaWhenPress(true); + loadingDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("查询中,请稍后") + .create(); + gson = new Gson(); + } + + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseStatusLayout, + R.id.selectStartDateView, R.id.selectEndDateView, R.id.searchButton, R.id.resetButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseClassLayout: + new QMUIBottomSheet.BottomListSheetBuilder(this) + .setTitle("案卷类型") + .addItem("事件") + .addItem("部件") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + caseClassView.setText(tag); + caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷大类 + String eorc = String.valueOf(position + 1); + caseLargeClassPresenter.onReadyRetrofitRequest(eorc); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseLargeClassView.setText(tag); + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + eorc = dataBean.getEorc(); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(eorc, typeId); + typeCode = dataBean.getTypeCode(); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseSmallClassView.setText(tag); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + typeDetailCode = smallClassBeans.get(position).getTypeDetailCode(); + } + }).build().show(); + } + } + break; + case R.id.caseStatusLayout: + caseStatusPresenter.onReadyRetrofitRequest(); + break; + case R.id.selectStartDateView: + new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis()) + .setType(Type.YEAR_MONTH_DAY) + .setCallBack((timePickerView, millSeconds) -> { + String date = TimeOrDateUtil.rTimestampToDate(millSeconds); + + startTimeView.setText(date); + startTimeView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + }).build().show(getSupportFragmentManager(), "year_month_day"); + break; + case R.id.selectEndDateView: + new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis()) + .setType(Type.YEAR_MONTH_DAY) + .setCallBack((timePickerView, millSeconds) -> { + String date = TimeOrDateUtil.rTimestampToDate(millSeconds); + + endTimeView.setText(date); + endTimeView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + }).build().show(getSupportFragmentManager(), "year_month_day"); + break; + case R.id.searchButton: + startSearchCaseList(); + break; + case R.id.resetButton: + new QMUIDialog.MessageDialogBuilder(context) + .setTitle("重置") + .setMessage("确定要重置填写的资料吗?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + + caseClassView.setText(""); + caseLargeClassView.setText(""); + caseSmallClassView.setText(""); + caseStatusView.setText(""); + startTimeView.setText(""); + endTimeView.setText(""); + } + }).create().show(); + break; + default: + break; + } + } + + /** + * 参数校验 + */ + private void startSearchCaseList() { + if (TextUtils.isEmpty(typeCode)) { + if (TextUtils.isEmpty(typeDetailCode)) { + ToastHelper.showToast("案卷大类还未填写,请检查", ToastHelper.ERROR); + return; + } + } + if (TextUtils.isEmpty(typeDetailCode)) { + if (TextUtils.isEmpty(typeDetailCode)) { + ToastHelper.showToast("案卷小类还未填写,请检查", ToastHelper.ERROR); + return; + } + } + String caseStatus = caseStatusView.getText().toString(); + if (TextUtils.isEmpty(caseStatus)) { + ToastHelper.showToast("处理状态还未填写,请检查", ToastHelper.ERROR); + return; + } + String startTime = startTimeView.getText().toString(); + if (TextUtils.isEmpty(startTime)) { + ToastHelper.showToast("起始时间还未填写,请检查", ToastHelper.ERROR); + return; + } + String endTime = endTimeView.getText().toString(); + if (TextUtils.isEmpty(endTime)) { + ToastHelper.showToast("结束时间还未填写,请检查", ToastHelper.ERROR); + return; + } + if (TextUtils.isEmpty(eorc)) { + ToastHelper.showToast("案卷大类还未填写,请检查", ToastHelper.ERROR); + return; + } + caseListPresenter.onReadyRetrofitRequest(typeCode, typeDetailCode, caseStatus, startTime, endTime, eorc, + 20, 0); + } + + @Override + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeClassView.setText("无小类"); + } else { + caseLargeClassView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 + } + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + + caseSmallClassView.setText("请选择"); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } + } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallClassView.setText("无小类"); + } else { + caseSmallClassView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 + } + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } + } + + @Override + public void obtainCaseStatusData(CaseStatusBean resultBean) { +// Log.d(TAG, "obtainCaseStatusData: " + new Gson().toJson(resultBean)); + if (resultBean.isSuccess()) { + List beans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处理状态"); + for (CaseStatusBean.DataBean dataBean : beans) { + 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(); + + caseStatusView.setText(tag); + caseStatusView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + } + }).build().show(); + } + } + + @Override + public void showProgress() { + loadingDialog.show(); + } + + @Override + public void obtainCaseStatusData(CaseListResultBean resultBean) { +// Log.d(TAG, "obtainCaseStatusData: " + new Gson().toJson(resultBean)); + if (resultBean.isSuccess()) { + Intent intent = new Intent(this, CaseListResultActivity.class); + intent.putExtra("resultBeanJson", gson.toJson(resultBean)); + startActivity(intent); + } + } + + @Override + public void hideProgress() { + loadingDialog.hide(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseStatusPresenter != null) { + caseStatusPresenter.disposeRetrofitRequest(); + } + if (caseListPresenter != null) { + caseListPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 549b16a..c3436a2 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -583,4 +583,18 @@ public void hideProgress() { submitDialog.hide(); } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseSubmitPresenter != null) { + caseSubmitPresenter.disposeRetrofitRequest(); + } + } } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index a21d874..a6c35b4 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -16,6 +16,7 @@ import com.casic.dcms.bean.UserBean; import com.casic.dcms.mvp.presenter.UserDataPresenterImpl; import com.casic.dcms.mvp.view.IUserDataView; +import com.casic.dcms.ui.CaseSearchActivity; import com.casic.dcms.ui.CaseUploadActivity; import com.casic.dcms.ui.DataAnalysisActivity; import com.casic.dcms.utils.StringHelper; @@ -102,7 +103,8 @@ ToastHelper.showToast("在岗人员", ToastHelper.INFO); break; case 10: - ToastHelper.showToast("案卷查询", ToastHelper.INFO); + intent.setClass(context, CaseSearchActivity.class); + startActivity(intent); break; case 11: ToastHelper.showToast("地图查看", ToastHelper.INFO); diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index 6b22eaf..11d462b 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -1,7 +1,9 @@ package com.casic.dcms.utils.retrofit; import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseListResultBean; import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.bean.CaseStatusBean; import com.casic.dcms.bean.ChangePasswordResultBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; @@ -116,4 +118,24 @@ Observable obtainEventSource(@Header("token") String token, @Field("begTime") String begTime, @Field("deptid") String endTime); + + /** + * 获取案件状态 + */ + @GET("/dict/code/caseState") + Observable getCaseStatus(@Header("token") String token); + + /** + * 获取案件状态 + */ + @GET("/case/queryListPage") + Observable obtainCaseList(@Header("token") String token, + @Query("casetypeCode") String casetypeCode, + @Query("casetypeDetailCode") String casetypeDetailCode, + @Query("caseState") String caseState, + @Query("createTimeBegin") String createTimeBegin, + @Query("createTimeEnd") String createTimeEnd, + @Query("eorc") String eorc, + @Query("limit") int limit, + @Query("offset") int offset); } diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index e20f305..c7d65a9 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -3,7 +3,9 @@ import android.util.Log; import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseListResultBean; import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.bean.CaseStatusBean; import com.casic.dcms.bean.ChangePasswordResultBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; @@ -166,4 +168,25 @@ RetrofitService service = retrofit.create(RetrofitService.class); return service.obtainEventSource(TokenHelper.getToken(), begTime, endTime); } + + /** + * 获取案件状态 + */ + public static Observable getCaseStatusResult() { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.getCaseStatus(TokenHelper.getToken()); + } + + /** + * 根据时间查询案卷列表 + */ + public static Observable getCaseListResult(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, + int limit, int offset) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainCaseList(TokenHelper.getToken(), casetypeCode, + casetypeDetailCode, caseState, registerTimeBegin, registerTimeEnd, eorc, limit, offset); + } } diff --git a/app/src/main/res/drawable/ic_calendar.xml b/app/src/main/res/drawable/ic_calendar.xml new file mode 100644 index 0000000..cf9e005 --- /dev/null +++ b/app/src/main/res/drawable/ic_calendar.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d5c56ab..deeff33 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -44,6 +44,9 @@ + + + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public CaseListResultAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_case_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView leftTextView; + private TextView titleView; + private TextView contentView; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + leftTextView = itemView.findViewById(R.id.leftTextView); + titleView = itemView.findViewById(R.id.titleView); + contentView = itemView.findViewById(R.id.contentView); + } + + void bindView(CaseListResultBean.DataBean.RowsBean rowsBean) { + String eorcName = rowsBean.getEorcName(); + leftTextView.setText(eorcName.substring(0, 1)); + titleView.setText(rowsBean.getCasetypeName()); + contentView.setText(rowsBean.getCasetypeDetailName()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java new file mode 100644 index 0000000..3ac2b7b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java @@ -0,0 +1,342 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseListResultBean { + + /** + * code : 200 + * data : {"rows":[{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}],"total":3} + * message : 请求成功 + * success : true + */ + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + /** + * rows : [{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}] + * total : 3 + */ + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * isPostpone : 0 + * description : 音频测试 + * createUserName : 超级管理员 + * source : 11 + * eorcName : 事件 + * casetypeDetailName : 违规高空悬吊作业 + * remainingTime : 超时729小时6分钟 + * casetypeName : 其他事件 + * processId : 2680008 + * caseState : 0 + * id : 1372735305680994306 + * reportSupervisorId : + * fieldintro : 音频测试 + * lat : 27.75386000913368 + * caseStateName : 待核实 + * lng : 116.07951602267566 + * isOvertime : 1 + * casetypeDetailCode : 01 + * onedeptid : + * eorc : 1 + * caseid : 202103190001 + * casetypeCode : 06 + * createUser : 1 + * nodeLimittime : 2021-03-19 11:23:03 + * sourceName : 热线电话 + * reportTime : 2021-03-19 10:22:56 + */ + + private int isPostpone; + private String description; + private String createUserName; + private int source; + private String eorcName; + private String casetypeDetailName; + private String remainingTime; + private String casetypeName; + private String processId; + private int caseState; + private String id; + private String reportSupervisorId; + private String fieldintro; + private String lat; + private String caseStateName; + private String lng; + private String isOvertime; + private String casetypeDetailCode; + private String onedeptid; + private String eorc; + private String caseid; + private String casetypeCode; + private String createUser; + private String nodeLimittime; + private String sourceName; + private String reportTime; + + public int getIsPostpone() { + return isPostpone; + } + + public void setIsPostpone(int isPostpone) { + this.isPostpone = isPostpone; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public int getSource() { + return source; + } + + public void setSource(int source) { + this.source = source; + } + + public String getEorcName() { + return eorcName; + } + + public void setEorcName(String eorcName) { + this.eorcName = eorcName; + } + + public String getCasetypeDetailName() { + return casetypeDetailName; + } + + public void setCasetypeDetailName(String casetypeDetailName) { + this.casetypeDetailName = casetypeDetailName; + } + + public String getRemainingTime() { + return remainingTime; + } + + public void setRemainingTime(String remainingTime) { + this.remainingTime = remainingTime; + } + + public String getCasetypeName() { + return casetypeName; + } + + public void setCasetypeName(String casetypeName) { + this.casetypeName = casetypeName; + } + + public String getProcessId() { + return processId; + } + + public void setProcessId(String processId) { + this.processId = processId; + } + + public int getCaseState() { + return caseState; + } + + public void setCaseState(int caseState) { + this.caseState = caseState; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getReportSupervisorId() { + return reportSupervisorId; + } + + public void setReportSupervisorId(String reportSupervisorId) { + this.reportSupervisorId = reportSupervisorId; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getLat() { + return lat; + } + + public void setLat(String lat) { + this.lat = lat; + } + + public String getCaseStateName() { + return caseStateName; + } + + public void setCaseStateName(String caseStateName) { + this.caseStateName = caseStateName; + } + + public String getLng() { + return lng; + } + + public void setLng(String lng) { + this.lng = lng; + } + + public String getIsOvertime() { + return isOvertime; + } + + public void setIsOvertime(String isOvertime) { + this.isOvertime = isOvertime; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getOnedeptid() { + return onedeptid; + } + + public void setOnedeptid(String onedeptid) { + this.onedeptid = onedeptid; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCaseid() { + return caseid; + } + + public void setCaseid(String caseid) { + this.caseid = caseid; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getNodeLimittime() { + return nodeLimittime; + } + + public void setNodeLimittime(String nodeLimittime) { + this.nodeLimittime = nodeLimittime; + } + + public String getSourceName() { + return sourceName; + } + + public void setSourceName(String sourceName) { + this.sourceName = sourceName; + } + + public String getReportTime() { + return reportTime; + } + + public void setReportTime(String reportTime) { + this.reportTime = reportTime; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java new file mode 100644 index 0000000..6918d00 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java @@ -0,0 +1,86 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseStatusBean { + + /** + * code : 200.0 + * data : [{"name":"待核实","id":"92","value":"0"},{"name":"核实无效","id":"93","value":"1"},{"name":"待立案","id":"94","value":"10"},{"name":"预立案","id":"95","value":"11"},{"name":"待派发","id":"96","value":"20"},{"name":"挂起","id":"98","value":"22"},{"name":"预派发","id":"99","value":"23"},{"name":"待处理","id":"100","value":"30"},{"name":"二级处理审核","id":"101","value":"31"},{"name":"调整批示","id":"102","value":"36"},{"name":"部门调整批示","id":"103","value":"37"},{"name":"处置通处理","id":"104","value":"39"},{"name":"待调整","id":"105","value":"40"},{"name":"授权审核","id":"106","value":"43"},{"name":"部门授权审核","id":"107","value":"45"},{"name":"处理审核","id":"108","value":"46"},{"name":"待派发核查","id":"109","value":"50"},{"name":"现场核查","id":"110","value":"51"},{"name":"核查通过","id":"112","value":"60"},{"name":"核查未通过","id":"113","value":"61"},{"name":"快速上报","id":"114","value":"62"},{"name":"待结案","id":"115","value":"63"},{"name":"正常结案","id":"116","value":"70"},{"name":"案件作废","id":"117","value":"75"},{"name":"不予立案","id":"118","value":"76"},{"name":"销案","id":"119","value":"77"},{"name":"处理完成","id":"120","value":"301"},{"name":"申请调整","id":"121","value":"302"},{"name":"申请延期","id":"122","value":"303"},{"name":"申请缓办","id":"158","value":"304"},{"name":"待派发核实","id":"173","value":"3"}] + * message : 请求成功 + * success : true + */ + + private double code; + private String message; + private boolean success; + private List data; + + public double getCode() { + return code; + } + + public void setCode(double code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 待核实 + * id : 92 + * value : 0 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java new file mode 100644 index 0000000..0a939d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java @@ -0,0 +1,52 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseListModelImpl implements ICaseListModel { + + private OnGetCaseListListener listener; + + public CaseListModelImpl(OnGetCaseListListener caseListListener) { + this.listener = caseListListener; + } + + public interface OnGetCaseListListener { + void onSuccess(CaseListResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { + Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseState, + registerTimeBegin, registerTimeEnd, eorc, limit, offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseListResultBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java new file mode 100644 index 0000000..65e1c13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseStatusModelImpl implements ICaseStatusModel { + + private OnGetCaseStatusListener listener; + + public CaseStatusModelImpl(OnGetCaseStatusListener onGetCaseStatusListener) { + this.listener = onGetCaseStatusListener; + } + + public interface OnGetCaseStatusListener { + void onSuccess(CaseStatusBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCaseStatusResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseStatusBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java new file mode 100644 index 0000000..7968c67 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseListModel { + Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, + int limit, int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java new file mode 100644 index 0000000..6b21b13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseStatusModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java new file mode 100644 index 0000000..6cbb05d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java @@ -0,0 +1,41 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseListModelImpl; +import com.casic.dcms.mvp.view.ICaseListView; + +public class CaseListPresenterImpl extends BasePresenter implements ICaseListPresenter, CaseListModelImpl.OnGetCaseListListener { + + private ICaseListView view; + private CaseListModelImpl actionModel; + + public CaseListPresenterImpl(ICaseListView caseListView) { + this.view = caseListView; + actionModel = new CaseListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(casetypeCode, + casetypeDetailCode, caseState, registerTimeBegin, registerTimeEnd, eorc, limit, offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CaseListResultBean resultBean) { + view.hideProgress(); + view.obtainCaseStatusData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java index 4889877..376e430 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -10,8 +10,8 @@ private ICaseSmallClassView view; private CaseSmallClassModelImpl actionModel; - public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { - this.view = caseTypeView; + public CaseSmallClassPresenterImpl(ICaseSmallClassView smallClassView) { + this.view = smallClassView; actionModel = new CaseSmallClassModelImpl(this); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java new file mode 100644 index 0000000..e297a23 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseStatusModelImpl; +import com.casic.dcms.mvp.view.ICaseStatusView; + +public class CaseStatusPresenterImpl extends BasePresenter implements ICaseStatusPresenter, CaseStatusModelImpl.OnGetCaseStatusListener { + + private ICaseStatusView view; + private CaseStatusModelImpl actionModel; + + public CaseStatusPresenterImpl(ICaseStatusView caseStatusView) { + this.view = caseStatusView; + actionModel = new CaseStatusModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CaseStatusBean resultBean) { + view.obtainCaseStatusData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java new file mode 100644 index 0000000..67be846 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java @@ -0,0 +1,8 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseListPresenter { + void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java new file mode 100644 index 0000000..19f2532 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseStatusPresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseListView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseListView.java new file mode 100644 index 0000000..430b7b7 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseListView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseListResultBean; + +public interface ICaseListView { + void showProgress(); + + void hideProgress(); + + void obtainCaseStatusData(CaseListResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseStatusView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseStatusView.java new file mode 100644 index 0000000..76384f7 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseStatusView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseStatusBean; + +public interface ICaseStatusView { + void obtainCaseStatusData(CaseStatusBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java new file mode 100644 index 0000000..2324230 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -0,0 +1,97 @@ +package com.casic.dcms.ui; + +import android.view.View; +import android.widget.GridView; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseListResultBean; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.lang.reflect.Type; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseDetailActivity extends BaseActivity implements View.OnClickListener { + + private static final String TAG = "CaseDetailActivity"; + @BindView(R.id.caseTopLayout) + QMUITopBarLayout caseTopLayout; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseStatusView) + TextView caseStatusView; + @BindView(R.id.caseTypeView) + TextView caseTypeView; + @BindView(R.id.caseLargeTypeView) + TextView caseLargeTypeView; + @BindView(R.id.caseSmallTypeView) + TextView caseSmallTypeView; + @BindView(R.id.caseCommunityView) + TextView caseCommunityView; + @BindView(R.id.casePlaceView) + TextView casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.casePicGridView) + GridView casePicGridView; + + @Override + public int initLayoutView() { + return R.layout.activity_case_detail; + } + + @Override + protected void setupTopBarLayout() { + caseTopLayout.setTitle("案卷详情").setTextColor(ContextCompat.getColor(this, R.color.white)); + caseTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + caseTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + Gson gson = new Gson(); + String rowsBeanJson = getIntent().getStringExtra("rowsBeanJson"); + Type type = new TypeToken() { + }.getType(); + CaseListResultBean.DataBean.RowsBean rowsBean = gson.fromJson(rowsBeanJson, type); + assert rowsBean != null; + caseNumberView.setText(rowsBean.getCaseid()); + caseStatusView.setText(rowsBean.getCaseStateName()); + caseTypeView.setText(rowsBean.getEorcName()); + caseLargeTypeView.setText(rowsBean.getCasetypeName()); + caseSmallTypeView.setText(rowsBean.getCasetypeDetailName()); +// caseCommunityView.setText(); +// casePlaceView.setText(); + caseSituationView.setText(rowsBean.getDescription()); + } + + @Override + public void initEvent() { + + } + + @OnClick({R.id.caseAudioView, R.id.handleRecordLayout}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseAudioView: + + break; + case R.id.handleRecordLayout: + + break; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java new file mode 100644 index 0000000..1a68fb5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java @@ -0,0 +1,74 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.view.View; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.CaseListResultAdapter; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseListResultBean; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.lang.reflect.Type; +import java.util.List; + +import butterknife.BindView; + +public class CaseListResultActivity extends BaseActivity { + + @BindView(R.id.caseTopLayout) + QMUITopBarLayout caseTopLayout; + @BindView(R.id.caseRecyclerView) + RecyclerView caseRecyclerView; + + @Override + public int initLayoutView() { + return R.layout.activity_case_list; + } + + @Override + protected void setupTopBarLayout() { + caseTopLayout.setTitle("查询结果").setTextColor(ContextCompat.getColor(this, R.color.white)); + caseTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + caseTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + Gson gson = new Gson(); + String resultBeanJson = getIntent().getStringExtra("resultBeanJson"); + Type type = new TypeToken() { + }.getType(); + CaseListResultBean resultBean = gson.fromJson(resultBeanJson, type); + List dataRows = resultBean.getData().getRows(); + CaseListResultAdapter adapter = new CaseListResultAdapter(this, dataRows); + caseRecyclerView.setLayoutManager(new LinearLayoutManager(this)); + caseRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL)); + caseRecyclerView.setAdapter(adapter); + adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + Intent intent = new Intent(CaseListResultActivity.this, CaseDetailActivity.class); + intent.putExtra("rowsBeanJson", gson.toJson(dataRows.get(position))); + startActivity(intent); + } + }); + } + + @Override + public void initEvent() { + + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java new file mode 100644 index 0000000..da9b919 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java @@ -0,0 +1,375 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseListPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseStatusPresenterImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseListView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.ICaseStatusView; +import com.casic.dcms.utils.ColorHelper; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.TimeOrDateUtil; +import com.casic.dcms.utils.ToastHelper; +import com.google.gson.Gson; +import com.jzxiang.pickerview.TimePickerDialog; +import com.jzxiang.pickerview.data.Type; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseSearchActivity extends BaseActivity implements View.OnClickListener, + ICaseLargeClassView, ICaseSmallClassView, ICaseStatusView, ICaseListView { + + private static final String TAG = "CaseSearchActivity"; + private Context context = this; + @BindView(R.id.caseTopLayout) + QMUITopBarLayout caseTopLayout; + @BindView(R.id.caseClassView) + TextView caseClassView; + @BindView(R.id.caseLargeClassView) + TextView caseLargeClassView; + @BindView(R.id.caseSmallClassView) + TextView caseSmallClassView; + @BindView(R.id.caseStatusView) + TextView caseStatusView; + @BindView(R.id.startTimeView) + TextView startTimeView; + @BindView(R.id.endTimeView) + TextView endTimeView; + @BindView(R.id.searchButton) + QMUIRoundButton searchButton; + @BindView(R.id.resetButton) + QMUIRoundButton resetButton; + + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private List largeClassBeans; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private List smallClassBeans; + private CaseStatusPresenterImpl caseStatusPresenter; + private CaseListPresenterImpl caseListPresenter; + private QMUITipDialog loadingDialog; + private String eorc; + private String typeDetailCode; + private String typeCode; + private Gson gson; + + @Override + public int initLayoutView() { + return R.layout.activity_case_search; + } + + @Override + protected void setupTopBarLayout() { + caseTopLayout.setTitle("案卷查询").setTextColor(ContextCompat.getColor(this, R.color.white)); + caseTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + caseTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseStatusPresenter = new CaseStatusPresenterImpl(this); + caseListPresenter = new CaseListPresenterImpl(this); + } + + @Override + public void initEvent() { + searchButton.setChangeAlphaWhenPress(true); + resetButton.setChangeAlphaWhenPress(true); + loadingDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("查询中,请稍后") + .create(); + gson = new Gson(); + } + + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseStatusLayout, + R.id.selectStartDateView, R.id.selectEndDateView, R.id.searchButton, R.id.resetButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseClassLayout: + new QMUIBottomSheet.BottomListSheetBuilder(this) + .setTitle("案卷类型") + .addItem("事件") + .addItem("部件") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + caseClassView.setText(tag); + caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷大类 + String eorc = String.valueOf(position + 1); + caseLargeClassPresenter.onReadyRetrofitRequest(eorc); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseLargeClassView.setText(tag); + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + eorc = dataBean.getEorc(); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(eorc, typeId); + typeCode = dataBean.getTypeCode(); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseSmallClassView.setText(tag); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + typeDetailCode = smallClassBeans.get(position).getTypeDetailCode(); + } + }).build().show(); + } + } + break; + case R.id.caseStatusLayout: + caseStatusPresenter.onReadyRetrofitRequest(); + break; + case R.id.selectStartDateView: + new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis()) + .setType(Type.YEAR_MONTH_DAY) + .setCallBack((timePickerView, millSeconds) -> { + String date = TimeOrDateUtil.rTimestampToDate(millSeconds); + + startTimeView.setText(date); + startTimeView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + }).build().show(getSupportFragmentManager(), "year_month_day"); + break; + case R.id.selectEndDateView: + new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis()) + .setType(Type.YEAR_MONTH_DAY) + .setCallBack((timePickerView, millSeconds) -> { + String date = TimeOrDateUtil.rTimestampToDate(millSeconds); + + endTimeView.setText(date); + endTimeView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + }).build().show(getSupportFragmentManager(), "year_month_day"); + break; + case R.id.searchButton: + startSearchCaseList(); + break; + case R.id.resetButton: + new QMUIDialog.MessageDialogBuilder(context) + .setTitle("重置") + .setMessage("确定要重置填写的资料吗?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + + caseClassView.setText(""); + caseLargeClassView.setText(""); + caseSmallClassView.setText(""); + caseStatusView.setText(""); + startTimeView.setText(""); + endTimeView.setText(""); + } + }).create().show(); + break; + default: + break; + } + } + + /** + * 参数校验 + */ + private void startSearchCaseList() { + if (TextUtils.isEmpty(typeCode)) { + if (TextUtils.isEmpty(typeDetailCode)) { + ToastHelper.showToast("案卷大类还未填写,请检查", ToastHelper.ERROR); + return; + } + } + if (TextUtils.isEmpty(typeDetailCode)) { + if (TextUtils.isEmpty(typeDetailCode)) { + ToastHelper.showToast("案卷小类还未填写,请检查", ToastHelper.ERROR); + return; + } + } + String caseStatus = caseStatusView.getText().toString(); + if (TextUtils.isEmpty(caseStatus)) { + ToastHelper.showToast("处理状态还未填写,请检查", ToastHelper.ERROR); + return; + } + String startTime = startTimeView.getText().toString(); + if (TextUtils.isEmpty(startTime)) { + ToastHelper.showToast("起始时间还未填写,请检查", ToastHelper.ERROR); + return; + } + String endTime = endTimeView.getText().toString(); + if (TextUtils.isEmpty(endTime)) { + ToastHelper.showToast("结束时间还未填写,请检查", ToastHelper.ERROR); + return; + } + if (TextUtils.isEmpty(eorc)) { + ToastHelper.showToast("案卷大类还未填写,请检查", ToastHelper.ERROR); + return; + } + caseListPresenter.onReadyRetrofitRequest(typeCode, typeDetailCode, caseStatus, startTime, endTime, eorc, + 20, 0); + } + + @Override + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeClassView.setText("无小类"); + } else { + caseLargeClassView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 + } + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + + caseSmallClassView.setText("请选择"); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } + } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallClassView.setText("无小类"); + } else { + caseSmallClassView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 + } + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } + } + + @Override + public void obtainCaseStatusData(CaseStatusBean resultBean) { +// Log.d(TAG, "obtainCaseStatusData: " + new Gson().toJson(resultBean)); + if (resultBean.isSuccess()) { + List beans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处理状态"); + for (CaseStatusBean.DataBean dataBean : beans) { + 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(); + + caseStatusView.setText(tag); + caseStatusView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + } + }).build().show(); + } + } + + @Override + public void showProgress() { + loadingDialog.show(); + } + + @Override + public void obtainCaseStatusData(CaseListResultBean resultBean) { +// Log.d(TAG, "obtainCaseStatusData: " + new Gson().toJson(resultBean)); + if (resultBean.isSuccess()) { + Intent intent = new Intent(this, CaseListResultActivity.class); + intent.putExtra("resultBeanJson", gson.toJson(resultBean)); + startActivity(intent); + } + } + + @Override + public void hideProgress() { + loadingDialog.hide(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseStatusPresenter != null) { + caseStatusPresenter.disposeRetrofitRequest(); + } + if (caseListPresenter != null) { + caseListPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 549b16a..c3436a2 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -583,4 +583,18 @@ public void hideProgress() { submitDialog.hide(); } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseSubmitPresenter != null) { + caseSubmitPresenter.disposeRetrofitRequest(); + } + } } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index a21d874..a6c35b4 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -16,6 +16,7 @@ import com.casic.dcms.bean.UserBean; import com.casic.dcms.mvp.presenter.UserDataPresenterImpl; import com.casic.dcms.mvp.view.IUserDataView; +import com.casic.dcms.ui.CaseSearchActivity; import com.casic.dcms.ui.CaseUploadActivity; import com.casic.dcms.ui.DataAnalysisActivity; import com.casic.dcms.utils.StringHelper; @@ -102,7 +103,8 @@ ToastHelper.showToast("在岗人员", ToastHelper.INFO); break; case 10: - ToastHelper.showToast("案卷查询", ToastHelper.INFO); + intent.setClass(context, CaseSearchActivity.class); + startActivity(intent); break; case 11: ToastHelper.showToast("地图查看", ToastHelper.INFO); diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index 6b22eaf..11d462b 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -1,7 +1,9 @@ package com.casic.dcms.utils.retrofit; import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseListResultBean; import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.bean.CaseStatusBean; import com.casic.dcms.bean.ChangePasswordResultBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; @@ -116,4 +118,24 @@ Observable obtainEventSource(@Header("token") String token, @Field("begTime") String begTime, @Field("deptid") String endTime); + + /** + * 获取案件状态 + */ + @GET("/dict/code/caseState") + Observable getCaseStatus(@Header("token") String token); + + /** + * 获取案件状态 + */ + @GET("/case/queryListPage") + Observable obtainCaseList(@Header("token") String token, + @Query("casetypeCode") String casetypeCode, + @Query("casetypeDetailCode") String casetypeDetailCode, + @Query("caseState") String caseState, + @Query("createTimeBegin") String createTimeBegin, + @Query("createTimeEnd") String createTimeEnd, + @Query("eorc") String eorc, + @Query("limit") int limit, + @Query("offset") int offset); } diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index e20f305..c7d65a9 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -3,7 +3,9 @@ import android.util.Log; import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseListResultBean; import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.bean.CaseStatusBean; import com.casic.dcms.bean.ChangePasswordResultBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; @@ -166,4 +168,25 @@ RetrofitService service = retrofit.create(RetrofitService.class); return service.obtainEventSource(TokenHelper.getToken(), begTime, endTime); } + + /** + * 获取案件状态 + */ + public static Observable getCaseStatusResult() { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.getCaseStatus(TokenHelper.getToken()); + } + + /** + * 根据时间查询案卷列表 + */ + public static Observable getCaseListResult(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, + int limit, int offset) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainCaseList(TokenHelper.getToken(), casetypeCode, + casetypeDetailCode, caseState, registerTimeBegin, registerTimeEnd, eorc, limit, offset); + } } diff --git a/app/src/main/res/drawable/ic_calendar.xml b/app/src/main/res/drawable/ic_calendar.xml new file mode 100644 index 0000000..cf9e005 --- /dev/null +++ b/app/src/main/res/drawable/ic_calendar.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/layout/activity_case_detail.xml b/app/src/main/res/layout/activity_case_detail.xml new file mode 100644 index 0000000..4c967db --- /dev/null +++ b/app/src/main/res/layout/activity_case_detail.xml @@ -0,0 +1,273 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d5c56ab..deeff33 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -44,6 +44,9 @@ + + + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public CaseListResultAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_case_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView leftTextView; + private TextView titleView; + private TextView contentView; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + leftTextView = itemView.findViewById(R.id.leftTextView); + titleView = itemView.findViewById(R.id.titleView); + contentView = itemView.findViewById(R.id.contentView); + } + + void bindView(CaseListResultBean.DataBean.RowsBean rowsBean) { + String eorcName = rowsBean.getEorcName(); + leftTextView.setText(eorcName.substring(0, 1)); + titleView.setText(rowsBean.getCasetypeName()); + contentView.setText(rowsBean.getCasetypeDetailName()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java new file mode 100644 index 0000000..3ac2b7b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java @@ -0,0 +1,342 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseListResultBean { + + /** + * code : 200 + * data : {"rows":[{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}],"total":3} + * message : 请求成功 + * success : true + */ + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + /** + * rows : [{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}] + * total : 3 + */ + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * isPostpone : 0 + * description : 音频测试 + * createUserName : 超级管理员 + * source : 11 + * eorcName : 事件 + * casetypeDetailName : 违规高空悬吊作业 + * remainingTime : 超时729小时6分钟 + * casetypeName : 其他事件 + * processId : 2680008 + * caseState : 0 + * id : 1372735305680994306 + * reportSupervisorId : + * fieldintro : 音频测试 + * lat : 27.75386000913368 + * caseStateName : 待核实 + * lng : 116.07951602267566 + * isOvertime : 1 + * casetypeDetailCode : 01 + * onedeptid : + * eorc : 1 + * caseid : 202103190001 + * casetypeCode : 06 + * createUser : 1 + * nodeLimittime : 2021-03-19 11:23:03 + * sourceName : 热线电话 + * reportTime : 2021-03-19 10:22:56 + */ + + private int isPostpone; + private String description; + private String createUserName; + private int source; + private String eorcName; + private String casetypeDetailName; + private String remainingTime; + private String casetypeName; + private String processId; + private int caseState; + private String id; + private String reportSupervisorId; + private String fieldintro; + private String lat; + private String caseStateName; + private String lng; + private String isOvertime; + private String casetypeDetailCode; + private String onedeptid; + private String eorc; + private String caseid; + private String casetypeCode; + private String createUser; + private String nodeLimittime; + private String sourceName; + private String reportTime; + + public int getIsPostpone() { + return isPostpone; + } + + public void setIsPostpone(int isPostpone) { + this.isPostpone = isPostpone; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public int getSource() { + return source; + } + + public void setSource(int source) { + this.source = source; + } + + public String getEorcName() { + return eorcName; + } + + public void setEorcName(String eorcName) { + this.eorcName = eorcName; + } + + public String getCasetypeDetailName() { + return casetypeDetailName; + } + + public void setCasetypeDetailName(String casetypeDetailName) { + this.casetypeDetailName = casetypeDetailName; + } + + public String getRemainingTime() { + return remainingTime; + } + + public void setRemainingTime(String remainingTime) { + this.remainingTime = remainingTime; + } + + public String getCasetypeName() { + return casetypeName; + } + + public void setCasetypeName(String casetypeName) { + this.casetypeName = casetypeName; + } + + public String getProcessId() { + return processId; + } + + public void setProcessId(String processId) { + this.processId = processId; + } + + public int getCaseState() { + return caseState; + } + + public void setCaseState(int caseState) { + this.caseState = caseState; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getReportSupervisorId() { + return reportSupervisorId; + } + + public void setReportSupervisorId(String reportSupervisorId) { + this.reportSupervisorId = reportSupervisorId; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getLat() { + return lat; + } + + public void setLat(String lat) { + this.lat = lat; + } + + public String getCaseStateName() { + return caseStateName; + } + + public void setCaseStateName(String caseStateName) { + this.caseStateName = caseStateName; + } + + public String getLng() { + return lng; + } + + public void setLng(String lng) { + this.lng = lng; + } + + public String getIsOvertime() { + return isOvertime; + } + + public void setIsOvertime(String isOvertime) { + this.isOvertime = isOvertime; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getOnedeptid() { + return onedeptid; + } + + public void setOnedeptid(String onedeptid) { + this.onedeptid = onedeptid; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCaseid() { + return caseid; + } + + public void setCaseid(String caseid) { + this.caseid = caseid; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getNodeLimittime() { + return nodeLimittime; + } + + public void setNodeLimittime(String nodeLimittime) { + this.nodeLimittime = nodeLimittime; + } + + public String getSourceName() { + return sourceName; + } + + public void setSourceName(String sourceName) { + this.sourceName = sourceName; + } + + public String getReportTime() { + return reportTime; + } + + public void setReportTime(String reportTime) { + this.reportTime = reportTime; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java new file mode 100644 index 0000000..6918d00 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java @@ -0,0 +1,86 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseStatusBean { + + /** + * code : 200.0 + * data : [{"name":"待核实","id":"92","value":"0"},{"name":"核实无效","id":"93","value":"1"},{"name":"待立案","id":"94","value":"10"},{"name":"预立案","id":"95","value":"11"},{"name":"待派发","id":"96","value":"20"},{"name":"挂起","id":"98","value":"22"},{"name":"预派发","id":"99","value":"23"},{"name":"待处理","id":"100","value":"30"},{"name":"二级处理审核","id":"101","value":"31"},{"name":"调整批示","id":"102","value":"36"},{"name":"部门调整批示","id":"103","value":"37"},{"name":"处置通处理","id":"104","value":"39"},{"name":"待调整","id":"105","value":"40"},{"name":"授权审核","id":"106","value":"43"},{"name":"部门授权审核","id":"107","value":"45"},{"name":"处理审核","id":"108","value":"46"},{"name":"待派发核查","id":"109","value":"50"},{"name":"现场核查","id":"110","value":"51"},{"name":"核查通过","id":"112","value":"60"},{"name":"核查未通过","id":"113","value":"61"},{"name":"快速上报","id":"114","value":"62"},{"name":"待结案","id":"115","value":"63"},{"name":"正常结案","id":"116","value":"70"},{"name":"案件作废","id":"117","value":"75"},{"name":"不予立案","id":"118","value":"76"},{"name":"销案","id":"119","value":"77"},{"name":"处理完成","id":"120","value":"301"},{"name":"申请调整","id":"121","value":"302"},{"name":"申请延期","id":"122","value":"303"},{"name":"申请缓办","id":"158","value":"304"},{"name":"待派发核实","id":"173","value":"3"}] + * message : 请求成功 + * success : true + */ + + private double code; + private String message; + private boolean success; + private List data; + + public double getCode() { + return code; + } + + public void setCode(double code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 待核实 + * id : 92 + * value : 0 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java new file mode 100644 index 0000000..0a939d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java @@ -0,0 +1,52 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseListModelImpl implements ICaseListModel { + + private OnGetCaseListListener listener; + + public CaseListModelImpl(OnGetCaseListListener caseListListener) { + this.listener = caseListListener; + } + + public interface OnGetCaseListListener { + void onSuccess(CaseListResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { + Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseState, + registerTimeBegin, registerTimeEnd, eorc, limit, offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseListResultBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java new file mode 100644 index 0000000..65e1c13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseStatusModelImpl implements ICaseStatusModel { + + private OnGetCaseStatusListener listener; + + public CaseStatusModelImpl(OnGetCaseStatusListener onGetCaseStatusListener) { + this.listener = onGetCaseStatusListener; + } + + public interface OnGetCaseStatusListener { + void onSuccess(CaseStatusBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCaseStatusResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseStatusBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java new file mode 100644 index 0000000..7968c67 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseListModel { + Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, + int limit, int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java new file mode 100644 index 0000000..6b21b13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseStatusModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java new file mode 100644 index 0000000..6cbb05d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java @@ -0,0 +1,41 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseListModelImpl; +import com.casic.dcms.mvp.view.ICaseListView; + +public class CaseListPresenterImpl extends BasePresenter implements ICaseListPresenter, CaseListModelImpl.OnGetCaseListListener { + + private ICaseListView view; + private CaseListModelImpl actionModel; + + public CaseListPresenterImpl(ICaseListView caseListView) { + this.view = caseListView; + actionModel = new CaseListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(casetypeCode, + casetypeDetailCode, caseState, registerTimeBegin, registerTimeEnd, eorc, limit, offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CaseListResultBean resultBean) { + view.hideProgress(); + view.obtainCaseStatusData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java index 4889877..376e430 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -10,8 +10,8 @@ private ICaseSmallClassView view; private CaseSmallClassModelImpl actionModel; - public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { - this.view = caseTypeView; + public CaseSmallClassPresenterImpl(ICaseSmallClassView smallClassView) { + this.view = smallClassView; actionModel = new CaseSmallClassModelImpl(this); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java new file mode 100644 index 0000000..e297a23 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseStatusModelImpl; +import com.casic.dcms.mvp.view.ICaseStatusView; + +public class CaseStatusPresenterImpl extends BasePresenter implements ICaseStatusPresenter, CaseStatusModelImpl.OnGetCaseStatusListener { + + private ICaseStatusView view; + private CaseStatusModelImpl actionModel; + + public CaseStatusPresenterImpl(ICaseStatusView caseStatusView) { + this.view = caseStatusView; + actionModel = new CaseStatusModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CaseStatusBean resultBean) { + view.obtainCaseStatusData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java new file mode 100644 index 0000000..67be846 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java @@ -0,0 +1,8 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseListPresenter { + void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java new file mode 100644 index 0000000..19f2532 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseStatusPresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseListView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseListView.java new file mode 100644 index 0000000..430b7b7 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseListView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseListResultBean; + +public interface ICaseListView { + void showProgress(); + + void hideProgress(); + + void obtainCaseStatusData(CaseListResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseStatusView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseStatusView.java new file mode 100644 index 0000000..76384f7 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseStatusView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseStatusBean; + +public interface ICaseStatusView { + void obtainCaseStatusData(CaseStatusBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java new file mode 100644 index 0000000..2324230 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -0,0 +1,97 @@ +package com.casic.dcms.ui; + +import android.view.View; +import android.widget.GridView; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseListResultBean; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.lang.reflect.Type; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseDetailActivity extends BaseActivity implements View.OnClickListener { + + private static final String TAG = "CaseDetailActivity"; + @BindView(R.id.caseTopLayout) + QMUITopBarLayout caseTopLayout; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseStatusView) + TextView caseStatusView; + @BindView(R.id.caseTypeView) + TextView caseTypeView; + @BindView(R.id.caseLargeTypeView) + TextView caseLargeTypeView; + @BindView(R.id.caseSmallTypeView) + TextView caseSmallTypeView; + @BindView(R.id.caseCommunityView) + TextView caseCommunityView; + @BindView(R.id.casePlaceView) + TextView casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.casePicGridView) + GridView casePicGridView; + + @Override + public int initLayoutView() { + return R.layout.activity_case_detail; + } + + @Override + protected void setupTopBarLayout() { + caseTopLayout.setTitle("案卷详情").setTextColor(ContextCompat.getColor(this, R.color.white)); + caseTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + caseTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + Gson gson = new Gson(); + String rowsBeanJson = getIntent().getStringExtra("rowsBeanJson"); + Type type = new TypeToken() { + }.getType(); + CaseListResultBean.DataBean.RowsBean rowsBean = gson.fromJson(rowsBeanJson, type); + assert rowsBean != null; + caseNumberView.setText(rowsBean.getCaseid()); + caseStatusView.setText(rowsBean.getCaseStateName()); + caseTypeView.setText(rowsBean.getEorcName()); + caseLargeTypeView.setText(rowsBean.getCasetypeName()); + caseSmallTypeView.setText(rowsBean.getCasetypeDetailName()); +// caseCommunityView.setText(); +// casePlaceView.setText(); + caseSituationView.setText(rowsBean.getDescription()); + } + + @Override + public void initEvent() { + + } + + @OnClick({R.id.caseAudioView, R.id.handleRecordLayout}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseAudioView: + + break; + case R.id.handleRecordLayout: + + break; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java new file mode 100644 index 0000000..1a68fb5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java @@ -0,0 +1,74 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.view.View; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.CaseListResultAdapter; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseListResultBean; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.lang.reflect.Type; +import java.util.List; + +import butterknife.BindView; + +public class CaseListResultActivity extends BaseActivity { + + @BindView(R.id.caseTopLayout) + QMUITopBarLayout caseTopLayout; + @BindView(R.id.caseRecyclerView) + RecyclerView caseRecyclerView; + + @Override + public int initLayoutView() { + return R.layout.activity_case_list; + } + + @Override + protected void setupTopBarLayout() { + caseTopLayout.setTitle("查询结果").setTextColor(ContextCompat.getColor(this, R.color.white)); + caseTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + caseTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + Gson gson = new Gson(); + String resultBeanJson = getIntent().getStringExtra("resultBeanJson"); + Type type = new TypeToken() { + }.getType(); + CaseListResultBean resultBean = gson.fromJson(resultBeanJson, type); + List dataRows = resultBean.getData().getRows(); + CaseListResultAdapter adapter = new CaseListResultAdapter(this, dataRows); + caseRecyclerView.setLayoutManager(new LinearLayoutManager(this)); + caseRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL)); + caseRecyclerView.setAdapter(adapter); + adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + Intent intent = new Intent(CaseListResultActivity.this, CaseDetailActivity.class); + intent.putExtra("rowsBeanJson", gson.toJson(dataRows.get(position))); + startActivity(intent); + } + }); + } + + @Override + public void initEvent() { + + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java new file mode 100644 index 0000000..da9b919 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java @@ -0,0 +1,375 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseListPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseStatusPresenterImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseListView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.ICaseStatusView; +import com.casic.dcms.utils.ColorHelper; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.TimeOrDateUtil; +import com.casic.dcms.utils.ToastHelper; +import com.google.gson.Gson; +import com.jzxiang.pickerview.TimePickerDialog; +import com.jzxiang.pickerview.data.Type; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseSearchActivity extends BaseActivity implements View.OnClickListener, + ICaseLargeClassView, ICaseSmallClassView, ICaseStatusView, ICaseListView { + + private static final String TAG = "CaseSearchActivity"; + private Context context = this; + @BindView(R.id.caseTopLayout) + QMUITopBarLayout caseTopLayout; + @BindView(R.id.caseClassView) + TextView caseClassView; + @BindView(R.id.caseLargeClassView) + TextView caseLargeClassView; + @BindView(R.id.caseSmallClassView) + TextView caseSmallClassView; + @BindView(R.id.caseStatusView) + TextView caseStatusView; + @BindView(R.id.startTimeView) + TextView startTimeView; + @BindView(R.id.endTimeView) + TextView endTimeView; + @BindView(R.id.searchButton) + QMUIRoundButton searchButton; + @BindView(R.id.resetButton) + QMUIRoundButton resetButton; + + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private List largeClassBeans; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private List smallClassBeans; + private CaseStatusPresenterImpl caseStatusPresenter; + private CaseListPresenterImpl caseListPresenter; + private QMUITipDialog loadingDialog; + private String eorc; + private String typeDetailCode; + private String typeCode; + private Gson gson; + + @Override + public int initLayoutView() { + return R.layout.activity_case_search; + } + + @Override + protected void setupTopBarLayout() { + caseTopLayout.setTitle("案卷查询").setTextColor(ContextCompat.getColor(this, R.color.white)); + caseTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + caseTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseStatusPresenter = new CaseStatusPresenterImpl(this); + caseListPresenter = new CaseListPresenterImpl(this); + } + + @Override + public void initEvent() { + searchButton.setChangeAlphaWhenPress(true); + resetButton.setChangeAlphaWhenPress(true); + loadingDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("查询中,请稍后") + .create(); + gson = new Gson(); + } + + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseStatusLayout, + R.id.selectStartDateView, R.id.selectEndDateView, R.id.searchButton, R.id.resetButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseClassLayout: + new QMUIBottomSheet.BottomListSheetBuilder(this) + .setTitle("案卷类型") + .addItem("事件") + .addItem("部件") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + caseClassView.setText(tag); + caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷大类 + String eorc = String.valueOf(position + 1); + caseLargeClassPresenter.onReadyRetrofitRequest(eorc); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseLargeClassView.setText(tag); + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + eorc = dataBean.getEorc(); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(eorc, typeId); + typeCode = dataBean.getTypeCode(); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseSmallClassView.setText(tag); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + typeDetailCode = smallClassBeans.get(position).getTypeDetailCode(); + } + }).build().show(); + } + } + break; + case R.id.caseStatusLayout: + caseStatusPresenter.onReadyRetrofitRequest(); + break; + case R.id.selectStartDateView: + new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis()) + .setType(Type.YEAR_MONTH_DAY) + .setCallBack((timePickerView, millSeconds) -> { + String date = TimeOrDateUtil.rTimestampToDate(millSeconds); + + startTimeView.setText(date); + startTimeView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + }).build().show(getSupportFragmentManager(), "year_month_day"); + break; + case R.id.selectEndDateView: + new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis()) + .setType(Type.YEAR_MONTH_DAY) + .setCallBack((timePickerView, millSeconds) -> { + String date = TimeOrDateUtil.rTimestampToDate(millSeconds); + + endTimeView.setText(date); + endTimeView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + }).build().show(getSupportFragmentManager(), "year_month_day"); + break; + case R.id.searchButton: + startSearchCaseList(); + break; + case R.id.resetButton: + new QMUIDialog.MessageDialogBuilder(context) + .setTitle("重置") + .setMessage("确定要重置填写的资料吗?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + + caseClassView.setText(""); + caseLargeClassView.setText(""); + caseSmallClassView.setText(""); + caseStatusView.setText(""); + startTimeView.setText(""); + endTimeView.setText(""); + } + }).create().show(); + break; + default: + break; + } + } + + /** + * 参数校验 + */ + private void startSearchCaseList() { + if (TextUtils.isEmpty(typeCode)) { + if (TextUtils.isEmpty(typeDetailCode)) { + ToastHelper.showToast("案卷大类还未填写,请检查", ToastHelper.ERROR); + return; + } + } + if (TextUtils.isEmpty(typeDetailCode)) { + if (TextUtils.isEmpty(typeDetailCode)) { + ToastHelper.showToast("案卷小类还未填写,请检查", ToastHelper.ERROR); + return; + } + } + String caseStatus = caseStatusView.getText().toString(); + if (TextUtils.isEmpty(caseStatus)) { + ToastHelper.showToast("处理状态还未填写,请检查", ToastHelper.ERROR); + return; + } + String startTime = startTimeView.getText().toString(); + if (TextUtils.isEmpty(startTime)) { + ToastHelper.showToast("起始时间还未填写,请检查", ToastHelper.ERROR); + return; + } + String endTime = endTimeView.getText().toString(); + if (TextUtils.isEmpty(endTime)) { + ToastHelper.showToast("结束时间还未填写,请检查", ToastHelper.ERROR); + return; + } + if (TextUtils.isEmpty(eorc)) { + ToastHelper.showToast("案卷大类还未填写,请检查", ToastHelper.ERROR); + return; + } + caseListPresenter.onReadyRetrofitRequest(typeCode, typeDetailCode, caseStatus, startTime, endTime, eorc, + 20, 0); + } + + @Override + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeClassView.setText("无小类"); + } else { + caseLargeClassView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 + } + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + + caseSmallClassView.setText("请选择"); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } + } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallClassView.setText("无小类"); + } else { + caseSmallClassView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 + } + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } + } + + @Override + public void obtainCaseStatusData(CaseStatusBean resultBean) { +// Log.d(TAG, "obtainCaseStatusData: " + new Gson().toJson(resultBean)); + if (resultBean.isSuccess()) { + List beans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处理状态"); + for (CaseStatusBean.DataBean dataBean : beans) { + 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(); + + caseStatusView.setText(tag); + caseStatusView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + } + }).build().show(); + } + } + + @Override + public void showProgress() { + loadingDialog.show(); + } + + @Override + public void obtainCaseStatusData(CaseListResultBean resultBean) { +// Log.d(TAG, "obtainCaseStatusData: " + new Gson().toJson(resultBean)); + if (resultBean.isSuccess()) { + Intent intent = new Intent(this, CaseListResultActivity.class); + intent.putExtra("resultBeanJson", gson.toJson(resultBean)); + startActivity(intent); + } + } + + @Override + public void hideProgress() { + loadingDialog.hide(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseStatusPresenter != null) { + caseStatusPresenter.disposeRetrofitRequest(); + } + if (caseListPresenter != null) { + caseListPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 549b16a..c3436a2 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -583,4 +583,18 @@ public void hideProgress() { submitDialog.hide(); } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseSubmitPresenter != null) { + caseSubmitPresenter.disposeRetrofitRequest(); + } + } } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index a21d874..a6c35b4 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -16,6 +16,7 @@ import com.casic.dcms.bean.UserBean; import com.casic.dcms.mvp.presenter.UserDataPresenterImpl; import com.casic.dcms.mvp.view.IUserDataView; +import com.casic.dcms.ui.CaseSearchActivity; import com.casic.dcms.ui.CaseUploadActivity; import com.casic.dcms.ui.DataAnalysisActivity; import com.casic.dcms.utils.StringHelper; @@ -102,7 +103,8 @@ ToastHelper.showToast("在岗人员", ToastHelper.INFO); break; case 10: - ToastHelper.showToast("案卷查询", ToastHelper.INFO); + intent.setClass(context, CaseSearchActivity.class); + startActivity(intent); break; case 11: ToastHelper.showToast("地图查看", ToastHelper.INFO); diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index 6b22eaf..11d462b 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -1,7 +1,9 @@ package com.casic.dcms.utils.retrofit; import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseListResultBean; import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.bean.CaseStatusBean; import com.casic.dcms.bean.ChangePasswordResultBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; @@ -116,4 +118,24 @@ Observable obtainEventSource(@Header("token") String token, @Field("begTime") String begTime, @Field("deptid") String endTime); + + /** + * 获取案件状态 + */ + @GET("/dict/code/caseState") + Observable getCaseStatus(@Header("token") String token); + + /** + * 获取案件状态 + */ + @GET("/case/queryListPage") + Observable obtainCaseList(@Header("token") String token, + @Query("casetypeCode") String casetypeCode, + @Query("casetypeDetailCode") String casetypeDetailCode, + @Query("caseState") String caseState, + @Query("createTimeBegin") String createTimeBegin, + @Query("createTimeEnd") String createTimeEnd, + @Query("eorc") String eorc, + @Query("limit") int limit, + @Query("offset") int offset); } diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index e20f305..c7d65a9 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -3,7 +3,9 @@ import android.util.Log; import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseListResultBean; import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.bean.CaseStatusBean; import com.casic.dcms.bean.ChangePasswordResultBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; @@ -166,4 +168,25 @@ RetrofitService service = retrofit.create(RetrofitService.class); return service.obtainEventSource(TokenHelper.getToken(), begTime, endTime); } + + /** + * 获取案件状态 + */ + public static Observable getCaseStatusResult() { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.getCaseStatus(TokenHelper.getToken()); + } + + /** + * 根据时间查询案卷列表 + */ + public static Observable getCaseListResult(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, + int limit, int offset) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainCaseList(TokenHelper.getToken(), casetypeCode, + casetypeDetailCode, caseState, registerTimeBegin, registerTimeEnd, eorc, limit, offset); + } } diff --git a/app/src/main/res/drawable/ic_calendar.xml b/app/src/main/res/drawable/ic_calendar.xml new file mode 100644 index 0000000..cf9e005 --- /dev/null +++ b/app/src/main/res/drawable/ic_calendar.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/layout/activity_case_detail.xml b/app/src/main/res/layout/activity_case_detail.xml new file mode 100644 index 0000000..4c967db --- /dev/null +++ b/app/src/main/res/layout/activity_case_detail.xml @@ -0,0 +1,273 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_case_list.xml b/app/src/main/res/layout/activity_case_list.xml new file mode 100644 index 0000000..1f30218 --- /dev/null +++ b/app/src/main/res/layout/activity_case_list.xml @@ -0,0 +1,19 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d5c56ab..deeff33 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -44,6 +44,9 @@ + + + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public CaseListResultAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_case_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView leftTextView; + private TextView titleView; + private TextView contentView; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + leftTextView = itemView.findViewById(R.id.leftTextView); + titleView = itemView.findViewById(R.id.titleView); + contentView = itemView.findViewById(R.id.contentView); + } + + void bindView(CaseListResultBean.DataBean.RowsBean rowsBean) { + String eorcName = rowsBean.getEorcName(); + leftTextView.setText(eorcName.substring(0, 1)); + titleView.setText(rowsBean.getCasetypeName()); + contentView.setText(rowsBean.getCasetypeDetailName()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java new file mode 100644 index 0000000..3ac2b7b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java @@ -0,0 +1,342 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseListResultBean { + + /** + * code : 200 + * data : {"rows":[{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}],"total":3} + * message : 请求成功 + * success : true + */ + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + /** + * rows : [{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}] + * total : 3 + */ + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * isPostpone : 0 + * description : 音频测试 + * createUserName : 超级管理员 + * source : 11 + * eorcName : 事件 + * casetypeDetailName : 违规高空悬吊作业 + * remainingTime : 超时729小时6分钟 + * casetypeName : 其他事件 + * processId : 2680008 + * caseState : 0 + * id : 1372735305680994306 + * reportSupervisorId : + * fieldintro : 音频测试 + * lat : 27.75386000913368 + * caseStateName : 待核实 + * lng : 116.07951602267566 + * isOvertime : 1 + * casetypeDetailCode : 01 + * onedeptid : + * eorc : 1 + * caseid : 202103190001 + * casetypeCode : 06 + * createUser : 1 + * nodeLimittime : 2021-03-19 11:23:03 + * sourceName : 热线电话 + * reportTime : 2021-03-19 10:22:56 + */ + + private int isPostpone; + private String description; + private String createUserName; + private int source; + private String eorcName; + private String casetypeDetailName; + private String remainingTime; + private String casetypeName; + private String processId; + private int caseState; + private String id; + private String reportSupervisorId; + private String fieldintro; + private String lat; + private String caseStateName; + private String lng; + private String isOvertime; + private String casetypeDetailCode; + private String onedeptid; + private String eorc; + private String caseid; + private String casetypeCode; + private String createUser; + private String nodeLimittime; + private String sourceName; + private String reportTime; + + public int getIsPostpone() { + return isPostpone; + } + + public void setIsPostpone(int isPostpone) { + this.isPostpone = isPostpone; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public int getSource() { + return source; + } + + public void setSource(int source) { + this.source = source; + } + + public String getEorcName() { + return eorcName; + } + + public void setEorcName(String eorcName) { + this.eorcName = eorcName; + } + + public String getCasetypeDetailName() { + return casetypeDetailName; + } + + public void setCasetypeDetailName(String casetypeDetailName) { + this.casetypeDetailName = casetypeDetailName; + } + + public String getRemainingTime() { + return remainingTime; + } + + public void setRemainingTime(String remainingTime) { + this.remainingTime = remainingTime; + } + + public String getCasetypeName() { + return casetypeName; + } + + public void setCasetypeName(String casetypeName) { + this.casetypeName = casetypeName; + } + + public String getProcessId() { + return processId; + } + + public void setProcessId(String processId) { + this.processId = processId; + } + + public int getCaseState() { + return caseState; + } + + public void setCaseState(int caseState) { + this.caseState = caseState; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getReportSupervisorId() { + return reportSupervisorId; + } + + public void setReportSupervisorId(String reportSupervisorId) { + this.reportSupervisorId = reportSupervisorId; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getLat() { + return lat; + } + + public void setLat(String lat) { + this.lat = lat; + } + + public String getCaseStateName() { + return caseStateName; + } + + public void setCaseStateName(String caseStateName) { + this.caseStateName = caseStateName; + } + + public String getLng() { + return lng; + } + + public void setLng(String lng) { + this.lng = lng; + } + + public String getIsOvertime() { + return isOvertime; + } + + public void setIsOvertime(String isOvertime) { + this.isOvertime = isOvertime; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getOnedeptid() { + return onedeptid; + } + + public void setOnedeptid(String onedeptid) { + this.onedeptid = onedeptid; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCaseid() { + return caseid; + } + + public void setCaseid(String caseid) { + this.caseid = caseid; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getNodeLimittime() { + return nodeLimittime; + } + + public void setNodeLimittime(String nodeLimittime) { + this.nodeLimittime = nodeLimittime; + } + + public String getSourceName() { + return sourceName; + } + + public void setSourceName(String sourceName) { + this.sourceName = sourceName; + } + + public String getReportTime() { + return reportTime; + } + + public void setReportTime(String reportTime) { + this.reportTime = reportTime; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java new file mode 100644 index 0000000..6918d00 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java @@ -0,0 +1,86 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseStatusBean { + + /** + * code : 200.0 + * data : [{"name":"待核实","id":"92","value":"0"},{"name":"核实无效","id":"93","value":"1"},{"name":"待立案","id":"94","value":"10"},{"name":"预立案","id":"95","value":"11"},{"name":"待派发","id":"96","value":"20"},{"name":"挂起","id":"98","value":"22"},{"name":"预派发","id":"99","value":"23"},{"name":"待处理","id":"100","value":"30"},{"name":"二级处理审核","id":"101","value":"31"},{"name":"调整批示","id":"102","value":"36"},{"name":"部门调整批示","id":"103","value":"37"},{"name":"处置通处理","id":"104","value":"39"},{"name":"待调整","id":"105","value":"40"},{"name":"授权审核","id":"106","value":"43"},{"name":"部门授权审核","id":"107","value":"45"},{"name":"处理审核","id":"108","value":"46"},{"name":"待派发核查","id":"109","value":"50"},{"name":"现场核查","id":"110","value":"51"},{"name":"核查通过","id":"112","value":"60"},{"name":"核查未通过","id":"113","value":"61"},{"name":"快速上报","id":"114","value":"62"},{"name":"待结案","id":"115","value":"63"},{"name":"正常结案","id":"116","value":"70"},{"name":"案件作废","id":"117","value":"75"},{"name":"不予立案","id":"118","value":"76"},{"name":"销案","id":"119","value":"77"},{"name":"处理完成","id":"120","value":"301"},{"name":"申请调整","id":"121","value":"302"},{"name":"申请延期","id":"122","value":"303"},{"name":"申请缓办","id":"158","value":"304"},{"name":"待派发核实","id":"173","value":"3"}] + * message : 请求成功 + * success : true + */ + + private double code; + private String message; + private boolean success; + private List data; + + public double getCode() { + return code; + } + + public void setCode(double code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 待核实 + * id : 92 + * value : 0 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java new file mode 100644 index 0000000..0a939d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java @@ -0,0 +1,52 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseListModelImpl implements ICaseListModel { + + private OnGetCaseListListener listener; + + public CaseListModelImpl(OnGetCaseListListener caseListListener) { + this.listener = caseListListener; + } + + public interface OnGetCaseListListener { + void onSuccess(CaseListResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { + Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseState, + registerTimeBegin, registerTimeEnd, eorc, limit, offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseListResultBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java new file mode 100644 index 0000000..65e1c13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseStatusModelImpl implements ICaseStatusModel { + + private OnGetCaseStatusListener listener; + + public CaseStatusModelImpl(OnGetCaseStatusListener onGetCaseStatusListener) { + this.listener = onGetCaseStatusListener; + } + + public interface OnGetCaseStatusListener { + void onSuccess(CaseStatusBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCaseStatusResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseStatusBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java new file mode 100644 index 0000000..7968c67 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseListModel { + Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, + int limit, int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java new file mode 100644 index 0000000..6b21b13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseStatusModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java new file mode 100644 index 0000000..6cbb05d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java @@ -0,0 +1,41 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseListModelImpl; +import com.casic.dcms.mvp.view.ICaseListView; + +public class CaseListPresenterImpl extends BasePresenter implements ICaseListPresenter, CaseListModelImpl.OnGetCaseListListener { + + private ICaseListView view; + private CaseListModelImpl actionModel; + + public CaseListPresenterImpl(ICaseListView caseListView) { + this.view = caseListView; + actionModel = new CaseListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(casetypeCode, + casetypeDetailCode, caseState, registerTimeBegin, registerTimeEnd, eorc, limit, offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CaseListResultBean resultBean) { + view.hideProgress(); + view.obtainCaseStatusData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java index 4889877..376e430 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -10,8 +10,8 @@ private ICaseSmallClassView view; private CaseSmallClassModelImpl actionModel; - public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { - this.view = caseTypeView; + public CaseSmallClassPresenterImpl(ICaseSmallClassView smallClassView) { + this.view = smallClassView; actionModel = new CaseSmallClassModelImpl(this); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java new file mode 100644 index 0000000..e297a23 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseStatusModelImpl; +import com.casic.dcms.mvp.view.ICaseStatusView; + +public class CaseStatusPresenterImpl extends BasePresenter implements ICaseStatusPresenter, CaseStatusModelImpl.OnGetCaseStatusListener { + + private ICaseStatusView view; + private CaseStatusModelImpl actionModel; + + public CaseStatusPresenterImpl(ICaseStatusView caseStatusView) { + this.view = caseStatusView; + actionModel = new CaseStatusModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CaseStatusBean resultBean) { + view.obtainCaseStatusData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java new file mode 100644 index 0000000..67be846 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java @@ -0,0 +1,8 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseListPresenter { + void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java new file mode 100644 index 0000000..19f2532 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseStatusPresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseListView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseListView.java new file mode 100644 index 0000000..430b7b7 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseListView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseListResultBean; + +public interface ICaseListView { + void showProgress(); + + void hideProgress(); + + void obtainCaseStatusData(CaseListResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseStatusView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseStatusView.java new file mode 100644 index 0000000..76384f7 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseStatusView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseStatusBean; + +public interface ICaseStatusView { + void obtainCaseStatusData(CaseStatusBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java new file mode 100644 index 0000000..2324230 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -0,0 +1,97 @@ +package com.casic.dcms.ui; + +import android.view.View; +import android.widget.GridView; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseListResultBean; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.lang.reflect.Type; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseDetailActivity extends BaseActivity implements View.OnClickListener { + + private static final String TAG = "CaseDetailActivity"; + @BindView(R.id.caseTopLayout) + QMUITopBarLayout caseTopLayout; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseStatusView) + TextView caseStatusView; + @BindView(R.id.caseTypeView) + TextView caseTypeView; + @BindView(R.id.caseLargeTypeView) + TextView caseLargeTypeView; + @BindView(R.id.caseSmallTypeView) + TextView caseSmallTypeView; + @BindView(R.id.caseCommunityView) + TextView caseCommunityView; + @BindView(R.id.casePlaceView) + TextView casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.casePicGridView) + GridView casePicGridView; + + @Override + public int initLayoutView() { + return R.layout.activity_case_detail; + } + + @Override + protected void setupTopBarLayout() { + caseTopLayout.setTitle("案卷详情").setTextColor(ContextCompat.getColor(this, R.color.white)); + caseTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + caseTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + Gson gson = new Gson(); + String rowsBeanJson = getIntent().getStringExtra("rowsBeanJson"); + Type type = new TypeToken() { + }.getType(); + CaseListResultBean.DataBean.RowsBean rowsBean = gson.fromJson(rowsBeanJson, type); + assert rowsBean != null; + caseNumberView.setText(rowsBean.getCaseid()); + caseStatusView.setText(rowsBean.getCaseStateName()); + caseTypeView.setText(rowsBean.getEorcName()); + caseLargeTypeView.setText(rowsBean.getCasetypeName()); + caseSmallTypeView.setText(rowsBean.getCasetypeDetailName()); +// caseCommunityView.setText(); +// casePlaceView.setText(); + caseSituationView.setText(rowsBean.getDescription()); + } + + @Override + public void initEvent() { + + } + + @OnClick({R.id.caseAudioView, R.id.handleRecordLayout}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseAudioView: + + break; + case R.id.handleRecordLayout: + + break; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java new file mode 100644 index 0000000..1a68fb5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java @@ -0,0 +1,74 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.view.View; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.CaseListResultAdapter; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseListResultBean; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.lang.reflect.Type; +import java.util.List; + +import butterknife.BindView; + +public class CaseListResultActivity extends BaseActivity { + + @BindView(R.id.caseTopLayout) + QMUITopBarLayout caseTopLayout; + @BindView(R.id.caseRecyclerView) + RecyclerView caseRecyclerView; + + @Override + public int initLayoutView() { + return R.layout.activity_case_list; + } + + @Override + protected void setupTopBarLayout() { + caseTopLayout.setTitle("查询结果").setTextColor(ContextCompat.getColor(this, R.color.white)); + caseTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + caseTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + Gson gson = new Gson(); + String resultBeanJson = getIntent().getStringExtra("resultBeanJson"); + Type type = new TypeToken() { + }.getType(); + CaseListResultBean resultBean = gson.fromJson(resultBeanJson, type); + List dataRows = resultBean.getData().getRows(); + CaseListResultAdapter adapter = new CaseListResultAdapter(this, dataRows); + caseRecyclerView.setLayoutManager(new LinearLayoutManager(this)); + caseRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL)); + caseRecyclerView.setAdapter(adapter); + adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + Intent intent = new Intent(CaseListResultActivity.this, CaseDetailActivity.class); + intent.putExtra("rowsBeanJson", gson.toJson(dataRows.get(position))); + startActivity(intent); + } + }); + } + + @Override + public void initEvent() { + + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java new file mode 100644 index 0000000..da9b919 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java @@ -0,0 +1,375 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseListPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseStatusPresenterImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseListView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.ICaseStatusView; +import com.casic.dcms.utils.ColorHelper; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.TimeOrDateUtil; +import com.casic.dcms.utils.ToastHelper; +import com.google.gson.Gson; +import com.jzxiang.pickerview.TimePickerDialog; +import com.jzxiang.pickerview.data.Type; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseSearchActivity extends BaseActivity implements View.OnClickListener, + ICaseLargeClassView, ICaseSmallClassView, ICaseStatusView, ICaseListView { + + private static final String TAG = "CaseSearchActivity"; + private Context context = this; + @BindView(R.id.caseTopLayout) + QMUITopBarLayout caseTopLayout; + @BindView(R.id.caseClassView) + TextView caseClassView; + @BindView(R.id.caseLargeClassView) + TextView caseLargeClassView; + @BindView(R.id.caseSmallClassView) + TextView caseSmallClassView; + @BindView(R.id.caseStatusView) + TextView caseStatusView; + @BindView(R.id.startTimeView) + TextView startTimeView; + @BindView(R.id.endTimeView) + TextView endTimeView; + @BindView(R.id.searchButton) + QMUIRoundButton searchButton; + @BindView(R.id.resetButton) + QMUIRoundButton resetButton; + + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private List largeClassBeans; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private List smallClassBeans; + private CaseStatusPresenterImpl caseStatusPresenter; + private CaseListPresenterImpl caseListPresenter; + private QMUITipDialog loadingDialog; + private String eorc; + private String typeDetailCode; + private String typeCode; + private Gson gson; + + @Override + public int initLayoutView() { + return R.layout.activity_case_search; + } + + @Override + protected void setupTopBarLayout() { + caseTopLayout.setTitle("案卷查询").setTextColor(ContextCompat.getColor(this, R.color.white)); + caseTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + caseTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseStatusPresenter = new CaseStatusPresenterImpl(this); + caseListPresenter = new CaseListPresenterImpl(this); + } + + @Override + public void initEvent() { + searchButton.setChangeAlphaWhenPress(true); + resetButton.setChangeAlphaWhenPress(true); + loadingDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("查询中,请稍后") + .create(); + gson = new Gson(); + } + + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseStatusLayout, + R.id.selectStartDateView, R.id.selectEndDateView, R.id.searchButton, R.id.resetButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseClassLayout: + new QMUIBottomSheet.BottomListSheetBuilder(this) + .setTitle("案卷类型") + .addItem("事件") + .addItem("部件") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + caseClassView.setText(tag); + caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷大类 + String eorc = String.valueOf(position + 1); + caseLargeClassPresenter.onReadyRetrofitRequest(eorc); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseLargeClassView.setText(tag); + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + eorc = dataBean.getEorc(); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(eorc, typeId); + typeCode = dataBean.getTypeCode(); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseSmallClassView.setText(tag); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + typeDetailCode = smallClassBeans.get(position).getTypeDetailCode(); + } + }).build().show(); + } + } + break; + case R.id.caseStatusLayout: + caseStatusPresenter.onReadyRetrofitRequest(); + break; + case R.id.selectStartDateView: + new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis()) + .setType(Type.YEAR_MONTH_DAY) + .setCallBack((timePickerView, millSeconds) -> { + String date = TimeOrDateUtil.rTimestampToDate(millSeconds); + + startTimeView.setText(date); + startTimeView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + }).build().show(getSupportFragmentManager(), "year_month_day"); + break; + case R.id.selectEndDateView: + new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis()) + .setType(Type.YEAR_MONTH_DAY) + .setCallBack((timePickerView, millSeconds) -> { + String date = TimeOrDateUtil.rTimestampToDate(millSeconds); + + endTimeView.setText(date); + endTimeView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + }).build().show(getSupportFragmentManager(), "year_month_day"); + break; + case R.id.searchButton: + startSearchCaseList(); + break; + case R.id.resetButton: + new QMUIDialog.MessageDialogBuilder(context) + .setTitle("重置") + .setMessage("确定要重置填写的资料吗?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + + caseClassView.setText(""); + caseLargeClassView.setText(""); + caseSmallClassView.setText(""); + caseStatusView.setText(""); + startTimeView.setText(""); + endTimeView.setText(""); + } + }).create().show(); + break; + default: + break; + } + } + + /** + * 参数校验 + */ + private void startSearchCaseList() { + if (TextUtils.isEmpty(typeCode)) { + if (TextUtils.isEmpty(typeDetailCode)) { + ToastHelper.showToast("案卷大类还未填写,请检查", ToastHelper.ERROR); + return; + } + } + if (TextUtils.isEmpty(typeDetailCode)) { + if (TextUtils.isEmpty(typeDetailCode)) { + ToastHelper.showToast("案卷小类还未填写,请检查", ToastHelper.ERROR); + return; + } + } + String caseStatus = caseStatusView.getText().toString(); + if (TextUtils.isEmpty(caseStatus)) { + ToastHelper.showToast("处理状态还未填写,请检查", ToastHelper.ERROR); + return; + } + String startTime = startTimeView.getText().toString(); + if (TextUtils.isEmpty(startTime)) { + ToastHelper.showToast("起始时间还未填写,请检查", ToastHelper.ERROR); + return; + } + String endTime = endTimeView.getText().toString(); + if (TextUtils.isEmpty(endTime)) { + ToastHelper.showToast("结束时间还未填写,请检查", ToastHelper.ERROR); + return; + } + if (TextUtils.isEmpty(eorc)) { + ToastHelper.showToast("案卷大类还未填写,请检查", ToastHelper.ERROR); + return; + } + caseListPresenter.onReadyRetrofitRequest(typeCode, typeDetailCode, caseStatus, startTime, endTime, eorc, + 20, 0); + } + + @Override + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeClassView.setText("无小类"); + } else { + caseLargeClassView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 + } + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + + caseSmallClassView.setText("请选择"); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } + } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallClassView.setText("无小类"); + } else { + caseSmallClassView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 + } + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } + } + + @Override + public void obtainCaseStatusData(CaseStatusBean resultBean) { +// Log.d(TAG, "obtainCaseStatusData: " + new Gson().toJson(resultBean)); + if (resultBean.isSuccess()) { + List beans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处理状态"); + for (CaseStatusBean.DataBean dataBean : beans) { + 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(); + + caseStatusView.setText(tag); + caseStatusView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + } + }).build().show(); + } + } + + @Override + public void showProgress() { + loadingDialog.show(); + } + + @Override + public void obtainCaseStatusData(CaseListResultBean resultBean) { +// Log.d(TAG, "obtainCaseStatusData: " + new Gson().toJson(resultBean)); + if (resultBean.isSuccess()) { + Intent intent = new Intent(this, CaseListResultActivity.class); + intent.putExtra("resultBeanJson", gson.toJson(resultBean)); + startActivity(intent); + } + } + + @Override + public void hideProgress() { + loadingDialog.hide(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseStatusPresenter != null) { + caseStatusPresenter.disposeRetrofitRequest(); + } + if (caseListPresenter != null) { + caseListPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 549b16a..c3436a2 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -583,4 +583,18 @@ public void hideProgress() { submitDialog.hide(); } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseSubmitPresenter != null) { + caseSubmitPresenter.disposeRetrofitRequest(); + } + } } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index a21d874..a6c35b4 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -16,6 +16,7 @@ import com.casic.dcms.bean.UserBean; import com.casic.dcms.mvp.presenter.UserDataPresenterImpl; import com.casic.dcms.mvp.view.IUserDataView; +import com.casic.dcms.ui.CaseSearchActivity; import com.casic.dcms.ui.CaseUploadActivity; import com.casic.dcms.ui.DataAnalysisActivity; import com.casic.dcms.utils.StringHelper; @@ -102,7 +103,8 @@ ToastHelper.showToast("在岗人员", ToastHelper.INFO); break; case 10: - ToastHelper.showToast("案卷查询", ToastHelper.INFO); + intent.setClass(context, CaseSearchActivity.class); + startActivity(intent); break; case 11: ToastHelper.showToast("地图查看", ToastHelper.INFO); diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index 6b22eaf..11d462b 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -1,7 +1,9 @@ package com.casic.dcms.utils.retrofit; import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseListResultBean; import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.bean.CaseStatusBean; import com.casic.dcms.bean.ChangePasswordResultBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; @@ -116,4 +118,24 @@ Observable obtainEventSource(@Header("token") String token, @Field("begTime") String begTime, @Field("deptid") String endTime); + + /** + * 获取案件状态 + */ + @GET("/dict/code/caseState") + Observable getCaseStatus(@Header("token") String token); + + /** + * 获取案件状态 + */ + @GET("/case/queryListPage") + Observable obtainCaseList(@Header("token") String token, + @Query("casetypeCode") String casetypeCode, + @Query("casetypeDetailCode") String casetypeDetailCode, + @Query("caseState") String caseState, + @Query("createTimeBegin") String createTimeBegin, + @Query("createTimeEnd") String createTimeEnd, + @Query("eorc") String eorc, + @Query("limit") int limit, + @Query("offset") int offset); } diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index e20f305..c7d65a9 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -3,7 +3,9 @@ import android.util.Log; import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseListResultBean; import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.bean.CaseStatusBean; import com.casic.dcms.bean.ChangePasswordResultBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; @@ -166,4 +168,25 @@ RetrofitService service = retrofit.create(RetrofitService.class); return service.obtainEventSource(TokenHelper.getToken(), begTime, endTime); } + + /** + * 获取案件状态 + */ + public static Observable getCaseStatusResult() { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.getCaseStatus(TokenHelper.getToken()); + } + + /** + * 根据时间查询案卷列表 + */ + public static Observable getCaseListResult(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, + int limit, int offset) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainCaseList(TokenHelper.getToken(), casetypeCode, + casetypeDetailCode, caseState, registerTimeBegin, registerTimeEnd, eorc, limit, offset); + } } diff --git a/app/src/main/res/drawable/ic_calendar.xml b/app/src/main/res/drawable/ic_calendar.xml new file mode 100644 index 0000000..cf9e005 --- /dev/null +++ b/app/src/main/res/drawable/ic_calendar.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/layout/activity_case_detail.xml b/app/src/main/res/layout/activity_case_detail.xml new file mode 100644 index 0000000..4c967db --- /dev/null +++ b/app/src/main/res/layout/activity_case_detail.xml @@ -0,0 +1,273 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_case_list.xml b/app/src/main/res/layout/activity_case_list.xml new file mode 100644 index 0000000..1f30218 --- /dev/null +++ b/app/src/main/res/layout/activity_case_list.xml @@ -0,0 +1,19 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_case_search.xml b/app/src/main/res/layout/activity_case_search.xml new file mode 100644 index 0000000..0bf2de5 --- /dev/null +++ b/app/src/main/res/layout/activity_case_search.xml @@ -0,0 +1,241 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d5c56ab..deeff33 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -44,6 +44,9 @@ + + + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public CaseListResultAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_case_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView leftTextView; + private TextView titleView; + private TextView contentView; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + leftTextView = itemView.findViewById(R.id.leftTextView); + titleView = itemView.findViewById(R.id.titleView); + contentView = itemView.findViewById(R.id.contentView); + } + + void bindView(CaseListResultBean.DataBean.RowsBean rowsBean) { + String eorcName = rowsBean.getEorcName(); + leftTextView.setText(eorcName.substring(0, 1)); + titleView.setText(rowsBean.getCasetypeName()); + contentView.setText(rowsBean.getCasetypeDetailName()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java new file mode 100644 index 0000000..3ac2b7b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java @@ -0,0 +1,342 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseListResultBean { + + /** + * code : 200 + * data : {"rows":[{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}],"total":3} + * message : 请求成功 + * success : true + */ + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + /** + * rows : [{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}] + * total : 3 + */ + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * isPostpone : 0 + * description : 音频测试 + * createUserName : 超级管理员 + * source : 11 + * eorcName : 事件 + * casetypeDetailName : 违规高空悬吊作业 + * remainingTime : 超时729小时6分钟 + * casetypeName : 其他事件 + * processId : 2680008 + * caseState : 0 + * id : 1372735305680994306 + * reportSupervisorId : + * fieldintro : 音频测试 + * lat : 27.75386000913368 + * caseStateName : 待核实 + * lng : 116.07951602267566 + * isOvertime : 1 + * casetypeDetailCode : 01 + * onedeptid : + * eorc : 1 + * caseid : 202103190001 + * casetypeCode : 06 + * createUser : 1 + * nodeLimittime : 2021-03-19 11:23:03 + * sourceName : 热线电话 + * reportTime : 2021-03-19 10:22:56 + */ + + private int isPostpone; + private String description; + private String createUserName; + private int source; + private String eorcName; + private String casetypeDetailName; + private String remainingTime; + private String casetypeName; + private String processId; + private int caseState; + private String id; + private String reportSupervisorId; + private String fieldintro; + private String lat; + private String caseStateName; + private String lng; + private String isOvertime; + private String casetypeDetailCode; + private String onedeptid; + private String eorc; + private String caseid; + private String casetypeCode; + private String createUser; + private String nodeLimittime; + private String sourceName; + private String reportTime; + + public int getIsPostpone() { + return isPostpone; + } + + public void setIsPostpone(int isPostpone) { + this.isPostpone = isPostpone; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public int getSource() { + return source; + } + + public void setSource(int source) { + this.source = source; + } + + public String getEorcName() { + return eorcName; + } + + public void setEorcName(String eorcName) { + this.eorcName = eorcName; + } + + public String getCasetypeDetailName() { + return casetypeDetailName; + } + + public void setCasetypeDetailName(String casetypeDetailName) { + this.casetypeDetailName = casetypeDetailName; + } + + public String getRemainingTime() { + return remainingTime; + } + + public void setRemainingTime(String remainingTime) { + this.remainingTime = remainingTime; + } + + public String getCasetypeName() { + return casetypeName; + } + + public void setCasetypeName(String casetypeName) { + this.casetypeName = casetypeName; + } + + public String getProcessId() { + return processId; + } + + public void setProcessId(String processId) { + this.processId = processId; + } + + public int getCaseState() { + return caseState; + } + + public void setCaseState(int caseState) { + this.caseState = caseState; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getReportSupervisorId() { + return reportSupervisorId; + } + + public void setReportSupervisorId(String reportSupervisorId) { + this.reportSupervisorId = reportSupervisorId; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getLat() { + return lat; + } + + public void setLat(String lat) { + this.lat = lat; + } + + public String getCaseStateName() { + return caseStateName; + } + + public void setCaseStateName(String caseStateName) { + this.caseStateName = caseStateName; + } + + public String getLng() { + return lng; + } + + public void setLng(String lng) { + this.lng = lng; + } + + public String getIsOvertime() { + return isOvertime; + } + + public void setIsOvertime(String isOvertime) { + this.isOvertime = isOvertime; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getOnedeptid() { + return onedeptid; + } + + public void setOnedeptid(String onedeptid) { + this.onedeptid = onedeptid; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCaseid() { + return caseid; + } + + public void setCaseid(String caseid) { + this.caseid = caseid; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getNodeLimittime() { + return nodeLimittime; + } + + public void setNodeLimittime(String nodeLimittime) { + this.nodeLimittime = nodeLimittime; + } + + public String getSourceName() { + return sourceName; + } + + public void setSourceName(String sourceName) { + this.sourceName = sourceName; + } + + public String getReportTime() { + return reportTime; + } + + public void setReportTime(String reportTime) { + this.reportTime = reportTime; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java new file mode 100644 index 0000000..6918d00 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java @@ -0,0 +1,86 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseStatusBean { + + /** + * code : 200.0 + * data : [{"name":"待核实","id":"92","value":"0"},{"name":"核实无效","id":"93","value":"1"},{"name":"待立案","id":"94","value":"10"},{"name":"预立案","id":"95","value":"11"},{"name":"待派发","id":"96","value":"20"},{"name":"挂起","id":"98","value":"22"},{"name":"预派发","id":"99","value":"23"},{"name":"待处理","id":"100","value":"30"},{"name":"二级处理审核","id":"101","value":"31"},{"name":"调整批示","id":"102","value":"36"},{"name":"部门调整批示","id":"103","value":"37"},{"name":"处置通处理","id":"104","value":"39"},{"name":"待调整","id":"105","value":"40"},{"name":"授权审核","id":"106","value":"43"},{"name":"部门授权审核","id":"107","value":"45"},{"name":"处理审核","id":"108","value":"46"},{"name":"待派发核查","id":"109","value":"50"},{"name":"现场核查","id":"110","value":"51"},{"name":"核查通过","id":"112","value":"60"},{"name":"核查未通过","id":"113","value":"61"},{"name":"快速上报","id":"114","value":"62"},{"name":"待结案","id":"115","value":"63"},{"name":"正常结案","id":"116","value":"70"},{"name":"案件作废","id":"117","value":"75"},{"name":"不予立案","id":"118","value":"76"},{"name":"销案","id":"119","value":"77"},{"name":"处理完成","id":"120","value":"301"},{"name":"申请调整","id":"121","value":"302"},{"name":"申请延期","id":"122","value":"303"},{"name":"申请缓办","id":"158","value":"304"},{"name":"待派发核实","id":"173","value":"3"}] + * message : 请求成功 + * success : true + */ + + private double code; + private String message; + private boolean success; + private List data; + + public double getCode() { + return code; + } + + public void setCode(double code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 待核实 + * id : 92 + * value : 0 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java new file mode 100644 index 0000000..0a939d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java @@ -0,0 +1,52 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseListModelImpl implements ICaseListModel { + + private OnGetCaseListListener listener; + + public CaseListModelImpl(OnGetCaseListListener caseListListener) { + this.listener = caseListListener; + } + + public interface OnGetCaseListListener { + void onSuccess(CaseListResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { + Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseState, + registerTimeBegin, registerTimeEnd, eorc, limit, offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseListResultBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java new file mode 100644 index 0000000..65e1c13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseStatusModelImpl implements ICaseStatusModel { + + private OnGetCaseStatusListener listener; + + public CaseStatusModelImpl(OnGetCaseStatusListener onGetCaseStatusListener) { + this.listener = onGetCaseStatusListener; + } + + public interface OnGetCaseStatusListener { + void onSuccess(CaseStatusBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCaseStatusResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseStatusBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java new file mode 100644 index 0000000..7968c67 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseListModel { + Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, + int limit, int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java new file mode 100644 index 0000000..6b21b13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseStatusModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java new file mode 100644 index 0000000..6cbb05d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java @@ -0,0 +1,41 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseListModelImpl; +import com.casic.dcms.mvp.view.ICaseListView; + +public class CaseListPresenterImpl extends BasePresenter implements ICaseListPresenter, CaseListModelImpl.OnGetCaseListListener { + + private ICaseListView view; + private CaseListModelImpl actionModel; + + public CaseListPresenterImpl(ICaseListView caseListView) { + this.view = caseListView; + actionModel = new CaseListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(casetypeCode, + casetypeDetailCode, caseState, registerTimeBegin, registerTimeEnd, eorc, limit, offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CaseListResultBean resultBean) { + view.hideProgress(); + view.obtainCaseStatusData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java index 4889877..376e430 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -10,8 +10,8 @@ private ICaseSmallClassView view; private CaseSmallClassModelImpl actionModel; - public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { - this.view = caseTypeView; + public CaseSmallClassPresenterImpl(ICaseSmallClassView smallClassView) { + this.view = smallClassView; actionModel = new CaseSmallClassModelImpl(this); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java new file mode 100644 index 0000000..e297a23 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseStatusModelImpl; +import com.casic.dcms.mvp.view.ICaseStatusView; + +public class CaseStatusPresenterImpl extends BasePresenter implements ICaseStatusPresenter, CaseStatusModelImpl.OnGetCaseStatusListener { + + private ICaseStatusView view; + private CaseStatusModelImpl actionModel; + + public CaseStatusPresenterImpl(ICaseStatusView caseStatusView) { + this.view = caseStatusView; + actionModel = new CaseStatusModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CaseStatusBean resultBean) { + view.obtainCaseStatusData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java new file mode 100644 index 0000000..67be846 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java @@ -0,0 +1,8 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseListPresenter { + void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java new file mode 100644 index 0000000..19f2532 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseStatusPresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseListView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseListView.java new file mode 100644 index 0000000..430b7b7 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseListView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseListResultBean; + +public interface ICaseListView { + void showProgress(); + + void hideProgress(); + + void obtainCaseStatusData(CaseListResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseStatusView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseStatusView.java new file mode 100644 index 0000000..76384f7 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseStatusView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseStatusBean; + +public interface ICaseStatusView { + void obtainCaseStatusData(CaseStatusBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java new file mode 100644 index 0000000..2324230 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -0,0 +1,97 @@ +package com.casic.dcms.ui; + +import android.view.View; +import android.widget.GridView; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseListResultBean; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.lang.reflect.Type; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseDetailActivity extends BaseActivity implements View.OnClickListener { + + private static final String TAG = "CaseDetailActivity"; + @BindView(R.id.caseTopLayout) + QMUITopBarLayout caseTopLayout; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseStatusView) + TextView caseStatusView; + @BindView(R.id.caseTypeView) + TextView caseTypeView; + @BindView(R.id.caseLargeTypeView) + TextView caseLargeTypeView; + @BindView(R.id.caseSmallTypeView) + TextView caseSmallTypeView; + @BindView(R.id.caseCommunityView) + TextView caseCommunityView; + @BindView(R.id.casePlaceView) + TextView casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.casePicGridView) + GridView casePicGridView; + + @Override + public int initLayoutView() { + return R.layout.activity_case_detail; + } + + @Override + protected void setupTopBarLayout() { + caseTopLayout.setTitle("案卷详情").setTextColor(ContextCompat.getColor(this, R.color.white)); + caseTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + caseTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + Gson gson = new Gson(); + String rowsBeanJson = getIntent().getStringExtra("rowsBeanJson"); + Type type = new TypeToken() { + }.getType(); + CaseListResultBean.DataBean.RowsBean rowsBean = gson.fromJson(rowsBeanJson, type); + assert rowsBean != null; + caseNumberView.setText(rowsBean.getCaseid()); + caseStatusView.setText(rowsBean.getCaseStateName()); + caseTypeView.setText(rowsBean.getEorcName()); + caseLargeTypeView.setText(rowsBean.getCasetypeName()); + caseSmallTypeView.setText(rowsBean.getCasetypeDetailName()); +// caseCommunityView.setText(); +// casePlaceView.setText(); + caseSituationView.setText(rowsBean.getDescription()); + } + + @Override + public void initEvent() { + + } + + @OnClick({R.id.caseAudioView, R.id.handleRecordLayout}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseAudioView: + + break; + case R.id.handleRecordLayout: + + break; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java new file mode 100644 index 0000000..1a68fb5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java @@ -0,0 +1,74 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.view.View; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.CaseListResultAdapter; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseListResultBean; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.lang.reflect.Type; +import java.util.List; + +import butterknife.BindView; + +public class CaseListResultActivity extends BaseActivity { + + @BindView(R.id.caseTopLayout) + QMUITopBarLayout caseTopLayout; + @BindView(R.id.caseRecyclerView) + RecyclerView caseRecyclerView; + + @Override + public int initLayoutView() { + return R.layout.activity_case_list; + } + + @Override + protected void setupTopBarLayout() { + caseTopLayout.setTitle("查询结果").setTextColor(ContextCompat.getColor(this, R.color.white)); + caseTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + caseTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + Gson gson = new Gson(); + String resultBeanJson = getIntent().getStringExtra("resultBeanJson"); + Type type = new TypeToken() { + }.getType(); + CaseListResultBean resultBean = gson.fromJson(resultBeanJson, type); + List dataRows = resultBean.getData().getRows(); + CaseListResultAdapter adapter = new CaseListResultAdapter(this, dataRows); + caseRecyclerView.setLayoutManager(new LinearLayoutManager(this)); + caseRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL)); + caseRecyclerView.setAdapter(adapter); + adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + Intent intent = new Intent(CaseListResultActivity.this, CaseDetailActivity.class); + intent.putExtra("rowsBeanJson", gson.toJson(dataRows.get(position))); + startActivity(intent); + } + }); + } + + @Override + public void initEvent() { + + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java new file mode 100644 index 0000000..da9b919 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java @@ -0,0 +1,375 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseListPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseStatusPresenterImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseListView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.ICaseStatusView; +import com.casic.dcms.utils.ColorHelper; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.TimeOrDateUtil; +import com.casic.dcms.utils.ToastHelper; +import com.google.gson.Gson; +import com.jzxiang.pickerview.TimePickerDialog; +import com.jzxiang.pickerview.data.Type; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseSearchActivity extends BaseActivity implements View.OnClickListener, + ICaseLargeClassView, ICaseSmallClassView, ICaseStatusView, ICaseListView { + + private static final String TAG = "CaseSearchActivity"; + private Context context = this; + @BindView(R.id.caseTopLayout) + QMUITopBarLayout caseTopLayout; + @BindView(R.id.caseClassView) + TextView caseClassView; + @BindView(R.id.caseLargeClassView) + TextView caseLargeClassView; + @BindView(R.id.caseSmallClassView) + TextView caseSmallClassView; + @BindView(R.id.caseStatusView) + TextView caseStatusView; + @BindView(R.id.startTimeView) + TextView startTimeView; + @BindView(R.id.endTimeView) + TextView endTimeView; + @BindView(R.id.searchButton) + QMUIRoundButton searchButton; + @BindView(R.id.resetButton) + QMUIRoundButton resetButton; + + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private List largeClassBeans; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private List smallClassBeans; + private CaseStatusPresenterImpl caseStatusPresenter; + private CaseListPresenterImpl caseListPresenter; + private QMUITipDialog loadingDialog; + private String eorc; + private String typeDetailCode; + private String typeCode; + private Gson gson; + + @Override + public int initLayoutView() { + return R.layout.activity_case_search; + } + + @Override + protected void setupTopBarLayout() { + caseTopLayout.setTitle("案卷查询").setTextColor(ContextCompat.getColor(this, R.color.white)); + caseTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + caseTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseStatusPresenter = new CaseStatusPresenterImpl(this); + caseListPresenter = new CaseListPresenterImpl(this); + } + + @Override + public void initEvent() { + searchButton.setChangeAlphaWhenPress(true); + resetButton.setChangeAlphaWhenPress(true); + loadingDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("查询中,请稍后") + .create(); + gson = new Gson(); + } + + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseStatusLayout, + R.id.selectStartDateView, R.id.selectEndDateView, R.id.searchButton, R.id.resetButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseClassLayout: + new QMUIBottomSheet.BottomListSheetBuilder(this) + .setTitle("案卷类型") + .addItem("事件") + .addItem("部件") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + caseClassView.setText(tag); + caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷大类 + String eorc = String.valueOf(position + 1); + caseLargeClassPresenter.onReadyRetrofitRequest(eorc); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseLargeClassView.setText(tag); + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + eorc = dataBean.getEorc(); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(eorc, typeId); + typeCode = dataBean.getTypeCode(); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseSmallClassView.setText(tag); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + typeDetailCode = smallClassBeans.get(position).getTypeDetailCode(); + } + }).build().show(); + } + } + break; + case R.id.caseStatusLayout: + caseStatusPresenter.onReadyRetrofitRequest(); + break; + case R.id.selectStartDateView: + new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis()) + .setType(Type.YEAR_MONTH_DAY) + .setCallBack((timePickerView, millSeconds) -> { + String date = TimeOrDateUtil.rTimestampToDate(millSeconds); + + startTimeView.setText(date); + startTimeView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + }).build().show(getSupportFragmentManager(), "year_month_day"); + break; + case R.id.selectEndDateView: + new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis()) + .setType(Type.YEAR_MONTH_DAY) + .setCallBack((timePickerView, millSeconds) -> { + String date = TimeOrDateUtil.rTimestampToDate(millSeconds); + + endTimeView.setText(date); + endTimeView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + }).build().show(getSupportFragmentManager(), "year_month_day"); + break; + case R.id.searchButton: + startSearchCaseList(); + break; + case R.id.resetButton: + new QMUIDialog.MessageDialogBuilder(context) + .setTitle("重置") + .setMessage("确定要重置填写的资料吗?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + + caseClassView.setText(""); + caseLargeClassView.setText(""); + caseSmallClassView.setText(""); + caseStatusView.setText(""); + startTimeView.setText(""); + endTimeView.setText(""); + } + }).create().show(); + break; + default: + break; + } + } + + /** + * 参数校验 + */ + private void startSearchCaseList() { + if (TextUtils.isEmpty(typeCode)) { + if (TextUtils.isEmpty(typeDetailCode)) { + ToastHelper.showToast("案卷大类还未填写,请检查", ToastHelper.ERROR); + return; + } + } + if (TextUtils.isEmpty(typeDetailCode)) { + if (TextUtils.isEmpty(typeDetailCode)) { + ToastHelper.showToast("案卷小类还未填写,请检查", ToastHelper.ERROR); + return; + } + } + String caseStatus = caseStatusView.getText().toString(); + if (TextUtils.isEmpty(caseStatus)) { + ToastHelper.showToast("处理状态还未填写,请检查", ToastHelper.ERROR); + return; + } + String startTime = startTimeView.getText().toString(); + if (TextUtils.isEmpty(startTime)) { + ToastHelper.showToast("起始时间还未填写,请检查", ToastHelper.ERROR); + return; + } + String endTime = endTimeView.getText().toString(); + if (TextUtils.isEmpty(endTime)) { + ToastHelper.showToast("结束时间还未填写,请检查", ToastHelper.ERROR); + return; + } + if (TextUtils.isEmpty(eorc)) { + ToastHelper.showToast("案卷大类还未填写,请检查", ToastHelper.ERROR); + return; + } + caseListPresenter.onReadyRetrofitRequest(typeCode, typeDetailCode, caseStatus, startTime, endTime, eorc, + 20, 0); + } + + @Override + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeClassView.setText("无小类"); + } else { + caseLargeClassView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 + } + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + + caseSmallClassView.setText("请选择"); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } + } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallClassView.setText("无小类"); + } else { + caseSmallClassView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 + } + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } + } + + @Override + public void obtainCaseStatusData(CaseStatusBean resultBean) { +// Log.d(TAG, "obtainCaseStatusData: " + new Gson().toJson(resultBean)); + if (resultBean.isSuccess()) { + List beans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处理状态"); + for (CaseStatusBean.DataBean dataBean : beans) { + 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(); + + caseStatusView.setText(tag); + caseStatusView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + } + }).build().show(); + } + } + + @Override + public void showProgress() { + loadingDialog.show(); + } + + @Override + public void obtainCaseStatusData(CaseListResultBean resultBean) { +// Log.d(TAG, "obtainCaseStatusData: " + new Gson().toJson(resultBean)); + if (resultBean.isSuccess()) { + Intent intent = new Intent(this, CaseListResultActivity.class); + intent.putExtra("resultBeanJson", gson.toJson(resultBean)); + startActivity(intent); + } + } + + @Override + public void hideProgress() { + loadingDialog.hide(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseStatusPresenter != null) { + caseStatusPresenter.disposeRetrofitRequest(); + } + if (caseListPresenter != null) { + caseListPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 549b16a..c3436a2 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -583,4 +583,18 @@ public void hideProgress() { submitDialog.hide(); } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseSubmitPresenter != null) { + caseSubmitPresenter.disposeRetrofitRequest(); + } + } } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index a21d874..a6c35b4 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -16,6 +16,7 @@ import com.casic.dcms.bean.UserBean; import com.casic.dcms.mvp.presenter.UserDataPresenterImpl; import com.casic.dcms.mvp.view.IUserDataView; +import com.casic.dcms.ui.CaseSearchActivity; import com.casic.dcms.ui.CaseUploadActivity; import com.casic.dcms.ui.DataAnalysisActivity; import com.casic.dcms.utils.StringHelper; @@ -102,7 +103,8 @@ ToastHelper.showToast("在岗人员", ToastHelper.INFO); break; case 10: - ToastHelper.showToast("案卷查询", ToastHelper.INFO); + intent.setClass(context, CaseSearchActivity.class); + startActivity(intent); break; case 11: ToastHelper.showToast("地图查看", ToastHelper.INFO); diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index 6b22eaf..11d462b 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -1,7 +1,9 @@ package com.casic.dcms.utils.retrofit; import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseListResultBean; import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.bean.CaseStatusBean; import com.casic.dcms.bean.ChangePasswordResultBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; @@ -116,4 +118,24 @@ Observable obtainEventSource(@Header("token") String token, @Field("begTime") String begTime, @Field("deptid") String endTime); + + /** + * 获取案件状态 + */ + @GET("/dict/code/caseState") + Observable getCaseStatus(@Header("token") String token); + + /** + * 获取案件状态 + */ + @GET("/case/queryListPage") + Observable obtainCaseList(@Header("token") String token, + @Query("casetypeCode") String casetypeCode, + @Query("casetypeDetailCode") String casetypeDetailCode, + @Query("caseState") String caseState, + @Query("createTimeBegin") String createTimeBegin, + @Query("createTimeEnd") String createTimeEnd, + @Query("eorc") String eorc, + @Query("limit") int limit, + @Query("offset") int offset); } diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index e20f305..c7d65a9 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -3,7 +3,9 @@ import android.util.Log; import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseListResultBean; import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.bean.CaseStatusBean; import com.casic.dcms.bean.ChangePasswordResultBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; @@ -166,4 +168,25 @@ RetrofitService service = retrofit.create(RetrofitService.class); return service.obtainEventSource(TokenHelper.getToken(), begTime, endTime); } + + /** + * 获取案件状态 + */ + public static Observable getCaseStatusResult() { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.getCaseStatus(TokenHelper.getToken()); + } + + /** + * 根据时间查询案卷列表 + */ + public static Observable getCaseListResult(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, + int limit, int offset) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainCaseList(TokenHelper.getToken(), casetypeCode, + casetypeDetailCode, caseState, registerTimeBegin, registerTimeEnd, eorc, limit, offset); + } } diff --git a/app/src/main/res/drawable/ic_calendar.xml b/app/src/main/res/drawable/ic_calendar.xml new file mode 100644 index 0000000..cf9e005 --- /dev/null +++ b/app/src/main/res/drawable/ic_calendar.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/layout/activity_case_detail.xml b/app/src/main/res/layout/activity_case_detail.xml new file mode 100644 index 0000000..4c967db --- /dev/null +++ b/app/src/main/res/layout/activity_case_detail.xml @@ -0,0 +1,273 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_case_list.xml b/app/src/main/res/layout/activity_case_list.xml new file mode 100644 index 0000000..1f30218 --- /dev/null +++ b/app/src/main/res/layout/activity_case_list.xml @@ -0,0 +1,19 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_case_search.xml b/app/src/main/res/layout/activity_case_search.xml new file mode 100644 index 0000000..0bf2de5 --- /dev/null +++ b/app/src/main/res/layout/activity_case_search.xml @@ -0,0 +1,241 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_case_upload.xml b/app/src/main/res/layout/activity_case_upload.xml index 50eabb9..a9ff51c 100644 --- a/app/src/main/res/layout/activity_case_upload.xml +++ b/app/src/main/res/layout/activity_case_upload.xml @@ -3,6 +3,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" + android:background="@color/white" android:orientation="vertical"> @@ -65,13 +67,14 @@ android:id="@+id/caseLargeClassView" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_alignParentEnd="true" - android:layout_marginEnd="20dp" + android:layout_marginEnd="5dp" + android:layout_toStartOf="@id/vv" android:text="请选择" android:textColor="@color/darkGray" android:textSize="@dimen/textFontSize" /> @@ -94,14 +97,15 @@ android:id="@+id/caseSmallClassView" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_alignParentEnd="true" android:layout_centerVertical="true" - android:layout_marginEnd="20dp" + android:layout_marginEnd="5dp" + android:layout_toStartOf="@id/vvv" android:text="请选择" android:textColor="@color/darkGray" android:textSize="@dimen/textFontSize" /> diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d5c56ab..deeff33 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -44,6 +44,9 @@ + + + { + + private List dataRows; + private LayoutInflater layoutInflater; + + public CaseListResultAdapter(Context context, List dataRows) { + this.dataRows = dataRows; + layoutInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public ItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = layoutInflater.inflate(R.layout.item_case_recycleview, parent, false); + return new ItemViewHolder(view); + } + + @Override + public void onBindViewHolder(@NonNull ItemViewHolder holder, int position) { + holder.bindView(dataRows.get(position)); + if (clickListener != null) { + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + clickListener.onClick(position); + } + }); + } + } + + @Override + public int getItemCount() { + return dataRows.size(); + } + + private OnItemClickListener clickListener; + + public interface OnItemClickListener { + void onClick(int position); + } + + public void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.clickListener = onItemClickListener; + } + + static class ItemViewHolder extends RecyclerView.ViewHolder { + + private TextView leftTextView; + private TextView titleView; + private TextView contentView; + + ItemViewHolder(@NonNull View itemView) { + super(itemView); + leftTextView = itemView.findViewById(R.id.leftTextView); + titleView = itemView.findViewById(R.id.titleView); + contentView = itemView.findViewById(R.id.contentView); + } + + void bindView(CaseListResultBean.DataBean.RowsBean rowsBean) { + String eorcName = rowsBean.getEorcName(); + leftTextView.setText(eorcName.substring(0, 1)); + titleView.setText(rowsBean.getCasetypeName()); + contentView.setText(rowsBean.getCasetypeDetailName()); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java new file mode 100644 index 0000000..3ac2b7b --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseListResultBean.java @@ -0,0 +1,342 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseListResultBean { + + /** + * code : 200 + * data : {"rows":[{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}],"total":3} + * message : 请求成功 + * success : true + */ + + private int code; + private DataBean data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataBean { + /** + * rows : [{"isPostpone":0,"description":"音频测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时729小时6分钟","casetypeName":"其他事件","processId":"2680008","caseState":0,"id":"1372735305680994306","reportSupervisorId":"","fieldintro":"音频测试","lat":"27.75386000913368","caseStateName":"待核实","lng":"116.07951602267566","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103190001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-19 11:23:03","sourceName":"热线电话","reportTime":"2021-03-19 10:22:56"},{"isPostpone":0,"description":"位置测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时801小时58分钟","casetypeName":"其他事件","processId":"2650224","caseState":0,"id":"1371635101907701761","reportSupervisorId":"","fieldintro":"位置测试","lat":"27.75752993282298","caseStateName":"待核实","lng":"116.06901884789212","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103160001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-16 10:31:07","sourceName":"热线电话","reportTime":"2021-03-16 09:31:07"},{"isPostpone":0,"description":"核实测试","createUserName":"超级管理员","source":11,"eorcName":"事件","casetypeDetailName":"违规高空悬吊作业","remainingTime":"超时820小时33分钟","casetypeName":"其他事件","processId":"2650178","caseState":0,"id":"1371354469570859010","reportSupervisorId":"","fieldintro":"核实测试","lat":"","caseStateName":"待核实","lng":"","isOvertime":"1","casetypeDetailCode":"01","onedeptid":"","eorc":"1","caseid":"202103150001","casetypeCode":"06","createUser":"1","nodeLimittime":"2021-03-15 15:55:59","sourceName":"热线电话","reportTime":"2021-03-15 14:55:59"}] + * total : 3 + */ + + private int total; + private List rows; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public static class RowsBean { + /** + * isPostpone : 0 + * description : 音频测试 + * createUserName : 超级管理员 + * source : 11 + * eorcName : 事件 + * casetypeDetailName : 违规高空悬吊作业 + * remainingTime : 超时729小时6分钟 + * casetypeName : 其他事件 + * processId : 2680008 + * caseState : 0 + * id : 1372735305680994306 + * reportSupervisorId : + * fieldintro : 音频测试 + * lat : 27.75386000913368 + * caseStateName : 待核实 + * lng : 116.07951602267566 + * isOvertime : 1 + * casetypeDetailCode : 01 + * onedeptid : + * eorc : 1 + * caseid : 202103190001 + * casetypeCode : 06 + * createUser : 1 + * nodeLimittime : 2021-03-19 11:23:03 + * sourceName : 热线电话 + * reportTime : 2021-03-19 10:22:56 + */ + + private int isPostpone; + private String description; + private String createUserName; + private int source; + private String eorcName; + private String casetypeDetailName; + private String remainingTime; + private String casetypeName; + private String processId; + private int caseState; + private String id; + private String reportSupervisorId; + private String fieldintro; + private String lat; + private String caseStateName; + private String lng; + private String isOvertime; + private String casetypeDetailCode; + private String onedeptid; + private String eorc; + private String caseid; + private String casetypeCode; + private String createUser; + private String nodeLimittime; + private String sourceName; + private String reportTime; + + public int getIsPostpone() { + return isPostpone; + } + + public void setIsPostpone(int isPostpone) { + this.isPostpone = isPostpone; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getCreateUserName() { + return createUserName; + } + + public void setCreateUserName(String createUserName) { + this.createUserName = createUserName; + } + + public int getSource() { + return source; + } + + public void setSource(int source) { + this.source = source; + } + + public String getEorcName() { + return eorcName; + } + + public void setEorcName(String eorcName) { + this.eorcName = eorcName; + } + + public String getCasetypeDetailName() { + return casetypeDetailName; + } + + public void setCasetypeDetailName(String casetypeDetailName) { + this.casetypeDetailName = casetypeDetailName; + } + + public String getRemainingTime() { + return remainingTime; + } + + public void setRemainingTime(String remainingTime) { + this.remainingTime = remainingTime; + } + + public String getCasetypeName() { + return casetypeName; + } + + public void setCasetypeName(String casetypeName) { + this.casetypeName = casetypeName; + } + + public String getProcessId() { + return processId; + } + + public void setProcessId(String processId) { + this.processId = processId; + } + + public int getCaseState() { + return caseState; + } + + public void setCaseState(int caseState) { + this.caseState = caseState; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getReportSupervisorId() { + return reportSupervisorId; + } + + public void setReportSupervisorId(String reportSupervisorId) { + this.reportSupervisorId = reportSupervisorId; + } + + public String getFieldintro() { + return fieldintro; + } + + public void setFieldintro(String fieldintro) { + this.fieldintro = fieldintro; + } + + public String getLat() { + return lat; + } + + public void setLat(String lat) { + this.lat = lat; + } + + public String getCaseStateName() { + return caseStateName; + } + + public void setCaseStateName(String caseStateName) { + this.caseStateName = caseStateName; + } + + public String getLng() { + return lng; + } + + public void setLng(String lng) { + this.lng = lng; + } + + public String getIsOvertime() { + return isOvertime; + } + + public void setIsOvertime(String isOvertime) { + this.isOvertime = isOvertime; + } + + public String getCasetypeDetailCode() { + return casetypeDetailCode; + } + + public void setCasetypeDetailCode(String casetypeDetailCode) { + this.casetypeDetailCode = casetypeDetailCode; + } + + public String getOnedeptid() { + return onedeptid; + } + + public void setOnedeptid(String onedeptid) { + this.onedeptid = onedeptid; + } + + public String getEorc() { + return eorc; + } + + public void setEorc(String eorc) { + this.eorc = eorc; + } + + public String getCaseid() { + return caseid; + } + + public void setCaseid(String caseid) { + this.caseid = caseid; + } + + public String getCasetypeCode() { + return casetypeCode; + } + + public void setCasetypeCode(String casetypeCode) { + this.casetypeCode = casetypeCode; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getNodeLimittime() { + return nodeLimittime; + } + + public void setNodeLimittime(String nodeLimittime) { + this.nodeLimittime = nodeLimittime; + } + + public String getSourceName() { + return sourceName; + } + + public void setSourceName(String sourceName) { + this.sourceName = sourceName; + } + + public String getReportTime() { + return reportTime; + } + + public void setReportTime(String reportTime) { + this.reportTime = reportTime; + } + } + } +} diff --git a/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java new file mode 100644 index 0000000..6918d00 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/bean/CaseStatusBean.java @@ -0,0 +1,86 @@ +package com.casic.dcms.bean; + +import java.util.List; + +public class CaseStatusBean { + + /** + * code : 200.0 + * data : [{"name":"待核实","id":"92","value":"0"},{"name":"核实无效","id":"93","value":"1"},{"name":"待立案","id":"94","value":"10"},{"name":"预立案","id":"95","value":"11"},{"name":"待派发","id":"96","value":"20"},{"name":"挂起","id":"98","value":"22"},{"name":"预派发","id":"99","value":"23"},{"name":"待处理","id":"100","value":"30"},{"name":"二级处理审核","id":"101","value":"31"},{"name":"调整批示","id":"102","value":"36"},{"name":"部门调整批示","id":"103","value":"37"},{"name":"处置通处理","id":"104","value":"39"},{"name":"待调整","id":"105","value":"40"},{"name":"授权审核","id":"106","value":"43"},{"name":"部门授权审核","id":"107","value":"45"},{"name":"处理审核","id":"108","value":"46"},{"name":"待派发核查","id":"109","value":"50"},{"name":"现场核查","id":"110","value":"51"},{"name":"核查通过","id":"112","value":"60"},{"name":"核查未通过","id":"113","value":"61"},{"name":"快速上报","id":"114","value":"62"},{"name":"待结案","id":"115","value":"63"},{"name":"正常结案","id":"116","value":"70"},{"name":"案件作废","id":"117","value":"75"},{"name":"不予立案","id":"118","value":"76"},{"name":"销案","id":"119","value":"77"},{"name":"处理完成","id":"120","value":"301"},{"name":"申请调整","id":"121","value":"302"},{"name":"申请延期","id":"122","value":"303"},{"name":"申请缓办","id":"158","value":"304"},{"name":"待派发核实","id":"173","value":"3"}] + * message : 请求成功 + * success : true + */ + + private double code; + private String message; + private boolean success; + private List data; + + public double getCode() { + return code; + } + + public void setCode(double code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + /** + * name : 待核实 + * id : 92 + * value : 0 + */ + + private String name; + private String id; + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java new file mode 100644 index 0000000..0a939d5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseListModelImpl.java @@ -0,0 +1,52 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseListModelImpl implements ICaseListModel { + + private OnGetCaseListListener listener; + + public CaseListModelImpl(OnGetCaseListListener caseListListener) { + this.listener = caseListListener; + } + + public interface OnGetCaseListListener { + void onSuccess(CaseListResultBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { + Observable observable = RetrofitServiceManager.getCaseListResult(casetypeCode, casetypeDetailCode, caseState, + registerTimeBegin, registerTimeEnd, eorc, limit, offset); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseListResultBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java new file mode 100644 index 0000000..65e1c13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/CaseStatusModelImpl.java @@ -0,0 +1,50 @@ +package com.casic.dcms.mvp.model; + +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.utils.retrofit.RetrofitServiceManager; + +import rx.Observable; +import rx.Observer; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.schedulers.Schedulers; + +public class CaseStatusModelImpl implements ICaseStatusModel { + + private OnGetCaseStatusListener listener; + + public CaseStatusModelImpl(OnGetCaseStatusListener onGetCaseStatusListener) { + this.listener = onGetCaseStatusListener; + } + + public interface OnGetCaseStatusListener { + void onSuccess(CaseStatusBean resultBean); + + void onFailure(Throwable throwable); + } + + @Override + public Subscription sendRetrofitRequest() { + Observable observable = RetrofitServiceManager.getCaseStatusResult(); + return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { + @Override + public void onCompleted() { + + } + + @Override + public void onError(Throwable e) { + if (listener != null) { + listener.onFailure(e); + } + } + + @Override + public void onNext(CaseStatusBean largeClassBean) { + if (largeClassBean != null) { + listener.onSuccess(largeClassBean); + } + } + }); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java new file mode 100644 index 0000000..7968c67 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseListModel.java @@ -0,0 +1,9 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseListModel { + Subscription sendRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, + int limit, int offset); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java new file mode 100644 index 0000000..6b21b13 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICaseStatusModel.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.model; + +import rx.Subscription; + +public interface ICaseStatusModel { + Subscription sendRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java new file mode 100644 index 0000000..6cbb05d --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseListPresenterImpl.java @@ -0,0 +1,41 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseListModelImpl; +import com.casic.dcms.mvp.view.ICaseListView; + +public class CaseListPresenterImpl extends BasePresenter implements ICaseListPresenter, CaseListModelImpl.OnGetCaseListListener { + + private ICaseListView view; + private CaseListModelImpl actionModel; + + public CaseListPresenterImpl(ICaseListView caseListView) { + this.view = caseListView; + actionModel = new CaseListModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset) { + view.showProgress(); + addSubscription(actionModel.sendRetrofitRequest(casetypeCode, + casetypeDetailCode, caseState, registerTimeBegin, registerTimeEnd, eorc, limit, offset)); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CaseListResultBean resultBean) { + view.hideProgress(); + view.obtainCaseStatusData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + view.hideProgress(); + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java index 4889877..376e430 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseSmallClassPresenterImpl.java @@ -10,8 +10,8 @@ private ICaseSmallClassView view; private CaseSmallClassModelImpl actionModel; - public CaseSmallClassPresenterImpl(ICaseSmallClassView caseTypeView) { - this.view = caseTypeView; + public CaseSmallClassPresenterImpl(ICaseSmallClassView smallClassView) { + this.view = smallClassView; actionModel = new CaseSmallClassModelImpl(this); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java new file mode 100644 index 0000000..e297a23 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CaseStatusPresenterImpl.java @@ -0,0 +1,37 @@ +package com.casic.dcms.mvp.presenter; + +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.mvp.BasePresenter; +import com.casic.dcms.mvp.model.CaseStatusModelImpl; +import com.casic.dcms.mvp.view.ICaseStatusView; + +public class CaseStatusPresenterImpl extends BasePresenter implements ICaseStatusPresenter, CaseStatusModelImpl.OnGetCaseStatusListener { + + private ICaseStatusView view; + private CaseStatusModelImpl actionModel; + + public CaseStatusPresenterImpl(ICaseStatusView caseStatusView) { + this.view = caseStatusView; + actionModel = new CaseStatusModelImpl(this); + } + + @Override + public void onReadyRetrofitRequest() { + addSubscription(actionModel.sendRetrofitRequest()); + } + + @Override + public void disposeRetrofitRequest() { + unSubscription(); + } + + @Override + public void onSuccess(CaseStatusBean resultBean) { + view.obtainCaseStatusData(resultBean); + } + + @Override + public void onFailure(Throwable throwable) { + + } +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java new file mode 100644 index 0000000..67be846 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseListPresenter.java @@ -0,0 +1,8 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseListPresenter { + void onReadyRetrofitRequest(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, int limit, int offset); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java new file mode 100644 index 0000000..19f2532 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICaseStatusPresenter.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.presenter; + +public interface ICaseStatusPresenter { + void onReadyRetrofitRequest(); + + void disposeRetrofitRequest(); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseListView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseListView.java new file mode 100644 index 0000000..430b7b7 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseListView.java @@ -0,0 +1,11 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseListResultBean; + +public interface ICaseListView { + void showProgress(); + + void hideProgress(); + + void obtainCaseStatusData(CaseListResultBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/mvp/view/ICaseStatusView.java b/app/src/main/java/com/casic/dcms/mvp/view/ICaseStatusView.java new file mode 100644 index 0000000..76384f7 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/mvp/view/ICaseStatusView.java @@ -0,0 +1,7 @@ +package com.casic.dcms.mvp.view; + +import com.casic.dcms.bean.CaseStatusBean; + +public interface ICaseStatusView { + void obtainCaseStatusData(CaseStatusBean resultBean); +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java new file mode 100644 index 0000000..2324230 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseDetailActivity.java @@ -0,0 +1,97 @@ +package com.casic.dcms.ui; + +import android.view.View; +import android.widget.GridView; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseListResultBean; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.lang.reflect.Type; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseDetailActivity extends BaseActivity implements View.OnClickListener { + + private static final String TAG = "CaseDetailActivity"; + @BindView(R.id.caseTopLayout) + QMUITopBarLayout caseTopLayout; + @BindView(R.id.caseNumberView) + TextView caseNumberView; + @BindView(R.id.caseStatusView) + TextView caseStatusView; + @BindView(R.id.caseTypeView) + TextView caseTypeView; + @BindView(R.id.caseLargeTypeView) + TextView caseLargeTypeView; + @BindView(R.id.caseSmallTypeView) + TextView caseSmallTypeView; + @BindView(R.id.caseCommunityView) + TextView caseCommunityView; + @BindView(R.id.casePlaceView) + TextView casePlaceView; + @BindView(R.id.caseSituationView) + TextView caseSituationView; + @BindView(R.id.casePicGridView) + GridView casePicGridView; + + @Override + public int initLayoutView() { + return R.layout.activity_case_detail; + } + + @Override + protected void setupTopBarLayout() { + caseTopLayout.setTitle("案卷详情").setTextColor(ContextCompat.getColor(this, R.color.white)); + caseTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + caseTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + Gson gson = new Gson(); + String rowsBeanJson = getIntent().getStringExtra("rowsBeanJson"); + Type type = new TypeToken() { + }.getType(); + CaseListResultBean.DataBean.RowsBean rowsBean = gson.fromJson(rowsBeanJson, type); + assert rowsBean != null; + caseNumberView.setText(rowsBean.getCaseid()); + caseStatusView.setText(rowsBean.getCaseStateName()); + caseTypeView.setText(rowsBean.getEorcName()); + caseLargeTypeView.setText(rowsBean.getCasetypeName()); + caseSmallTypeView.setText(rowsBean.getCasetypeDetailName()); +// caseCommunityView.setText(); +// casePlaceView.setText(); + caseSituationView.setText(rowsBean.getDescription()); + } + + @Override + public void initEvent() { + + } + + @OnClick({R.id.caseAudioView, R.id.handleRecordLayout}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseAudioView: + + break; + case R.id.handleRecordLayout: + + break; + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java new file mode 100644 index 0000000..1a68fb5 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseListResultActivity.java @@ -0,0 +1,74 @@ +package com.casic.dcms.ui; + +import android.content.Intent; +import android.view.View; + +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.casic.dcms.R; +import com.casic.dcms.adapter.CaseListResultAdapter; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseListResultBean; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; + +import java.lang.reflect.Type; +import java.util.List; + +import butterknife.BindView; + +public class CaseListResultActivity extends BaseActivity { + + @BindView(R.id.caseTopLayout) + QMUITopBarLayout caseTopLayout; + @BindView(R.id.caseRecyclerView) + RecyclerView caseRecyclerView; + + @Override + public int initLayoutView() { + return R.layout.activity_case_list; + } + + @Override + protected void setupTopBarLayout() { + caseTopLayout.setTitle("查询结果").setTextColor(ContextCompat.getColor(this, R.color.white)); + caseTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + caseTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + Gson gson = new Gson(); + String resultBeanJson = getIntent().getStringExtra("resultBeanJson"); + Type type = new TypeToken() { + }.getType(); + CaseListResultBean resultBean = gson.fromJson(resultBeanJson, type); + List dataRows = resultBean.getData().getRows(); + CaseListResultAdapter adapter = new CaseListResultAdapter(this, dataRows); + caseRecyclerView.setLayoutManager(new LinearLayoutManager(this)); + caseRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL)); + caseRecyclerView.setAdapter(adapter); + adapter.setOnItemClickListener(new CaseListResultAdapter.OnItemClickListener() { + @Override + public void onClick(int position) { + Intent intent = new Intent(CaseListResultActivity.this, CaseDetailActivity.class); + intent.putExtra("rowsBeanJson", gson.toJson(dataRows.get(position))); + startActivity(intent); + } + }); + } + + @Override + public void initEvent() { + + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java new file mode 100644 index 0000000..da9b919 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/ui/CaseSearchActivity.java @@ -0,0 +1,375 @@ +package com.casic.dcms.ui; + +import android.content.Context; +import android.content.Intent; +import android.text.TextUtils; +import android.view.View; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; + +import com.casic.dcms.R; +import com.casic.dcms.base.BaseActivity; +import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseListResultBean; +import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.bean.CaseStatusBean; +import com.casic.dcms.mvp.presenter.CaseLargeClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseListPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseSmallClassPresenterImpl; +import com.casic.dcms.mvp.presenter.CaseStatusPresenterImpl; +import com.casic.dcms.mvp.view.ICaseLargeClassView; +import com.casic.dcms.mvp.view.ICaseListView; +import com.casic.dcms.mvp.view.ICaseSmallClassView; +import com.casic.dcms.mvp.view.ICaseStatusView; +import com.casic.dcms.utils.ColorHelper; +import com.casic.dcms.utils.Constant; +import com.casic.dcms.utils.TimeOrDateUtil; +import com.casic.dcms.utils.ToastHelper; +import com.google.gson.Gson; +import com.jzxiang.pickerview.TimePickerDialog; +import com.jzxiang.pickerview.data.Type; +import com.qmuiteam.qmui.widget.QMUITopBarLayout; +import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet; +import com.qmuiteam.qmui.widget.dialog.QMUIDialog; +import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; +import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; +import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton; + +import java.util.List; + +import butterknife.BindView; +import butterknife.OnClick; + +public class CaseSearchActivity extends BaseActivity implements View.OnClickListener, + ICaseLargeClassView, ICaseSmallClassView, ICaseStatusView, ICaseListView { + + private static final String TAG = "CaseSearchActivity"; + private Context context = this; + @BindView(R.id.caseTopLayout) + QMUITopBarLayout caseTopLayout; + @BindView(R.id.caseClassView) + TextView caseClassView; + @BindView(R.id.caseLargeClassView) + TextView caseLargeClassView; + @BindView(R.id.caseSmallClassView) + TextView caseSmallClassView; + @BindView(R.id.caseStatusView) + TextView caseStatusView; + @BindView(R.id.startTimeView) + TextView startTimeView; + @BindView(R.id.endTimeView) + TextView endTimeView; + @BindView(R.id.searchButton) + QMUIRoundButton searchButton; + @BindView(R.id.resetButton) + QMUIRoundButton resetButton; + + private CaseLargeClassPresenterImpl caseLargeClassPresenter; + private List largeClassBeans; + private CaseSmallClassPresenterImpl caseSmallClassPresenter; + private List smallClassBeans; + private CaseStatusPresenterImpl caseStatusPresenter; + private CaseListPresenterImpl caseListPresenter; + private QMUITipDialog loadingDialog; + private String eorc; + private String typeDetailCode; + private String typeCode; + private Gson gson; + + @Override + public int initLayoutView() { + return R.layout.activity_case_search; + } + + @Override + protected void setupTopBarLayout() { + caseTopLayout.setTitle("案卷查询").setTextColor(ContextCompat.getColor(this, R.color.white)); + caseTopLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.mainThemeColor)); + caseTopLayout.addLeftImageButton(R.drawable.ic_left_white, 1).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + } + + @Override + public void initData() { + caseLargeClassPresenter = new CaseLargeClassPresenterImpl(this); + caseSmallClassPresenter = new CaseSmallClassPresenterImpl(this); + caseStatusPresenter = new CaseStatusPresenterImpl(this); + caseListPresenter = new CaseListPresenterImpl(this); + } + + @Override + public void initEvent() { + searchButton.setChangeAlphaWhenPress(true); + resetButton.setChangeAlphaWhenPress(true); + loadingDialog = new QMUITipDialog.Builder(this) + .setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING) + .setTipWord("查询中,请稍后") + .create(); + gson = new Gson(); + } + + @OnClick({R.id.caseClassLayout, R.id.caseLargeClassLayout, R.id.caseSmallClassLayout, R.id.caseStatusLayout, + R.id.selectStartDateView, R.id.selectEndDateView, R.id.searchButton, R.id.resetButton}) + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.caseClassLayout: + new QMUIBottomSheet.BottomListSheetBuilder(this) + .setTitle("案卷类型") + .addItem("事件") + .addItem("部件") + .setGravityCenter(true) + .setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + caseClassView.setText(tag); + caseClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷大类 + String eorc = String.valueOf(position + 1); + caseLargeClassPresenter.onReadyRetrofitRequest(eorc); + } + }).build().show(); + break; + case R.id.caseLargeClassLayout: + if (largeClassBeans != null) { + if (largeClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷大类"); + for (CaseLargeClassBean.DataBean dataBean : largeClassBeans) { + sheetBuilder.addItem(dataBean.getTypeName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseLargeClassView.setText(tag); + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + + //获取案卷小类 + CaseLargeClassBean.DataBean dataBean = largeClassBeans.get(position); + eorc = dataBean.getEorc(); + String typeId = dataBean.getId(); + caseSmallClassPresenter.onReadyRetrofitRequest(eorc, typeId); + typeCode = dataBean.getTypeCode(); + } + }).build().show(); + } + } + break; + case R.id.caseSmallClassLayout: + if (smallClassBeans != null) { + if (smallClassBeans.size() > 1) { + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("案卷小类"); + for (CaseSmallClassBean.DataBean dataBean : smallClassBeans) { + sheetBuilder.addItem(dataBean.getTypeDetailName()); + } + sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() { + @Override + public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) { + dialog.dismiss(); + + caseSmallClassView.setText(tag); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + typeDetailCode = smallClassBeans.get(position).getTypeDetailCode(); + } + }).build().show(); + } + } + break; + case R.id.caseStatusLayout: + caseStatusPresenter.onReadyRetrofitRequest(); + break; + case R.id.selectStartDateView: + new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis()) + .setType(Type.YEAR_MONTH_DAY) + .setCallBack((timePickerView, millSeconds) -> { + String date = TimeOrDateUtil.rTimestampToDate(millSeconds); + + startTimeView.setText(date); + startTimeView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + }).build().show(getSupportFragmentManager(), "year_month_day"); + break; + case R.id.selectEndDateView: + new TimePickerDialog.Builder().setThemeColor(ColorHelper.getResourcesColor(this, R.color.mainThemeColor)) + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.FIVE_YEARS) + .setMaxMillseconds(System.currentTimeMillis()) + .setType(Type.YEAR_MONTH_DAY) + .setCallBack((timePickerView, millSeconds) -> { + String date = TimeOrDateUtil.rTimestampToDate(millSeconds); + + endTimeView.setText(date); + endTimeView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + }).build().show(getSupportFragmentManager(), "year_month_day"); + break; + case R.id.searchButton: + startSearchCaseList(); + break; + case R.id.resetButton: + new QMUIDialog.MessageDialogBuilder(context) + .setTitle("重置") + .setMessage("确定要重置填写的资料吗?") + .setCanceledOnTouchOutside(false) + .addAction("取消", (dialog, index) -> dialog.dismiss()) + .addAction("确定", new QMUIDialogAction.ActionListener() { + @Override + public void onClick(QMUIDialog dialog, int index) { + dialog.dismiss(); + + caseClassView.setText(""); + caseLargeClassView.setText(""); + caseSmallClassView.setText(""); + caseStatusView.setText(""); + startTimeView.setText(""); + endTimeView.setText(""); + } + }).create().show(); + break; + default: + break; + } + } + + /** + * 参数校验 + */ + private void startSearchCaseList() { + if (TextUtils.isEmpty(typeCode)) { + if (TextUtils.isEmpty(typeDetailCode)) { + ToastHelper.showToast("案卷大类还未填写,请检查", ToastHelper.ERROR); + return; + } + } + if (TextUtils.isEmpty(typeDetailCode)) { + if (TextUtils.isEmpty(typeDetailCode)) { + ToastHelper.showToast("案卷小类还未填写,请检查", ToastHelper.ERROR); + return; + } + } + String caseStatus = caseStatusView.getText().toString(); + if (TextUtils.isEmpty(caseStatus)) { + ToastHelper.showToast("处理状态还未填写,请检查", ToastHelper.ERROR); + return; + } + String startTime = startTimeView.getText().toString(); + if (TextUtils.isEmpty(startTime)) { + ToastHelper.showToast("起始时间还未填写,请检查", ToastHelper.ERROR); + return; + } + String endTime = endTimeView.getText().toString(); + if (TextUtils.isEmpty(endTime)) { + ToastHelper.showToast("结束时间还未填写,请检查", ToastHelper.ERROR); + return; + } + if (TextUtils.isEmpty(eorc)) { + ToastHelper.showToast("案卷大类还未填写,请检查", ToastHelper.ERROR); + return; + } + caseListPresenter.onReadyRetrofitRequest(typeCode, typeDetailCode, caseStatus, startTime, endTime, eorc, + 20, 0); + } + + @Override + public void obtainLargeClassData(CaseLargeClassBean largeClassBean) { + if (largeClassBean.isSuccess()) { + //设置大类数据 + this.largeClassBeans = largeClassBean.getData(); + if (largeClassBeans.size() == 0) { + caseLargeClassView.setText("无小类"); + } else { + caseLargeClassView.setText(largeClassBeans.get(0).getTypeName());//默认选择第一个 + } + caseLargeClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + + caseSmallClassView.setText("请选择"); + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } + } + + @Override + public void obtainSmallClassData(CaseSmallClassBean smallClassBean) { + if (smallClassBean.isSuccess()) { + //设置大类数据 + this.smallClassBeans = smallClassBean.getData(); + if (smallClassBeans.size() == 0) { + caseSmallClassView.setText("无小类"); + } else { + caseSmallClassView.setText(smallClassBeans.get(0).getTypeDetailName());//默认选择第一个 + } + caseSmallClassView.setTextColor(ColorHelper.getResourcesColor(this, R.color.darkGray)); + } + } + + @Override + public void obtainCaseStatusData(CaseStatusBean resultBean) { +// Log.d(TAG, "obtainCaseStatusData: " + new Gson().toJson(resultBean)); + if (resultBean.isSuccess()) { + List beans = resultBean.getData(); + QMUIBottomSheet.BottomListSheetBuilder sheetBuilder = new QMUIBottomSheet.BottomListSheetBuilder(this); + sheetBuilder.setTitle("处理状态"); + for (CaseStatusBean.DataBean dataBean : beans) { + 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(); + + caseStatusView.setText(tag); + caseStatusView.setTextColor(ColorHelper.getResourcesColor(context, R.color.textColor)); + } + }).build().show(); + } + } + + @Override + public void showProgress() { + loadingDialog.show(); + } + + @Override + public void obtainCaseStatusData(CaseListResultBean resultBean) { +// Log.d(TAG, "obtainCaseStatusData: " + new Gson().toJson(resultBean)); + if (resultBean.isSuccess()) { + Intent intent = new Intent(this, CaseListResultActivity.class); + intent.putExtra("resultBeanJson", gson.toJson(resultBean)); + startActivity(intent); + } + } + + @Override + public void hideProgress() { + loadingDialog.hide(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseStatusPresenter != null) { + caseStatusPresenter.disposeRetrofitRequest(); + } + if (caseListPresenter != null) { + caseListPresenter.disposeRetrofitRequest(); + } + } +} diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index 549b16a..c3436a2 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -583,4 +583,18 @@ public void hideProgress() { submitDialog.hide(); } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (caseLargeClassPresenter != null) { + caseLargeClassPresenter.disposeRetrofitRequest(); + } + if (caseSmallClassPresenter != null) { + caseSmallClassPresenter.disposeRetrofitRequest(); + } + if (caseSubmitPresenter != null) { + caseSubmitPresenter.disposeRetrofitRequest(); + } + } } diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java index a21d874..a6c35b4 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/HomePageFragment.java @@ -16,6 +16,7 @@ import com.casic.dcms.bean.UserBean; import com.casic.dcms.mvp.presenter.UserDataPresenterImpl; import com.casic.dcms.mvp.view.IUserDataView; +import com.casic.dcms.ui.CaseSearchActivity; import com.casic.dcms.ui.CaseUploadActivity; import com.casic.dcms.ui.DataAnalysisActivity; import com.casic.dcms.utils.StringHelper; @@ -102,7 +103,8 @@ ToastHelper.showToast("在岗人员", ToastHelper.INFO); break; case 10: - ToastHelper.showToast("案卷查询", ToastHelper.INFO); + intent.setClass(context, CaseSearchActivity.class); + startActivity(intent); break; case 11: ToastHelper.showToast("地图查看", ToastHelper.INFO); diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index 6b22eaf..11d462b 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -1,7 +1,9 @@ package com.casic.dcms.utils.retrofit; import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseListResultBean; import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.bean.CaseStatusBean; import com.casic.dcms.bean.ChangePasswordResultBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; @@ -116,4 +118,24 @@ Observable obtainEventSource(@Header("token") String token, @Field("begTime") String begTime, @Field("deptid") String endTime); + + /** + * 获取案件状态 + */ + @GET("/dict/code/caseState") + Observable getCaseStatus(@Header("token") String token); + + /** + * 获取案件状态 + */ + @GET("/case/queryListPage") + Observable obtainCaseList(@Header("token") String token, + @Query("casetypeCode") String casetypeCode, + @Query("casetypeDetailCode") String casetypeDetailCode, + @Query("caseState") String caseState, + @Query("createTimeBegin") String createTimeBegin, + @Query("createTimeEnd") String createTimeEnd, + @Query("eorc") String eorc, + @Query("limit") int limit, + @Query("offset") int offset); } diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index e20f305..c7d65a9 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -3,7 +3,9 @@ import android.util.Log; import com.casic.dcms.bean.CaseLargeClassBean; +import com.casic.dcms.bean.CaseListResultBean; import com.casic.dcms.bean.CaseSmallClassBean; +import com.casic.dcms.bean.CaseStatusBean; import com.casic.dcms.bean.ChangePasswordResultBean; import com.casic.dcms.bean.DeptTreeBean; import com.casic.dcms.bean.EventSourceBean; @@ -166,4 +168,25 @@ RetrofitService service = retrofit.create(RetrofitService.class); return service.obtainEventSource(TokenHelper.getToken(), begTime, endTime); } + + /** + * 获取案件状态 + */ + public static Observable getCaseStatusResult() { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.getCaseStatus(TokenHelper.getToken()); + } + + /** + * 根据时间查询案卷列表 + */ + public static Observable getCaseListResult(String casetypeCode, String casetypeDetailCode, String caseState, + String registerTimeBegin, String registerTimeEnd, String eorc, + int limit, int offset) { + Retrofit retrofit = createRetrofit(); + RetrofitService service = retrofit.create(RetrofitService.class); + return service.obtainCaseList(TokenHelper.getToken(), casetypeCode, + casetypeDetailCode, caseState, registerTimeBegin, registerTimeEnd, eorc, limit, offset); + } } diff --git a/app/src/main/res/drawable/ic_calendar.xml b/app/src/main/res/drawable/ic_calendar.xml new file mode 100644 index 0000000..cf9e005 --- /dev/null +++ b/app/src/main/res/drawable/ic_calendar.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/layout/activity_case_detail.xml b/app/src/main/res/layout/activity_case_detail.xml new file mode 100644 index 0000000..4c967db --- /dev/null +++ b/app/src/main/res/layout/activity_case_detail.xml @@ -0,0 +1,273 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_case_list.xml b/app/src/main/res/layout/activity_case_list.xml new file mode 100644 index 0000000..1f30218 --- /dev/null +++ b/app/src/main/res/layout/activity_case_list.xml @@ -0,0 +1,19 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_case_search.xml b/app/src/main/res/layout/activity_case_search.xml new file mode 100644 index 0000000..0bf2de5 --- /dev/null +++ b/app/src/main/res/layout/activity_case_search.xml @@ -0,0 +1,241 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_case_upload.xml b/app/src/main/res/layout/activity_case_upload.xml index 50eabb9..a9ff51c 100644 --- a/app/src/main/res/layout/activity_case_upload.xml +++ b/app/src/main/res/layout/activity_case_upload.xml @@ -3,6 +3,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" + android:background="@color/white" android:orientation="vertical"> @@ -65,13 +67,14 @@ android:id="@+id/caseLargeClassView" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_alignParentEnd="true" - android:layout_marginEnd="20dp" + android:layout_marginEnd="5dp" + android:layout_toStartOf="@id/vv" android:text="请选择" android:textColor="@color/darkGray" android:textSize="@dimen/textFontSize" /> @@ -94,14 +97,15 @@ android:id="@+id/caseSmallClassView" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_alignParentEnd="true" android:layout_centerVertical="true" - android:layout_marginEnd="20dp" + android:layout_marginEnd="5dp" + android:layout_toStartOf="@id/vvv" android:text="请选择" android:textColor="@color/darkGray" android:textSize="@dimen/textFontSize" /> diff --git a/app/src/main/res/layout/item_case_recycleview.xml b/app/src/main/res/layout/item_case_recycleview.xml new file mode 100644 index 0000000..9a78a37 --- /dev/null +++ b/app/src/main/res/layout/item_case_recycleview.xml @@ -0,0 +1,49 @@ + + + + + + + + + + + \ No newline at end of file