DailyDetailsApprovalFlowAdapter.java 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  1. package com.xzjmyk.pm.activity.adapter;
  2. import android.content.Context;
  3. import android.support.v7.app.AlertDialog;
  4. import android.view.View;
  5. import android.view.ViewGroup;
  6. import android.widget.BaseAdapter;
  7. import android.widget.ImageView;
  8. import android.widget.LinearLayout;
  9. import android.widget.TextView;
  10. import com.xzjmyk.pm.activity.MyApplication;
  11. import com.xzjmyk.pm.activity.R;
  12. import com.xzjmyk.pm.activity.bean.oa.CommonApprovalFlowBean;
  13. import com.xzjmyk.pm.activity.util.im.helper.AvatarHelper;
  14. import com.xzjmyk.pm.activity.ui.erp.db.DBManager;
  15. import com.common.data.ListUtils;
  16. import java.util.List;
  17. /**
  18. * Created by FANGlh on 2016/11/4.
  19. */
  20. public class DailyDetailsApprovalFlowAdapter extends BaseAdapter {
  21. private CommonApprovalFlowBean mCommonApprovalFlowBean;
  22. private Context mContext;
  23. DBManager manager;
  24. private List<String> im_ids;
  25. private List<String> afpeople_names;
  26. public List<String> getAfpeople_names() {
  27. return afpeople_names;
  28. }
  29. public void setAfpeople_names(List<String> afpeople_names) {
  30. this.afpeople_names = afpeople_names;
  31. }
  32. public List<String> getIm_ids() {
  33. return im_ids;
  34. }
  35. public void setIm_ids(List<String> im_ids) {
  36. this.im_ids = im_ids;
  37. }
  38. public DailyDetailsApprovalFlowAdapter(Context mContext) {
  39. manager = new DBManager(mContext);
  40. this.mContext = mContext;
  41. }
  42. public CommonApprovalFlowBean getmCommonApprovalFlowBean() {
  43. return mCommonApprovalFlowBean;
  44. }
  45. public void setmCommonApprovalFlowBean(CommonApprovalFlowBean mCommonApprovalFlowBeanList) {
  46. this.mCommonApprovalFlowBean = mCommonApprovalFlowBeanList;
  47. }
  48. public int getCount() {
  49. if (ListUtils.isEmpty(mCommonApprovalFlowBean.getData())){
  50. return mCommonApprovalFlowBean == null ? 0 : mCommonApprovalFlowBean.getNodes().size();
  51. }else{
  52. return mCommonApprovalFlowBean == null ? 0 : mCommonApprovalFlowBean.getData().size();
  53. }
  54. }
  55. @Override
  56. public Object getItem(int position) {
  57. if (ListUtils.isEmpty(mCommonApprovalFlowBean.getData())){
  58. return mCommonApprovalFlowBean.getNodes().get(position);
  59. }else {
  60. return mCommonApprovalFlowBean.getData().get(position);
  61. }
  62. }
  63. @Override
  64. public long getItemId(int position) {
  65. return position;
  66. }
  67. @Override
  68. public View getView(final int position, View convertView, ViewGroup parent) {
  69. ViewHolder viewHolder = null;
  70. if (convertView == null) {
  71. convertView = View.inflate(mContext, R.layout.item_daily_details_approval_flow, null);
  72. viewHolder = new ViewHolder();
  73. viewHolder.AppFlowNode = (ImageView) convertView.findViewById(R.id.item_daily_details_approval_flow_node_img);
  74. viewHolder.AppFlowPhoto = (ImageView) convertView.findViewById(R.id.item_daily_details_approval_flow_photo_img);
  75. viewHolder.AppFlowName = (TextView) convertView.findViewById(R.id.item_daily_details_approval_flow_name_tv);
  76. viewHolder.AppFlowStatus = (TextView) convertView.findViewById(R.id.item_daily_details_approval_flow_status_tv);
  77. viewHolder.AppFlowTime = (TextView) convertView.findViewById(R.id.item_daily_details_approval_flow_time_tv);
  78. viewHolder.AppFlowDescriptionll = (LinearLayout) convertView.findViewById(R.id.Description_ll);
  79. viewHolder.AppFlowDescriptiontv = (TextView) convertView.findViewById(R.id.item_daily_details_approval_flow_statusDescription_tv);
  80. convertView.setTag(viewHolder);
  81. } else {
  82. viewHolder = (ViewHolder) convertView.getTag();
  83. }
  84. // 日报详情审批流过程显示,逻辑比较繁琐
  85. final int nodesnum = mCommonApprovalFlowBean.getNodes().size();
  86. final int datanum = mCommonApprovalFlowBean.getData().size();
  87. //设置显示审批人头像
  88. if (ListUtils.isEmpty(im_ids)) {
  89. String imageUri = "drawable://" + R.drawable.common_header_boy;
  90. AvatarHelper.getInstance().display(imageUri, viewHolder.AppFlowPhoto, true);
  91. } else if (!ListUtils.isEmpty(im_ids)){
  92. AvatarHelper.getInstance().display(im_ids.get(getCount() - position - 1), viewHolder.AppFlowPhoto, true, false);//显示圆角图片
  93. }
  94. //设置显示审批人名字
  95. if (ListUtils.isEmpty(afpeople_names)){
  96. viewHolder.AppFlowName.setText("");
  97. }else if (!ListUtils.isEmpty(afpeople_names)){
  98. viewHolder.AppFlowName.setText(afpeople_names.get(getCount() - position - 1));
  99. }
  100. // 审批流倒序排列
  101. if (nodesnum == 0) {
  102. viewHolder.AppFlowDescriptionll.setVisibility(View.GONE);
  103. if (mCommonApprovalFlowBean.getCurrentnode().getNodename()
  104. .equals(mCommonApprovalFlowBean.getData().get(getCount() - position - 1).getJP_NODENAME())) {
  105. viewHolder.AppFlowStatus.setTextColor(mContext.getResources().getColor(R.color.no_approval));
  106. viewHolder.AppFlowStatus.setText(MyApplication.getInstance().getString(R.string.status_pending));
  107. viewHolder.AppFlowNode.setImageResource(R.drawable.node_wait3);
  108. viewHolder.AppFlowTime.setText("");
  109. } else {
  110. viewHolder.AppFlowStatus.setText("");
  111. viewHolder.AppFlowNode.setImageResource(R.drawable.node_none3);
  112. }
  113. } else if (datanum !=0 && nodesnum != 0){
  114. if (position > (datanum - nodesnum - 1)) { //已走过审批流的节点
  115. if (mCommonApprovalFlowBean.getNodes().get(datanum - position - 1).getJn_dealResult().equals("同意")) {
  116. viewHolder.AppFlowStatus.setTextColor(mContext.getResources().getColor(R.color.done_approval));
  117. viewHolder.AppFlowStatus.setText(MyApplication.getInstance().getString(R.string.status_approved));
  118. viewHolder.AppFlowNode.setImageResource(R.drawable.node_finished3);
  119. viewHolder.AppFlowTime.setText(mCommonApprovalFlowBean.getNodes().get(datanum - position - 1).getJn_dealTime());
  120. } else if (mCommonApprovalFlowBean.getNodes().get(datanum - position - 1).getJn_dealResult().equals("不同意")) {
  121. viewHolder.AppFlowStatus.setTextColor(mContext.getResources().getColor(R.color.no_approval));
  122. viewHolder.AppFlowStatus.setText(MyApplication.getInstance().getString(R.string.common_disagree));
  123. viewHolder.AppFlowNode.setImageResource(R.drawable.icon_disagree_nor);
  124. viewHolder.AppFlowTime.setText(mCommonApprovalFlowBean.getNodes().get(datanum - position - 1).getJn_dealTime());
  125. }
  126. //当已审批时判断有没有审批语
  127. if (mCommonApprovalFlowBean.getNodes().get(datanum - position - 1).getJn_nodeDescription() != null) {
  128. viewHolder.AppFlowDescriptionll.setVisibility(View.VISIBLE);
  129. viewHolder.AppFlowDescriptiontv.setTextColor(mContext.getResources().getColor(R.color.done_approval));
  130. viewHolder.AppFlowDescriptiontv.setText("( " + mCommonApprovalFlowBean.getNodes().get(datanum - position - 1).getJn_nodeDescription().toString() + " )");
  131. final String des_msg = mCommonApprovalFlowBean.getNodes().get(datanum - position - 1).getJn_nodeDescription().toString();
  132. viewHolder.AppFlowDescriptionll.setOnClickListener(new View.OnClickListener() {
  133. //点击查看详细批语
  134. @Override
  135. public void onClick(View v) {
  136. new AlertDialog
  137. .Builder(mContext)
  138. .setTitle(MyApplication.getInstance().getString(R.string.approvel_detail))
  139. .setMessage("\t" + des_msg)
  140. .setPositiveButton(MyApplication.getInstance().getString(R.string.common_sure), null)
  141. .show();
  142. }
  143. });
  144. } else {
  145. viewHolder.AppFlowDescriptionll.setVisibility(View.GONE);
  146. viewHolder.AppFlowDescriptiontv.setText("");
  147. }
  148. } else if (position == (datanum - nodesnum - 1) ) { //当前待处理的节点(nodes里面将要统计的数据)
  149. if (mCommonApprovalFlowBean.getNodes().get(datanum -position -2).getJn_dealResult().equals("同意")) {
  150. viewHolder.AppFlowNode.setImageResource(R.drawable.node_wait3);
  151. viewHolder.AppFlowStatus.setTextColor(mContext.getResources().getColor(R.color.no_approval));
  152. viewHolder.AppFlowStatus.setText(MyApplication.getInstance().getString(R.string.status_pending));
  153. }else {
  154. viewHolder.AppFlowNode.setImageResource(R.drawable.node_none3);
  155. viewHolder.AppFlowStatus.setText("");
  156. }
  157. viewHolder.AppFlowTime.setText("");
  158. viewHolder.AppFlowDescriptionll.setVisibility(View.GONE);
  159. } else if (position < (datanum - nodesnum - 1)) { //未走过审批流的节点
  160. viewHolder.AppFlowStatus.setText("");
  161. viewHolder.AppFlowNode.setImageResource(R.drawable.node_none3);
  162. viewHolder.AppFlowTime.setText("");
  163. viewHolder.AppFlowDescriptionll.setVisibility(View.GONE);
  164. }
  165. }else if (datanum == 0 && nodesnum != 0){ // 兼容data 为空情况
  166. if (mCommonApprovalFlowBean.getNodes().get(nodesnum - position - 1).getJn_dealResult().equals("同意")) {
  167. viewHolder.AppFlowStatus.setTextColor(mContext.getResources().getColor(R.color.done_approval));
  168. viewHolder.AppFlowStatus.setText(MyApplication.getInstance().getString(R.string.status_approved));
  169. viewHolder.AppFlowNode.setImageResource(R.drawable.node_finished3);
  170. viewHolder.AppFlowTime.setText(mCommonApprovalFlowBean.getNodes().get(nodesnum - position - 1).getJn_dealTime());
  171. //当已审批时判断有没有审批语
  172. if (mCommonApprovalFlowBean.getNodes().get(nodesnum - position - 1).getJn_nodeDescription() != null) {
  173. viewHolder.AppFlowDescriptionll.setVisibility(View.VISIBLE);
  174. viewHolder.AppFlowDescriptiontv.setTextColor(mContext.getResources().getColor(R.color.done_approval));
  175. viewHolder.AppFlowDescriptiontv.setText("( " + mCommonApprovalFlowBean.getNodes().get(nodesnum - position - 1).getJn_nodeDescription().toString() + " )");
  176. final String des_msg = mCommonApprovalFlowBean.getNodes().get(nodesnum - position - 1).getJn_nodeDescription().toString();
  177. viewHolder.AppFlowDescriptionll.setOnClickListener(new View.OnClickListener() {
  178. //点击查看详细批语
  179. @Override
  180. public void onClick(View v) {
  181. new AlertDialog
  182. .Builder(mContext)
  183. .setTitle(MyApplication.getInstance().getString(R.string.approvel_detail))
  184. .setMessage("\t" + des_msg)
  185. .setPositiveButton(MyApplication.getInstance().getString(R.string.common_sure), null)
  186. .show();
  187. }
  188. });
  189. } else {
  190. viewHolder.AppFlowDescriptionll.setVisibility(View.GONE);
  191. viewHolder.AppFlowDescriptiontv.setText("");
  192. }
  193. }
  194. }
  195. return convertView;
  196. }
  197. class ViewHolder {
  198. ImageView AppFlowNode;
  199. ImageView AppFlowPhoto;
  200. TextView AppFlowName;
  201. TextView AppFlowStatus;
  202. TextView AppFlowTime;
  203. LinearLayout AppFlowDescriptionll;
  204. TextView AppFlowDescriptiontv;
  205. }
  206. }