CommonDocApprovalFlowAdapter.java 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  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.alibaba.fastjson.JSON;
  11. import com.xzjmyk.pm.activity.R;
  12. import com.xzjmyk.pm.activity.bean.oa.CommonApprovalFlowBean;
  13. import com.xzjmyk.pm.activity.helper.AvatarHelper;
  14. import com.xzjmyk.pm.activity.ui.erp.util.LogUtil;
  15. import java.util.List;
  16. /**
  17. * 单据审批流通用适配器
  18. * 考勤单据里面的所有单据详情界面,审批流适配器都会用到这里
  19. * Created by FANGlh on 2016/11/16.
  20. */
  21. public class CommonDocApprovalFlowAdapter extends BaseAdapter {
  22. private CommonApprovalFlowBean mCommonApprovalFlowBean;
  23. private Context mContext;
  24. //DBManager manager;
  25. private List<String> im_ids;
  26. public List<String> getIm_ids() {
  27. return im_ids;
  28. }
  29. public void setIm_ids(List<String> im_ids) {
  30. this.im_ids = im_ids;
  31. }
  32. public CommonDocApprovalFlowAdapter(Context mContext) {
  33. //manager = new DBManager(mContext);
  34. this.mContext = mContext;
  35. }
  36. public CommonApprovalFlowBean getmCommonApprovalFlowBean() {
  37. return mCommonApprovalFlowBean;
  38. }
  39. public void setmCommonApprovalFlowBean(CommonApprovalFlowBean mCommonApprovalFlowBeanList) {
  40. this.mCommonApprovalFlowBean = mCommonApprovalFlowBeanList;
  41. }
  42. public int getCount() {
  43. return mCommonApprovalFlowBean == null ? 0 : mCommonApprovalFlowBean.getData().size();
  44. }
  45. @Override
  46. public Object getItem(int position) {
  47. return mCommonApprovalFlowBean.getData().get(position);
  48. }
  49. @Override
  50. public long getItemId(int position) {
  51. return position;
  52. }
  53. @Override
  54. public View getView(final int position, View convertView, ViewGroup parent) {
  55. ViewHolder viewHolder = null;
  56. if (convertView == null) {
  57. convertView = View.inflate(mContext, R.layout.item_common_doc_approval_flow, null);
  58. viewHolder = new ViewHolder();
  59. viewHolder.AppFlowNode = (ImageView) convertView.findViewById(R.id.item_common_doc_approval_flow_node_img);
  60. viewHolder.AppFlowPhoto = (ImageView) convertView.findViewById(R.id.item_dcommon_doc_approval_flow_photo_img);
  61. viewHolder.AppFlowName = (TextView) convertView.findViewById(R.id.item_common_doc_approval_flow_name_tv);
  62. viewHolder.AppFlowStatus = (TextView) convertView.findViewById(R.id.item_common_doc_approval_flow_status_tv);
  63. viewHolder.AppFlowTime = (TextView) convertView.findViewById(R.id.item_common_doc_approval_flow_time_tv);
  64. viewHolder.AppFlowDescriptionll = (LinearLayout) convertView.findViewById(R.id.Description_ll);
  65. viewHolder.AppFlowDescriptiontv = (TextView) convertView.findViewById(R.id.item_common_doc_approval_flow_statusDescription_tv);
  66. convertView.setTag(viewHolder);
  67. } else {
  68. viewHolder = (ViewHolder) convertView.getTag();
  69. }
  70. //ToDo 日报详情审批流过程显示,逻辑比较繁琐
  71. //获取 已审批节点数量 和总审批节点数
  72. final int nodesnum = mCommonApprovalFlowBean.getNodes().size();
  73. int datanum = mCommonApprovalFlowBean.getData().size();
  74. int processnum = mCommonApprovalFlowBean.getProcesss().size();
  75. viewHolder.AppFlowName.setText(mCommonApprovalFlowBean.getData().get(getCount() - position - 1).getJP_NODEDEALMANNAME());
  76. if (im_ids == null || im_ids.get(getCount() - position - 1).equals("")
  77. || im_ids.get(getCount() - position - 1).equals("0")) {
  78. // viewHolder.AppFlowPhoto.setImageDrawable(new BitmapDrawable());
  79. String imageUri = "drawable://" + R.drawable.common_header_boy;
  80. AvatarHelper.getInstance().display(imageUri,viewHolder.AppFlowPhoto,true);
  81. } else {
  82. // ImageLoader.getInstance().displayImage(url, viewHolder.AppFlowPhoto, MyApplication.mAvatarRoundImageOptions);
  83. AvatarHelper.getInstance().display(im_ids.get(getCount() - position - 1),viewHolder.AppFlowPhoto,true,false);//显示圆角图片
  84. }
  85. // TODO 审批流倒序排列
  86. if (nodesnum == 0) {
  87. if (mCommonApprovalFlowBean.getCurrentnode().getNodename()
  88. .equals(mCommonApprovalFlowBean.getData().get(getCount() - position - 1).getJP_NODENAME())) {
  89. viewHolder.AppFlowStatus.setTextColor(mContext.getResources().getColor(R.color.no_approval));
  90. viewHolder.AppFlowStatus.setText("待审批");
  91. viewHolder.AppFlowNode.setImageResource(R.drawable.node_wait3);
  92. viewHolder.AppFlowTime.setText("");
  93. } else {
  94. viewHolder.AppFlowStatus.setText("");
  95. viewHolder.AppFlowNode.setImageResource(R.drawable.node_none3);
  96. }
  97. } else {
  98. if (position > (datanum - nodesnum - 1)) { //已走过审批流的节点
  99. if (mCommonApprovalFlowBean.getNodes().get(position - (datanum - nodesnum)).getJn_dealResult().equals("同意")) {
  100. viewHolder.AppFlowStatus.setTextColor(mContext.getResources().getColor(R.color.done_approval));
  101. viewHolder.AppFlowStatus.setText("已审批");
  102. viewHolder.AppFlowNode.setImageResource(R.drawable.node_finished3);
  103. viewHolder.AppFlowTime.setText(mCommonApprovalFlowBean.getNodes().get(datanum - position - 1).getJn_dealTime());
  104. final int i = position - (datanum - nodesnum);
  105. //当有审批时判断有没有审批语
  106. if (mCommonApprovalFlowBean.getNodes().get(datanum -position -1).getJn_dealResult() != null &&
  107. mCommonApprovalFlowBean.getNodes().get(datanum -position -1).getJn_nodeDescription() != null) {
  108. viewHolder.AppFlowDescriptionll.setVisibility(View.VISIBLE);
  109. viewHolder.AppFlowDescriptiontv.setTextColor(mContext.getResources().getColor(R.color.done_approval));
  110. viewHolder.AppFlowDescriptiontv.setText("( " + mCommonApprovalFlowBean.getNodes().get(datanum - position - 1).getJn_nodeDescription().toString() + " )");
  111. final String des_msg = mCommonApprovalFlowBean.getNodes().get(datanum -position -1).getJn_nodeDescription().toString();
  112. viewHolder.AppFlowDescriptionll.setOnClickListener(new View.OnClickListener() {
  113. //点击查看详细批语
  114. @Override
  115. public void onClick(View v) {
  116. new AlertDialog
  117. .Builder(mContext)
  118. .setTitle("审批语详情")
  119. .setMessage("\t" + des_msg)
  120. .setPositiveButton("确定", null)
  121. .show();
  122. }
  123. });
  124. }else {
  125. viewHolder.AppFlowDescriptiontv.setText("");
  126. }
  127. }else if (mCommonApprovalFlowBean.getNodes().get(position - (datanum - nodesnum)).getJn_dealResult().equals("不同意")) {
  128. viewHolder.AppFlowStatus.setTextColor(mContext.getResources().getColor(R.color.no_approval));
  129. viewHolder.AppFlowStatus.setText("不同意");
  130. viewHolder.AppFlowNode.setImageResource(R.drawable.node_wait3);
  131. viewHolder.AppFlowTime.setText(mCommonApprovalFlowBean.getNodes().get(datanum - position - 1).getJn_dealTime());
  132. }
  133. } else if (position == (datanum - nodesnum - 1)) { //当前待处理的节点(nodes里面将要统计的数据)
  134. if (mCommonApprovalFlowBean.getNodes().get(position - (datanum - nodesnum - 1)).getJn_dealResult().equals("同意")) {
  135. viewHolder.AppFlowNode.setImageResource(R.drawable.node_wait3);
  136. viewHolder.AppFlowStatus.setTextColor(mContext.getResources().getColor(R.color.no_approval));
  137. viewHolder.AppFlowStatus.setText("待审批");
  138. viewHolder.AppFlowTime.setText("");
  139. }
  140. } else if (position < (datanum - nodesnum - 1)) { //未走过审批流的节点
  141. viewHolder.AppFlowStatus.setText("");
  142. viewHolder.AppFlowNode.setImageResource(R.drawable.node_none3);
  143. viewHolder.AppFlowTime.setText("");
  144. }
  145. }
  146. return convertView;
  147. }
  148. class ViewHolder {
  149. ImageView AppFlowNode;
  150. ImageView AppFlowPhoto;
  151. TextView AppFlowName;
  152. TextView AppFlowStatus;
  153. TextView AppFlowTime;
  154. LinearLayout AppFlowDescriptionll;
  155. TextView AppFlowDescriptiontv;
  156. }
  157. }