CommonDocApprovalFlowAdapter.java 9.0 KB

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