53c739e9585d802e4ffaf677c11e168e87e0930a.svn-base 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816
  1. package eVVM.apk.ui.vaccination;
  2. import android.animation.Animator;
  3. import android.animation.ObjectAnimator;
  4. import android.annotation.SuppressLint;
  5. import android.app.Dialog;
  6. import android.content.Intent;
  7. import android.os.Build;
  8. import android.os.Handler;
  9. import android.os.Message;
  10. import android.support.annotation.RequiresApi;
  11. import android.text.SpannableString;
  12. import android.text.SpannableStringBuilder;
  13. import android.text.Spanned;
  14. import android.text.TextUtils;
  15. import android.text.method.LinkMovementMethod;
  16. import android.text.style.ClickableSpan;
  17. import android.text.style.SuperscriptSpan;
  18. import android.util.Log;
  19. import android.view.View;
  20. import android.view.animation.Animation;
  21. import android.widget.Button;
  22. import android.widget.ImageView;
  23. import android.widget.LinearLayout;
  24. import android.widget.TextView;
  25. import com.google.gson.Gson;
  26. import com.hjq.base.BaseDialog;
  27. import com.hjq.toast.ToastUtils;
  28. import org.json.JSONArray;
  29. import org.json.JSONException;
  30. import java.text.DateFormat;
  31. import java.text.SimpleDateFormat;
  32. import java.util.ArrayList;
  33. import java.util.Date;
  34. import java.util.List;
  35. import butterknife.BindView;
  36. import butterknife.OnClick;
  37. import eVVM.apk.R;
  38. import eVVM.apk.db.nrcreportdb.NRCReportDaoOpe;
  39. import eVVM.apk.entity.NRCReportEntity;
  40. import eVVM.apk.helper.MyClickListener;
  41. import eVVM.apk.helper.SPUtils;
  42. import eVVM.apk.helper.SoundPoolHelper;
  43. import eVVM.apk.mvp.MvpActivity;
  44. import eVVM.apk.ui.bean.ModelListBean;
  45. import eVVM.apk.ui.bean.VerificationCodeBean;
  46. import eVVM.apk.ui.bean.VnDetailBean;
  47. import eVVM.apk.ui.report.vndetail.VnDetailContract;
  48. import eVVM.apk.ui.report.vndetail.VnDetailPresenter;
  49. import eVVM.apk.ui.webview.WebActivity;
  50. import eVVM.apk.widget.EvvmMsgDiago;
  51. import eVVM.apk.widget.ZoomView;
  52. public class VnReportDetailForNctActivity extends MvpActivity<VnDetailPresenter> implements VnDetailContract.View, MyClickListener.MyClickCallBack {
  53. @BindView(R.id.vndetail_tv_vnname)
  54. TextView vndetailTvVnname;
  55. @BindView(R.id.vndetail_tv_vnsc)
  56. TextView vndetailTvVnsc;
  57. @BindView(R.id.vndetail_tv_vncreatdate)
  58. TextView vndetailTvVncreatdate;
  59. @BindView(R.id.vndetail_tv_vnvalid)
  60. TextView vndetailTvVnvalid;
  61. @BindView(R.id.renyuan_type)
  62. TextView renyuanType;
  63. @BindView(R.id.vndetail_tv_szname)
  64. TextView vndetailTvSzname;
  65. @BindView(R.id.vndetail_tv_szsex)
  66. TextView vndetailTvSzsex;
  67. @BindView(R.id.vndetail_tv_szbirthday)
  68. TextView vndetailTvSzbirthday;
  69. @BindView(R.id.vndetail_tv_szid)
  70. TextView vndetailTvSzid;
  71. @BindView(R.id.vndetail_tv_szguardian)
  72. TextView vndetailTvSzguardian;
  73. @BindView(R.id.shouzhongrenyuan)
  74. LinearLayout shouzhongrenyuan;
  75. @BindView(R.id.jiezhognrenyuan)
  76. LinearLayout jiezhognrenyuan;
  77. @BindView(R.id.vndetail_tv_szTelephone)
  78. TextView vndetailTvSzTelephone;
  79. private boolean isWarning = true;
  80. private VnDetailBean.DataBean chipModel = null;
  81. private SoundPoolHelper soundPoolHelper;
  82. @BindView(R.id.vndetail_tv_typemsg)
  83. TextView vndetailTvTypemsg;
  84. @BindView(R.id.vndetail_tv_vncode)
  85. TextView vndetailTvVncode;
  86. @BindView(R.id.vndetail_tv_vndate)
  87. TextView vndetailTvVndate;
  88. @BindView(R.id.vndetail_tv_factoryName)
  89. TextView vndetailTvFactoryName;
  90. @BindView(R.id.vndetail_tv_gmpName)
  91. TextView vndetailTvGmpName;
  92. @BindView(R.id.vndetail_tv_gmpPath)
  93. TextView vndetailTvGmpPath;
  94. @BindView(R.id.vndetail_tv_hospitalName)
  95. TextView vndetailTvHospitalName;
  96. @BindView(R.id.vndetail_tv_doctorName)
  97. TextView vndetailTvDoctorName;
  98. @BindView(R.id.vndetail_tv_doctorTelephone)
  99. TextView vndetailTvDoctorTelephone;
  100. @BindView(R.id.vndetail_tv_chatImage)
  101. ImageView vndetailTvChatImage;
  102. @BindView(R.id.vndetail_tv_othervn1)
  103. TextView vndetailTvOthervn1;
  104. @BindView(R.id.vndetail_tv_othervn2)
  105. TextView vndetailTvOthervn2;
  106. @BindView(R.id.vndetail_tv_othervn3)
  107. TextView vndetailTvOthervn3;
  108. @BindView(R.id.vndetail_iv_tipsimg)
  109. ImageView vndetailIvTipsimg;
  110. @BindView(R.id.vndetail_tv_tips)
  111. TextView vndetailTvTips;
  112. @BindView(R.id.vndetail_tv_disclaimer)
  113. TextView vndetailTvDisclaimer;
  114. @BindView(R.id.zv_report)
  115. ZoomView myzoomview;
  116. @BindView(R.id.vndetail_tv_chatImage_title)
  117. TextView vndetail_tv_chatImage_title;
  118. @BindView(R.id.coverview)
  119. TextView coverview;
  120. @BindView(R.id.next_btn_report)
  121. Button nextbtn;
  122. private int status;
  123. @BindView(R.id.vndetail_tv_tt)
  124. TextView vndetailTvTitle;
  125. @BindView(R.id.vndetail_tv_title)
  126. TextView vndetailTvtt;
  127. private List<TextView> textViews;
  128. private List<TextView> yujingList;
  129. private List<TextView> vntextviewList;
  130. private List<TextView> zcList;
  131. @Override
  132. protected int getLayoutId() {
  133. return R.layout.activity_vn_report_detail_for_nct;
  134. }
  135. @Override
  136. protected int getTitleId() {
  137. return R.id.tb_vndetail_title;
  138. }
  139. @Override
  140. protected void initView() {
  141. myzoomview.setOnTouchListener(new MyClickListener(this));
  142. soundPoolHelper = new SoundPoolHelper(4, SoundPoolHelper.TYPE_MUSIC)
  143. .setRingtoneType(SoundPoolHelper.RING_TYPE_MUSIC)
  144. .loadDefault(VnReportDetailForNctActivity.this)
  145. .load(VnReportDetailForNctActivity.this, "rewarning", R.raw.rewarning)
  146. .load(VnReportDetailForNctActivity.this, "renormal", R.raw.renormal);
  147. //设置上标
  148. SpannableStringBuilder spanBuilder = new SpannableStringBuilder(vndetailTvtt.getText());
  149. spanBuilder.setSpan(new SuperscriptSpan(), 5, 6, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
  150. vndetailTvtt.setText(spanBuilder);
  151. List<NRCReportEntity> nrcReportEntities = NRCReportDaoOpe.queryAll(this);
  152. Log.e("nrcReportEntities", "" + nrcReportEntities.size() + " " + nrcReportEntities.toString());
  153. if (nrcReportEntities.size() == 1) {
  154. nextbtn.setText("退出");
  155. } else {
  156. nextbtn.setText("下一个");
  157. }
  158. textViews = new ArrayList<>();
  159. //左边的
  160. vntextviewList = new ArrayList<>();
  161. vntextviewList.add(vndetailTvVnname);
  162. vntextviewList.add(vndetailTvVnsc);
  163. vntextviewList.add(vndetailTvFactoryName);
  164. vntextviewList.add(vndetailTvGmpName);
  165. vntextviewList.add(vndetailTvGmpPath);
  166. vntextviewList.add(vndetailTvVncreatdate);
  167. vntextviewList.add(vndetailTvVnvalid);
  168. //不正常
  169. yujingList = new ArrayList<>();
  170. yujingList.add(vndetailTvHospitalName);
  171. yujingList.add(vndetailTvDoctorName);
  172. yujingList.add(vndetailTvDoctorTelephone);
  173. //正常
  174. zcList = new ArrayList<>();
  175. zcList.add(vndetailTvSzname);
  176. zcList.add(vndetailTvSzsex);
  177. zcList.add(vndetailTvSzbirthday);
  178. zcList.add(vndetailTvSzid);
  179. zcList.add(vndetailTvSzguardian);
  180. zcList.add(vndetailTvSzTelephone);
  181. }
  182. @Override
  183. public void onLeftClick(View v) {
  184. super.onLeftClick(v);
  185. /*if (isWarning) {
  186. if (status == 6 || status == 7 || status == 8) {
  187. } else {
  188. startActivityFinish(ReadingActivity.class);
  189. }
  190. }*/
  191. NRCReportDaoOpe.deleteAllData(this);
  192. //finish();
  193. }
  194. @OnClick({R.id.next_btn_report, R.id.vndetail_bt_magnifier})
  195. public void onViewClicked(View view) {
  196. switch (view.getId()) {
  197. case R.id.next_btn_report:
  198. nextorexit();
  199. /* if (status == 4) {
  200. startActivityFinish(ReadingActivity.class);
  201. } else {
  202. if (status == 6 || status == 7 || status == 8) {
  203. startActivityFinish(HomeActivity.class);
  204. }
  205. }*/
  206. break;
  207. case R.id.vndetail_bt_magnifier:
  208. //放大
  209. myzoomview.magnifier();
  210. break;
  211. }
  212. }
  213. private void nextorexit() {
  214. List<NRCReportEntity> nrcReportEntities = NRCReportDaoOpe.queryAll(this);
  215. NRCReportDaoOpe.deleteData(this, nrcReportEntities.get(0));
  216. if (nrcReportEntities.size() == 1) {
  217. //nextbtn.setText("退出");
  218. finish();
  219. } else {
  220. VnDetailBean vnDetailBean = new Gson().fromJson(nrcReportEntities.get(1).getVnDetailBean(), VnDetailBean.class);
  221. Intent in = new Intent(getActivity(), VnReportDetailForNctActivity.class);
  222. in.putExtra("dataBean", vnDetailBean.getData());
  223. in.putExtra("isWarning", nrcReportEntities.get(1).getIsWarning());
  224. in.putExtra("status", vnDetailBean.getData().getStatus());
  225. finish();
  226. startActivity(in);
  227. }
  228. }
  229. private Handler warninghandler = new Handler() {
  230. public void handlerMessage(Message msg) {
  231. }
  232. };
  233. private Handler normalhandler = new Handler() {
  234. public void handlerMessage(Message msg) {
  235. }
  236. };
  237. private Runnable warningRunnable = new Runnable() {
  238. @Override
  239. public void run() {
  240. //用户2秒没操作了
  241. Log.e("DoctorVnReportActivity", "两秒未操作");
  242. // startActivityFinish(ReadingActivity.class);
  243. // nextorexit();
  244. }
  245. };
  246. private Runnable normalRunnable = new Runnable() {
  247. @Override
  248. public void run() {
  249. //用户2秒没操作了
  250. Log.e("DoctorVnReportActivity", "两秒未操作");
  251. // finish();
  252. nextorexit();
  253. }
  254. };
  255. private int checki = 1;
  256. @SuppressLint("WrongConstant")
  257. @Override
  258. protected void initData() {
  259. Intent in = getIntent();
  260. chipModel = (VnDetailBean.DataBean) in.getSerializableExtra("dataBean");
  261. //给页面赋值
  262. setViewData(chipModel);
  263. isWarning = in.getBooleanExtra("isWarning", true);
  264. status = in.getIntExtra("status", 0);
  265. int readErrorCounts = in.getIntExtra("readErrorCounts", -1);
  266. if (readErrorCounts != 0 && readErrorCounts != -1) {
  267. ToastUtils.show("检测到无网期间有" + readErrorCounts + "个芯片有异常");
  268. }
  269. if (status == 4) {
  270. renyuanType.setText("接种人员");
  271. shouzhongrenyuan.setVisibility(View.GONE);
  272. jiezhognrenyuan.setVisibility(View.VISIBLE);
  273. textViews.addAll(vntextviewList);
  274. textViews.addAll(yujingList);
  275. } else {
  276. if (status == 6 || status == 7) {
  277. renyuanType.setText("受种人员");
  278. shouzhongrenyuan.setVisibility(View.VISIBLE);
  279. jiezhognrenyuan.setVisibility(View.GONE);
  280. textViews.addAll(vntextviewList);
  281. textViews.addAll(zcList);
  282. } else if (status == 8) {
  283. renyuanType.setText("接种人员");
  284. shouzhongrenyuan.setVisibility(View.GONE);
  285. jiezhognrenyuan.setVisibility(View.VISIBLE);
  286. textViews.addAll(vntextviewList);
  287. textViews.addAll(yujingList);
  288. }
  289. }
  290. textJump(textViews); //开始字符跳动
  291. //设置验证信息
  292. vndetailTvChatImage.setImageResource(R.mipmap.report_check_ico);
  293. vndetailTvTypemsg.setText("疫苗企业验证通过");
  294. //透明动画
  295. ObjectAnimator animator = ObjectAnimator.ofFloat(vndetailTvChatImage, "alpha", 0.1f, 1f);
  296. animator.setDuration(300); //一秒闪一次
  297. animator.setRepeatCount(10); //总共闪十次
  298. animator.setRepeatMode(Animation.REVERSE);
  299. //为动画设置监听
  300. animator.addListener(new Animator.AnimatorListener() {
  301. @Override
  302. public void onAnimationStart(Animator animation) {
  303. }
  304. @RequiresApi(api = Build.VERSION_CODES.KITKAT)
  305. @Override
  306. public void onAnimationEnd(Animator animation) {
  307. //动画结束
  308. animation.resume();
  309. /*AlphaAnimation alpha = new AlphaAnimation(0.1F, 1F);
  310. alpha.setDuration(0);
  311. alpha.setFillAfter(true);
  312. vndetailTvChatImage.startAnimation(alpha);*/
  313. setPageView(); //设置扫描到的信息
  314. }
  315. @Override
  316. public void onAnimationCancel(Animator animation) {
  317. }
  318. @Override
  319. public void onAnimationRepeat(Animator animation) {
  320. //动画重复时 下方进行验证提示
  321. //Log.e("onAnimationRepeat","onAnimationRepeat");
  322. checki++;
  323. setCheckText(checki);
  324. }
  325. });
  326. animator.start();
  327. }
  328. private void setPageView() {
  329. if (status == 4 || status == 8) {
  330. // findViewById(R.id.btn_ll).setVisibility(View.VISIBLE);
  331. vndetailTvTypemsg.setText("此疫苗需要进一步验证,请等待厂家复核");
  332. //vndetailTvTypemsg.setTextColor(Color.RED);
  333. vndetailTvChatImage.setImageResource(R.mipmap.report_warning_ico);
  334. coverview.setText("提示:温度追溯结果显示,该疫苗冷链可能有超温现象,厂家已收到相关信息。请立即停止使用该疫苗,等待复核结果。");
  335. //播放提示语
  336. postDelayed(new Runnable() {
  337. @Override
  338. public void run() {
  339. soundPoolHelper.play("rewarning", false);
  340. }
  341. }, 500);
  342. getWarningOper();
  343. } else {
  344. if (status == 6 || status == 7) {
  345. // findViewById(R.id.btn_ll).setVisibility(View.VISIBLE);
  346. vndetailTvTypemsg.setText(
  347. "疫苗信息已验证通过,冷链信息未发现异常,请核对疫苗内外包装与本报告所载数据是否一致,并按\"三查七对\"的规定使用");
  348. // vndetailTvTypemsg.setTextColor(Color.GREEN);
  349. vndetailTvChatImage.setImageResource(R.mipmap.report_normal_ico);
  350. /*vndetailTvChatImage.setVisibility(View.GONE);
  351. vndetail_tv_chatImage_title.setVisibility(View.GONE);*/
  352. coverview.setText("提示:注射疫苗后,请用注射专用创口贴或消毒棉球轻压针眼几分钟,至不出血。请勿揉搓接种部位。接种疫苗后休息30分钟再离开。");
  353. postDelayed(new Runnable() {
  354. @Override
  355. public void run() {
  356. getnormalOper();
  357. }
  358. }, 20000);
  359. postDelayed(new Runnable() {
  360. @Override
  361. public void run() {
  362. soundPoolHelper.play("renormal", false);
  363. }
  364. }, 500);
  365. normalhandler.postDelayed(normalRunnable, 1000 * 60);
  366. }/* else if (status == 8) {
  367. vndetailTvTypemsg.setText("此疫苗需要进一步验证,请等待厂家复核");
  368. vndetailTvTypemsg.setTextColor(Color.RED);
  369. vndetailTvChatImage.setImageResource(R.mipmap.report_warning_ico);
  370. coverview.setText("提示:温度追溯结果显示,该疫苗冷链可能有超温现象,厂家已收到相关信息。请立即停止使用该疫苗,等待复核结果。");
  371. postDelayed(new Runnable() {
  372. @Override
  373. public void run() {
  374. soundPoolHelper.play("rewarning", false);
  375. }
  376. }, 500);
  377. normalhandler.postDelayed(normalRunnable, 1000 * 60);
  378. }*/
  379. // normalhandler.postDelayed(normalRunnable, 1000 * 10);
  380. }
  381. }
  382. private void setCheckText(int checki) {
  383. switch (checki) {
  384. case 1:
  385. vndetailTvTypemsg.setText("疫苗企业验证通过");
  386. break;
  387. case 2:
  388. vndetailTvTypemsg.setText("疫苗品种验证通过");
  389. break;
  390. case 3:
  391. vndetailTvTypemsg.setText("疫苗规格验证通过");
  392. break;
  393. case 4:
  394. vndetailTvTypemsg.setText("疫苗id验证通过");
  395. break;
  396. case 5:
  397. vndetailTvTypemsg.setText("疫苗冷链验证通过");
  398. break;
  399. case 6:
  400. vndetailTvTypemsg.setText("接种点验证通过");
  401. break;
  402. case 7:
  403. vndetailTvTypemsg.setText("医生验证通过");
  404. break;
  405. case 8:
  406. vndetailTvTypemsg.setText("受种者姓名验证通过");
  407. break;
  408. case 9:
  409. vndetailTvTypemsg.setText("受种者年龄验证通过");
  410. break;
  411. case 10:
  412. vndetailTvTypemsg.setText("受种者性别验证通过");
  413. break;
  414. default:
  415. break;
  416. }
  417. }
  418. private void getnormalOper() {
  419. final BaseDialog normalDiago = new EvvmMsgDiago.Builder(this)
  420. .setTitle("pdf报告已自动保存到你指定的路径,医生已做好“三查七对”,并按规定完成接种,是否推送给受种者(监护人)?") // 标题可以不用填写
  421. .setConfirm("发送给家长")
  422. .setCancel("取消") // 设置 null 表示不显示取消按钮
  423. //.setAutoDismiss(false) // 设置点击按钮后不关闭对话框
  424. .setListener(new EvvmMsgDiago.OnListener() {
  425. @Override
  426. public void onConfirm(Dialog dialog) {
  427. String emailsOfInoculator = "";
  428. try {
  429. String str = (String) SPUtils.get("INOCULATOR_LIST", "");
  430. if (!str.equals("")) {
  431. JSONArray jsonArr = new JSONArray(str);
  432. for (int i = 0; i < jsonArr.length(); i++) {
  433. String arr[] = jsonArr.getString(i).split("▇");
  434. if (!arr[3].trim().equals("")) {
  435. emailsOfInoculator += arr[3] + ",";
  436. }
  437. }
  438. if (emailsOfInoculator.lastIndexOf(",") == emailsOfInoculator.length() - 1) {
  439. emailsOfInoculator = emailsOfInoculator.substring(0, emailsOfInoculator.length() - 1);
  440. }
  441. }
  442. } catch (JSONException e) {
  443. e.printStackTrace();
  444. }
  445. getPresenter().sendMailToInoculator(chipModel.getChipNumber(), emailsOfInoculator);
  446. }
  447. @Override
  448. public void onCancel(Dialog dialog) {
  449. //toast("取消了");
  450. }
  451. })
  452. .addOnDismissListener(new BaseDialog.OnDismissListener() {
  453. @Override
  454. public void onDismiss(BaseDialog dialog) {
  455. //toast("asfad");
  456. }
  457. })
  458. .show();
  459. postDelayed(new Runnable() {
  460. @Override
  461. public void run() {
  462. if (normalDiago.isShowing()) {
  463. normalDiago.dismiss();
  464. }
  465. }
  466. }, 30000);
  467. }
  468. private void getWarningOper() {
  469. final BaseDialog warningDiago = new EvvmMsgDiago.Builder(this)
  470. .setTitle("此疫苗需复核,请换支疫苗") // 标题可以不用填写
  471. .setConfirm("")
  472. .setCancel("") // 设置 null 表示不显示取消按钮
  473. //.setAutoDismiss(false) // 设置点击按钮后不关闭对话框
  474. .addOnDismissListener(new BaseDialog.OnDismissListener() {
  475. @Override
  476. public void onDismiss(BaseDialog dialog) {
  477. //toast("asfad");
  478. //warninghandler.postDelayed(warningRunnable, 1000 * 10);
  479. }
  480. })
  481. .show();
  482. postDelayed(new Runnable() {
  483. @Override
  484. public void run() {
  485. if (warningDiago.isShowing()) {
  486. warningDiago.dismiss();
  487. }
  488. }
  489. }, 5000);
  490. }
  491. private void setViewData(final VnDetailBean.DataBean dataBean) {
  492. vndetailTvTitle.setText(dataBean.getVaccineName() + "" + dataBean.getBatch());
  493. vndetailTvSzname.setText(TextUtils.isEmpty(dataBean.getInoculatroUserName()) ? "N/A" : "" + dataBean.getInoculatroUserName());
  494. vndetailTvSzsex.setText(TextUtils.isEmpty(dataBean.getInoculatroSex()) ? "N/A" : "" + dataBean.getInoculatroSex());
  495. vndetailTvSzbirthday.setText(TextUtils.isEmpty(dataBean.getInoculatroBirthdate()) ? "N/A" : "" + dataBean.getInoculatroBirthdate());
  496. vndetailTvSzid.setText(addZero(dataBean.getInoculatroId()));
  497. vndetailTvSzguardian.setText("N/A");
  498. vndetailTvSzTelephone.setText(TextUtils.isEmpty(dataBean.getInoculatroTelePhone()) ? "N/A" : "" + dataBean.getInoculatroTelePhone());
  499. vndetailTvVnname.setText(TextUtils.isEmpty(dataBean.getVaccineName()) ? "N/A" : dataBean.getVaccineName() + "");
  500. vndetailTvVnsc.setText(TextUtils.isEmpty(dataBean.getVaccineCategory()) ? "N/A" : dataBean.getVaccineCategory() + "");
  501. vndetailTvVncreatdate.setText(TextUtils.isEmpty(dataBean.getBeginDate()) ? "N/A" : dataBean.getBeginDate() + "");
  502. vndetailTvVnvalid.setText(TextUtils.isEmpty(dataBean.getVaccineExpiryDate()) ? "N/A" : dataBean.getVaccineExpiryDate());
  503. //vndetailTvVncode.setText("evvm Code " + dataBean.getCode());
  504. /* String codeStr = "";
  505. for (int i = 0; i < dataBean.getCodeX().length(); i++) {
  506. codeStr = codeStr + "*";
  507. }*/
  508. /* SpannableString spancode = new SpannableString("报告编号 " + dataBean.getCodeX());
  509. spancode.setSpan(new ClickableSpan() {
  510. @Override
  511. public void onClick(View view) {
  512. //点击的响应事件
  513. *//*if (dataBean.getCodeX() == null || TextUtils.isEmpty(dataBean.getCodeX())) {
  514. toast("你没有授权,请进行注册");
  515. } else {
  516. gotoWebActivity(dataBean.getCodeX());
  517. }*//*
  518. }
  519. }, 5, 5 + dataBean.getCodeX().length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);*/
  520. vndetailTvVncode.setText("报告编号 " + dataBean.getCodeX());
  521. // vndetailTvVncode.setMovementMethod(LinkMovementMethod.getInstance());//开始响应点击事件
  522. DateFormat format1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
  523. vndetailTvVndate.setText(format1.format(new Date()));
  524. vndetailTvFactoryName.setText("" + dataBean.getFactoryName());
  525. vndetailTvHospitalName.setText("" + dataBean.getHospitalName());
  526. vndetailTvDoctorName.setText("" + dataBean.getDoctorName());
  527. vndetailTvDoctorTelephone.setText("" + dataBean.getDoctorTelephone());
  528. vndetailTvChatImage.setScaleType(ImageView.ScaleType.CENTER);
  529. /*SpannableString spanGmpPath = new SpannableString(TextUtils.isEmpty(dataBean.getGmpName()) ? "N/A" : dataBean.getGmpName());
  530. spanGmpPath.setSpan(new ClickableSpan() {
  531. @Override
  532. public void onClick(View view) {
  533. //点击的响应事件
  534. if (dataBean.getGmpPath() == null || TextUtils.isEmpty(dataBean.getGmpPath())) {
  535. toast("暂时无法提供,需索取");
  536. } else {
  537. gotoWebActivity(dataBean.getGmpPath());
  538. }
  539. }
  540. }, 0, spanGmpPath.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);*/
  541. vndetailTvGmpName.setText(TextUtils.isEmpty(dataBean.getGmpName()) ? "N/A" : dataBean.getGmpName());
  542. //vndetailTvGmpName.setMovementMethod(LinkMovementMethod.getInstance());//开始响应点击事件
  543. SpannableString spanvndetailTvOthervn0 = new SpannableString("点击查看");
  544. spanvndetailTvOthervn0.setSpan(new ClickableSpan() {
  545. @Override
  546. public void onClick(View view) {
  547. //点击的响应事件
  548. if (dataBean.getBatchCertificate() == null || TextUtils.isEmpty(dataBean.getBatchCertificate())) {
  549. toast("暂时无法提供,需索取");
  550. } else {
  551. gotoWebActivity(dataBean.getBatchCertificate());
  552. }
  553. }
  554. }, 0, spanvndetailTvOthervn0.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
  555. vndetailTvGmpPath.setText(spanvndetailTvOthervn0);
  556. vndetailTvGmpPath.setMovementMethod(LinkMovementMethod.getInstance());//开始响应点击事件
  557. SpannableString spanvndetailTvOthervn1 = new SpannableString("点击查询");
  558. spanvndetailTvOthervn1.setSpan(new ClickableSpan() {
  559. @Override
  560. public void onClick(View view) {
  561. //点击的响应事件
  562. if (dataBean.getSameBatchOtherColdChain() == null || TextUtils.isEmpty(dataBean.getSameBatchOtherColdChain())) {
  563. toast("暂时无法提供,需索取");
  564. } else {
  565. gotoWebActivity(dataBean.getSameBatchOtherColdChain());
  566. }
  567. }
  568. }, 0, spanvndetailTvOthervn1.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
  569. vndetailTvOthervn1.setText(spanvndetailTvOthervn1);
  570. vndetailTvOthervn1.setMovementMethod(LinkMovementMethod.getInstance());//开始响应点击事件
  571. SpannableString spanvndetailTvOthervn2 = new SpannableString("点击查询");
  572. spanvndetailTvOthervn2.setSpan(new ClickableSpan() {
  573. @Override
  574. public void onClick(View view) {
  575. //点击的响应事件
  576. if (dataBean.getSameBatchOtherFlow() == null || TextUtils.isEmpty(dataBean.getSameBatchOtherFlow())) {
  577. toast("暂时无法提供,需索取");
  578. } else {
  579. gotoWebActivity(dataBean.getSameBatchOtherFlow());
  580. }
  581. }
  582. }, 0, spanvndetailTvOthervn2.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
  583. vndetailTvOthervn2.setText(spanvndetailTvOthervn2);
  584. vndetailTvOthervn2.setMovementMethod(LinkMovementMethod.getInstance());//开始响应点击事件
  585. SpannableString spanvndetailTvOthervn3 = new SpannableString("点击查询");
  586. spanvndetailTvOthervn3.setSpan(new ClickableSpan() {
  587. @Override
  588. public void onClick(View view) {
  589. //点击的响应事件
  590. if (dataBean.getSameFactoryOtherVaccines() == null || TextUtils.isEmpty(dataBean.getSameFactoryOtherVaccines())) {
  591. toast("暂时无法提供,需索取");
  592. } else {
  593. gotoWebActivity(dataBean.getSameFactoryOtherVaccines());
  594. }
  595. }
  596. }, 0, spanvndetailTvOthervn3.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
  597. vndetailTvOthervn3.setText(spanvndetailTvOthervn3);
  598. vndetailTvOthervn3.setMovementMethod(LinkMovementMethod.getInstance());//开始响应点击事件
  599. }
  600. private void gotoWebActivity(String path) {
  601. if (isWarning) {
  602. warninghandler.removeCallbacks(warningRunnable);
  603. } else {
  604. normalhandler.removeCallbacks(normalRunnable);
  605. }
  606. Intent in = new Intent(VnReportDetailForNctActivity.this, WebActivity.class);
  607. in.putExtra("WebViewUrl", "" + path + "");
  608. startActivity(in);
  609. }
  610. @Override
  611. protected VnDetailPresenter createPresenter() {
  612. return new VnDetailPresenter();
  613. }
  614. @Override
  615. public void getSendMailSuccess(VnDetailBean data) {
  616. toast("邮件已发送");
  617. //finish();
  618. }
  619. @Override
  620. public void getmlistError(String msg) {
  621. toast("邮件发送失败");
  622. }
  623. @Override
  624. public void getmlistSuccess(ModelListBean data) {
  625. }
  626. @Override
  627. public void getToReviewError(String msg) {
  628. }
  629. @Override
  630. public void getToReviewSuccess(VerificationCodeBean data) {
  631. }
  632. @Override
  633. public void getDetailError(String msg) {
  634. }
  635. @Override
  636. public void getDetailSuccess(VnDetailBean data) {
  637. }
  638. @Override
  639. public void getSendMailError(String msg) {
  640. toast(msg);
  641. }
  642. public String addZero(String msg) {
  643. //Log.e("addZero1",""+msg + " "+msg.length());
  644. if (TextUtils.isEmpty(msg)) {
  645. return "N/A";
  646. }
  647. if (msg.length() >= 11) {
  648. return msg;
  649. } else {
  650. String remsg = msg;
  651. for (int i = 0; i < 11 - msg.length(); i++) {
  652. remsg = "0" + remsg;
  653. }
  654. // Log.e("addZero",""+remsg + " "+remsg.length());
  655. return remsg;
  656. }
  657. }
  658. public static void i(String tag, String msg) { //信息太长,分段打印
  659. //因为String的length是字符数量不是字节数量所以为了防止中文字符过多,
  660. // 把4*1024的MAX字节打印长度改为2001字符数
  661. int max_str_length = 2001 - tag.length();
  662. //大于4000时
  663. while (msg.length() > max_str_length) {
  664. Log.i(tag, msg.substring(0, max_str_length));
  665. msg = msg.substring(max_str_length);
  666. }
  667. //剩余部分
  668. Log.i(tag, msg);
  669. }
  670. @Override
  671. protected void onDestroy() {
  672. if (status == 6 || status == 7 || status == 8) {
  673. SPUtils.remove("INOCULATOR_LIST");
  674. }
  675. // soundPoolHelper.release();
  676. normalhandler.removeCallbacksAndMessages(null);
  677. warninghandler.removeCallbacksAndMessages(null);
  678. super.onDestroy();
  679. }
  680. @Override
  681. public void onDown() {
  682. Log.e("DoctorVnReportActivity", "down");
  683. if (isWarning) {
  684. warninghandler.removeCallbacks(warningRunnable);
  685. } else {
  686. normalhandler.removeCallbacks(normalRunnable);
  687. }
  688. }
  689. @Override
  690. public void onUp() {
  691. Log.e("DoctorVnReportActivity", "up");
  692. if (isWarning) {
  693. warninghandler.postDelayed(warningRunnable, 1000 * 60);
  694. } else {
  695. normalhandler.postDelayed(normalRunnable, 1000 * 60);
  696. }
  697. }
  698. @Override
  699. public void oneClick() {
  700. }
  701. @Override
  702. public void doubleClick() {
  703. }
  704. public void textJump(final List<TextView> tvList) {
  705. new Thread(new Runnable() {
  706. @Override
  707. public void run() {
  708. for (int i = 0; i < tvList.size(); i++) {
  709. try {
  710. Thread.sleep(3000 / tvList.size());
  711. } catch (InterruptedException e) {
  712. e.printStackTrace();
  713. }
  714. final int finalI = i;
  715. if (getActivity() != null) {
  716. runOnUiThread(new Runnable() {
  717. @Override
  718. public void run() {
  719. tvList.get(finalI).setVisibility(View.VISIBLE);
  720. }
  721. });
  722. }
  723. }
  724. }
  725. }).start();
  726. }
  727. }