48c6b96fbf5e7868a847ffa5ea8a8c4c2a478656.svn-base 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318
  1. package eVVM.apk.ui.report.vndetail;
  2. import android.content.Intent;
  3. import android.text.SpannableString;
  4. import android.text.Spanned;
  5. import android.text.TextUtils;
  6. import android.text.method.LinkMovementMethod;
  7. import android.text.style.ClickableSpan;
  8. import android.util.Log;
  9. import android.view.View;
  10. import android.widget.ImageView;
  11. import android.widget.TextView;
  12. import com.hjq.image.ImageLoader;
  13. import butterknife.BindView;
  14. import butterknife.OnClick;
  15. import eVVM.apk.R;
  16. import eVVM.apk.mvp.MvpActivity;
  17. import eVVM.apk.ui.bean.ModelListBean;
  18. import eVVM.apk.ui.bean.VerificationCodeBean;
  19. import eVVM.apk.ui.bean.VnDetailBean;
  20. import eVVM.apk.ui.webview.WebActivity;
  21. import eVVM.apk.widget.ZoomView;
  22. public class VnReportDetailActivity extends MvpActivity<VnDetailPresenter> implements VnDetailContract.View {
  23. @BindView(R.id.vndetail_tv_vncode)
  24. TextView vndetailTvVncode;
  25. @BindView(R.id.vndetail_tv_vndate)
  26. TextView vndetailTvVndate;
  27. @BindView(R.id.vndetail_tv_factoryName)
  28. TextView vndetailTvFactoryName;
  29. @BindView(R.id.vndetail_tv_gmpName)
  30. TextView vndetailTvGmpName;
  31. @BindView(R.id.vndetail_tv_gmpPath)
  32. TextView vndetailTvGmpPath;
  33. @BindView(R.id.vndetail_tv_hospitalName)
  34. TextView vndetailTvHospitalName;
  35. @BindView(R.id.vndetail_tv_doctorName)
  36. TextView vndetailTvDoctorName;
  37. @BindView(R.id.vndetail_tv_doctorTelephone)
  38. TextView vndetailTvDoctorTelephone;
  39. @BindView(R.id.vndetail_tv_chatImage)
  40. ImageView vndetailTvChatImage;
  41. @BindView(R.id.vndetail_tv_othervn1)
  42. TextView vndetailTvOthervn1;
  43. @BindView(R.id.vndetail_tv_othervn2)
  44. TextView vndetailTvOthervn2;
  45. @BindView(R.id.vndetail_tv_othervn3)
  46. TextView vndetailTvOthervn3;
  47. @BindView(R.id.vndetail_iv_tipsimg)
  48. ImageView vndetailIvTipsimg;
  49. @BindView(R.id.vndetail_tv_tips)
  50. TextView vndetailTvTips;
  51. @BindView(R.id.vndetail_tv_disclaimer)
  52. TextView vndetailTvDisclaimer;
  53. @BindView(R.id.zv_report)
  54. ZoomView myzoomview;
  55. @BindView(R.id.vndetail_tv_vnname)
  56. TextView vndetailTvVnname;
  57. @BindView(R.id.vndetail_tv_vnsex)
  58. TextView vndetailTvVnsex;
  59. @BindView(R.id.vndetail_tv_vnbirthday)
  60. TextView vndetailTvVnbirthday;
  61. @BindView(R.id.vndetail_tv_vncodeid)
  62. TextView vndetailTvVncodeid;
  63. @BindView(R.id.vndetail_tv_vnjianhuren)
  64. TextView vndetailTvVnjianhuren;
  65. @BindView(R.id.vndetail_tv_vnphone)
  66. TextView vndetailTvVnphone;
  67. @BindView(R.id.vn_type)
  68. TextView vnType;
  69. @BindView(R.id.vn_tips)
  70. TextView vnTips;
  71. @Override
  72. protected int getLayoutId() {
  73. return R.layout.activity_vn_report_detail;
  74. }
  75. @Override
  76. protected int getTitleId() {
  77. return R.id.tb_vndetail_title;
  78. }
  79. @Override
  80. protected void initView() {
  81. }
  82. @Override
  83. protected void initData() {
  84. Intent in = getIntent();
  85. showLoading();
  86. String vnchipNumber = in.getStringExtra("VnchipNumber");
  87. getPresenter().getDetail(vnchipNumber);
  88. }
  89. @Override
  90. protected VnDetailPresenter createPresenter() {
  91. return new VnDetailPresenter();
  92. }
  93. @Override
  94. public void getDetailError(String msg) {
  95. showComplete();
  96. toast(msg);
  97. finish();
  98. }
  99. @Override
  100. public void getDetailSuccess(VnDetailBean data) {
  101. showComplete();
  102. VnDetailBean.DataBean dataBean = data.getData();
  103. //给页面赋值
  104. setViewData(dataBean);
  105. // toast(data.getData().toString());
  106. i("getDetailSuccess", data.getData().toString());
  107. }
  108. @OnClick({R.id.vndetail_bt_magnifier})
  109. public void onViewClicked(View view) {
  110. switch (view.getId()) {
  111. case R.id.vndetail_bt_magnifier:
  112. //放大
  113. myzoomview.magnifier();
  114. break;
  115. }
  116. }
  117. @Override
  118. public void getSendMailError(String msg) {
  119. }
  120. @Override
  121. public void getSendMailSuccess(VnDetailBean data) {
  122. }
  123. @Override
  124. public void getmlistError(String msg) {
  125. }
  126. @Override
  127. public void getmlistSuccess(ModelListBean data) {
  128. }
  129. @Override
  130. public void getToReviewError(String msg) {
  131. }
  132. @Override
  133. public void getToReviewSuccess(VerificationCodeBean data) {
  134. }
  135. private void setViewData(final VnDetailBean.DataBean dataBean) {
  136. vndetailTvVnname.setText(TextUtils.isEmpty(dataBean.getInoculatroUserName()) ? "N/A" : "" + dataBean.getInoculatroUserName());
  137. vndetailTvVnsex.setText(TextUtils.isEmpty(dataBean.getInoculatroSex()) ? "N/A" : "" + dataBean.getInoculatroSex());
  138. vndetailTvVnbirthday.setText(TextUtils.isEmpty(dataBean.getInoculatroBirthdate()) ? "N/A" : "" + dataBean.getInoculatroBirthdate());
  139. vndetailTvVncodeid.setText(TextUtils.isEmpty(dataBean.getInoculatroId()) ? "N/A" : "" + dataBean.getInoculatroId());
  140. vndetailTvVnjianhuren.setText("N/A");
  141. vndetailTvVnphone.setText(TextUtils.isEmpty(dataBean.getInoculatroTelePhone()) ? "N/A" : "" + dataBean.getInoculatroTelePhone());
  142. vnTips.setText("提示:温度曲线位于绿色区域为正常;温度曲线位于黄色区域,需做风险评估;温度曲线位于红色区域,且时间累计超过指定时限,应立即停止使用该疫苗产品,启动复核程序。");
  143. if (dataBean.getType() == 2) {
  144. vnType.setText("可用性分析:预警");
  145. } else if (dataBean.getType() == 3) {
  146. vnType.setText("可用性分析:需复核");
  147. } else {
  148. vnType.setText("可用性分析:未见异常");
  149. }
  150. //vndetailTvVncode.setText("evvm Code " + dataBean.getCode());
  151. /* String codeStr = "";
  152. for (int i = 0; i < dataBean.getCodeX().length(); i++) {
  153. codeStr = codeStr + "*";
  154. }*/
  155. SpannableString spancode = new SpannableString("报告编号 " + dataBean.getCodeX());
  156. spancode.setSpan(new ClickableSpan() {
  157. @Override
  158. public void onClick(View view) {
  159. //点击的响应事件
  160. /* if (dataBean.getCodeX() == null || TextUtils.isEmpty(dataBean.getCodeX())) {
  161. toast("你没有授权,请进行注册");
  162. } else {
  163. Intent in = new Intent(VnReportDetailActivity.this, WebActivity.class);
  164. in.putExtra("WebViewUrl", "" + dataBean.getCodeX() + "");
  165. startActivity(in);
  166. }*/
  167. }
  168. }, 10, 10 + dataBean.getCodeX().length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
  169. vndetailTvVncode.setText(spancode);
  170. vndetailTvVncode.setMovementMethod(LinkMovementMethod.getInstance());//开始响应点击事件
  171. if (dataBean.getDatetime() != null) {
  172. vndetailTvVndate.setText(dataBean.getDatetime());
  173. }
  174. vndetailTvFactoryName.setText("" + dataBean.getFactoryName());
  175. vndetailTvHospitalName.setText("" + dataBean.getHospitalName());
  176. vndetailTvDoctorName.setText("" + dataBean.getDoctorName());
  177. vndetailTvDoctorTelephone.setText("" + dataBean.getDoctorTelephone());
  178. vndetailTvChatImage.setScaleType(ImageView.ScaleType.CENTER);
  179. if (!TextUtils.isEmpty(dataBean.getChatImageUrl())) {
  180. ImageLoader.loadImage(vndetailTvChatImage, dataBean.getChatImageUrl());
  181. }
  182. SpannableString spanGmpPath = new SpannableString(TextUtils.isEmpty(dataBean.getGmpName()) ? "N/A" : dataBean.getGmpName());
  183. spanGmpPath.setSpan(new ClickableSpan() {
  184. @Override
  185. public void onClick(View view) {
  186. //点击的响应事件
  187. if (dataBean.getGmpPath() == null || TextUtils.isEmpty(dataBean.getGmpPath())) {
  188. toast("暂时无法提供,需索取");
  189. } else {
  190. Intent in = new Intent(VnReportDetailActivity.this, WebActivity.class);
  191. in.putExtra("WebViewUrl", "" + dataBean.getGmpPath() + "");
  192. startActivity(in);
  193. }
  194. }
  195. }, 0, spanGmpPath.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
  196. vndetailTvGmpName.setText(spanGmpPath);
  197. vndetailTvGmpName.setMovementMethod(LinkMovementMethod.getInstance());//开始响应点击事件
  198. SpannableString spanvndetailTvOthervn0 = new SpannableString("点击查看");
  199. spanvndetailTvOthervn0.setSpan(new ClickableSpan() {
  200. @Override
  201. public void onClick(View view) {
  202. //点击的响应事件
  203. if (dataBean.getBatchCertificate() == null || TextUtils.isEmpty(dataBean.getBatchCertificate())) {
  204. toast("暂时无法提供,需索取");
  205. } else {
  206. Intent in = new Intent(VnReportDetailActivity.this, WebActivity.class);
  207. in.putExtra("WebViewUrl", "" + dataBean.getBatchCertificate() + "");
  208. startActivity(in);
  209. }
  210. }
  211. }, 0, spanvndetailTvOthervn0.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
  212. vndetailTvGmpPath.setText(spanvndetailTvOthervn0);
  213. vndetailTvGmpPath.setMovementMethod(LinkMovementMethod.getInstance());//开始响应点击事件
  214. SpannableString spanvndetailTvOthervn1 = new SpannableString("点击查询");
  215. spanvndetailTvOthervn1.setSpan(new ClickableSpan() {
  216. @Override
  217. public void onClick(View view) {
  218. //点击的响应事件
  219. if (dataBean.getSameBatchOtherColdChain() == null || TextUtils.isEmpty(dataBean.getSameBatchOtherColdChain())) {
  220. toast("暂时无法提供,需索取");
  221. } else {
  222. Intent in = new Intent(VnReportDetailActivity.this, WebActivity.class);
  223. in.putExtra("WebViewUrl", "" + dataBean.getSameBatchOtherColdChain() + "");
  224. startActivity(in);
  225. }
  226. }
  227. }, 0, spanvndetailTvOthervn1.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
  228. vndetailTvOthervn1.setText(spanvndetailTvOthervn1);
  229. vndetailTvOthervn1.setMovementMethod(LinkMovementMethod.getInstance());//开始响应点击事件
  230. SpannableString spanvndetailTvOthervn2 = new SpannableString("点击查询");
  231. spanvndetailTvOthervn2.setSpan(new ClickableSpan() {
  232. @Override
  233. public void onClick(View view) {
  234. //点击的响应事件
  235. if (dataBean.getSameBatchOtherFlow() == null || TextUtils.isEmpty(dataBean.getSameBatchOtherFlow())) {
  236. toast("暂时无法提供,需索取");
  237. } else {
  238. Intent in = new Intent(VnReportDetailActivity.this, WebActivity.class);
  239. in.putExtra("WebViewUrl", "" + dataBean.getSameBatchOtherFlow() + "");
  240. startActivity(in);
  241. }
  242. }
  243. }, 0, spanvndetailTvOthervn2.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
  244. vndetailTvOthervn2.setText(spanvndetailTvOthervn2);
  245. vndetailTvOthervn2.setMovementMethod(LinkMovementMethod.getInstance());//开始响应点击事件
  246. SpannableString spanvndetailTvOthervn3 = new SpannableString("点击查询");
  247. spanvndetailTvOthervn3.setSpan(new ClickableSpan() {
  248. @Override
  249. public void onClick(View view) {
  250. //点击的响应事件
  251. if (dataBean.getSameFactoryOtherVaccines() == null || TextUtils.isEmpty(dataBean.getSameFactoryOtherVaccines())) {
  252. toast("暂时无法提供,需索取");
  253. } else {
  254. Intent in = new Intent(VnReportDetailActivity.this, WebActivity.class);
  255. in.putExtra("WebViewUrl", "" + dataBean.getSameFactoryOtherVaccines() + "");
  256. startActivity(in);
  257. }
  258. }
  259. }, 0, spanvndetailTvOthervn3.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
  260. vndetailTvOthervn3.setText(spanvndetailTvOthervn3);
  261. vndetailTvOthervn3.setMovementMethod(LinkMovementMethod.getInstance());//开始响应点击事件
  262. }
  263. public static void i(String tag, String msg) { //信息太长,分段打印
  264. //因为String的length是字符数量不是字节数量所以为了防止中文字符过多,
  265. // 把4*1024的MAX字节打印长度改为2001字符数
  266. int max_str_length = 2001 - tag.length();
  267. //大于4000时
  268. while (msg.length() > max_str_length) {
  269. Log.i(tag, msg.substring(0, max_str_length));
  270. msg = msg.substring(max_str_length);
  271. }
  272. //剩余部分
  273. Log.i(tag, msg);
  274. }
  275. }