02081366d16221cc5d6b3275355a01c83c933369.svn-base 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436
  1. package eVVM.apk.ui.report;
  2. import android.app.Dialog;
  3. import android.content.Intent;
  4. import android.support.v7.widget.LinearLayoutManager;
  5. import android.support.v7.widget.RecyclerView;
  6. import android.view.View;
  7. import android.widget.EditText;
  8. import android.widget.TextView;
  9. import com.ajguan.library.EasyRefreshLayout;
  10. import com.chad.library.adapter.base.BaseQuickAdapter;
  11. import com.hjq.bar.TitleBar;
  12. import com.hjq.dialog.DateDialog;
  13. import java.util.ArrayList;
  14. import java.util.List;
  15. import butterknife.BindView;
  16. import butterknife.OnClick;
  17. import eVVM.apk.R;
  18. import eVVM.apk.helper.SPUtils;
  19. import eVVM.apk.helper.basepicker.DataPickerDialog;
  20. import eVVM.apk.mvp.MvpLazyFragment;
  21. import eVVM.apk.ui.adapter.VnListAdapter;
  22. import eVVM.apk.ui.bean.VnListBean;
  23. import eVVM.apk.ui.bean.VnNameBean;
  24. import eVVM.apk.ui.report.vndetail.VnReportDetailActivity;
  25. /**
  26. * Created by Android Studio.
  27. * User: zbb
  28. * Date: 2019/6/5
  29. * Describe: ReportvnFragment
  30. */
  31. public class ReportvnFragment extends MvpLazyFragment<ReportVnPresenter> implements ReportVnContract.View {
  32. @BindView(R.id.tv_report_search)
  33. EditText tvReportSearch;
  34. @BindView(R.id.tv_report_gosearch)
  35. TextView tvReportGosearch;
  36. @BindView(R.id.tb_test_a_bar)
  37. TitleBar tbTestABar;
  38. @BindView(R.id.tv_vn_name)
  39. TextView tvVnName;
  40. @BindView(R.id.tv_vn_status)
  41. TextView tvVnStatus;
  42. @BindView(R.id.tv_vn_begintime)
  43. TextView tvVnBegintime;
  44. @BindView(R.id.tv_vn_endtime)
  45. TextView tvVnEndtime;
  46. @BindView(R.id.rl_reportvn)
  47. RecyclerView rlReportvn;
  48. @BindView(R.id.report_easylayout)
  49. EasyRefreshLayout reportEasylayout;
  50. private List<VnListBean.DataBean> vnDataList = new ArrayList<>();
  51. private int page = 1;
  52. private int size = 10;
  53. private VnListAdapter vnListAdapter;
  54. private int nameIdByName;
  55. private int statusByString;
  56. private String chipNumber;
  57. private String vaccineCategoryId;
  58. private String status;
  59. private String beginTime;
  60. private String endTime;
  61. private String user_factory_id;
  62. public static ReportvnFragment newInstance() {
  63. return new ReportvnFragment();
  64. }
  65. @Override
  66. protected int getLayoutId() {
  67. return R.layout.report_fragment;
  68. }
  69. @Override
  70. protected int getTitleId() {
  71. return 0;
  72. }
  73. @Override
  74. protected void initView() {
  75. user_factory_id = (String) SPUtils.get("USER_FACTORY_ID", "");
  76. vnListAdapter = new VnListAdapter(R.layout.vnlistitem, vnDataList);
  77. rlReportvn.setAdapter(vnListAdapter);
  78. rlReportvn.setLayoutManager(new LinearLayoutManager(getBindingActivity()));
  79. vnListAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
  80. @Override
  81. public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
  82. Intent in = new Intent(getBindingActivity(), VnReportDetailActivity.class);
  83. in.putExtra("VnchipNumber", "" + vnDataList.get(position).getChipNumber());
  84. startActivity(in);
  85. }
  86. });
  87. reportEasylayout.addEasyEvent(new EasyRefreshLayout.EasyEvent() {
  88. @Override
  89. public void onLoadMore() {
  90. page += 1;
  91. search(page, size);
  92. }
  93. @Override
  94. public void onRefreshing() {
  95. page = 1;
  96. search(page, size);
  97. }
  98. });
  99. }
  100. @Override
  101. protected void initData() {
  102. }
  103. private void search(int page, int size) {
  104. getPresenter().searchVnList(chipNumber, vaccineCategoryId, user_factory_id, status, beginTime, endTime, page, size);
  105. }
  106. @OnClick({R.id.tv_report_gosearch, R.id.tv_vn_name, R.id.tv_vn_status, R.id.tv_vn_begintime, R.id.tv_vn_endtime})
  107. public void onViewClicked(View view) {
  108. switch (view.getId()) {
  109. case R.id.tv_report_gosearch:
  110. //搜索
  111. // if (TextUtils.isEmpty(tvReportSearch.getText().toString())||TextUtils.isEmpty(tvVnName.getText().toString())||TextUtils.isEmpty(tvVnStatus.getText().toString())
  112. // ||TextUtils.isEmpty(tvVnBegintime.getText().toString())||TextUtils.isEmpty(tvVnEndtime.getText().toString())){
  113. // toast("请选择搜索内容");
  114. // }else {
  115. //
  116. // }
  117. showLoading();
  118. page = 1;
  119. nameIdByName = getNameIdByName(tvVnName.getText().toString());
  120. statusByString = getStatusByString(tvVnStatus.getText().toString());
  121. chipNumber = tvReportSearch.getText().toString().equals("") ? null : tvReportSearch.getText().toString();
  122. vaccineCategoryId = nameIdByName == -1 ? null : String.valueOf(nameIdByName);
  123. status = statusByString == -1 ? null : String.valueOf(statusByString);
  124. beginTime = tvVnBegintime.getText().toString().equals("") ? null : tvVnBegintime.getText().toString();
  125. endTime = tvVnEndtime.getText().toString().equals("") ? null : tvVnEndtime.getText().toString();
  126. search(page, size);
  127. break;
  128. case R.id.tv_vn_name:
  129. getPresenter().getName();
  130. break;
  131. case R.id.tv_vn_status:
  132. DataPickerDialog.Builder builder = new DataPickerDialog.Builder(getBindingActivity());
  133. List<String> statusStringList = new ArrayList<>();
  134. statusStringList.add("全部");
  135. //statusStringList.add("未用");
  136. //statusStringList.add("正常");
  137. //statusStringList.add("删除");
  138. //statusStringList.add("风险");
  139. statusStringList.add("报警");
  140. //statusStringList.add("废弃");
  141. statusStringList.add("正常已使用");
  142. statusStringList.add("风险已使用");
  143. statusStringList.add("报警已使用");
  144. /*List<RoleTypeBean.RoleParen> parentlist = new ArrayList<>();
  145. parentlist.add(new RoleTypeBean.RoleParen(6,"","医药企业"));
  146. parentlist.add(new RoleTypeBean.RoleParen(7,"","预防接种机构"));
  147. parentlist.add(new RoleTypeBean.RoleParen(8,"","预防接受种者"));
  148. parentlist.add(new RoleTypeBean.RoleParen(9,"","物流公司"));*/
  149. DataPickerDialog dialog = builder.setData(statusStringList).setSelection(0).setTitle("全部")
  150. .setOnDataSelectedListener(new DataPickerDialog.OnDataSelectedListener() {
  151. @Override
  152. public void onDataSelected(String itemValue) {
  153. tvVnStatus.setText(itemValue + "");
  154. }
  155. }).create();
  156. dialog.show();
  157. break;
  158. case R.id.tv_vn_begintime:
  159. new DateDialog.Builder(getBindingActivity())
  160. .setTitle("请选择日期")
  161. .setListener(new DateDialog.OnListener() {
  162. @Override
  163. public void onSelected(Dialog dialog, int year, int month, int day) {
  164. //toast(year + "年" + month + "月" + day + "日");
  165. tvVnBegintime.setText(year + "-" + month + "-" + day);
  166. }
  167. @Override
  168. public void onCancel(Dialog dialog) {
  169. //toast("取消了");
  170. }
  171. })
  172. .show();
  173. break;
  174. case R.id.tv_vn_endtime:
  175. new DateDialog.Builder(getBindingActivity())
  176. .setTitle("请选择日期")
  177. .setListener(new DateDialog.OnListener() {
  178. @Override
  179. public void onSelected(Dialog dialog, int year, int month, int day) {
  180. tvVnEndtime.setText(year + "-" + month + "-" + day);
  181. }
  182. @Override
  183. public void onCancel(Dialog dialog) {
  184. //toast("取消了");
  185. }
  186. })
  187. .show();
  188. break;
  189. }
  190. }
  191. private int getStatusByString(String statusString) {
  192. if ("未用".equals(statusString)) {
  193. return 0;
  194. }
  195. if ("正常".equals(statusString)) {
  196. return 1;
  197. }
  198. if ("删除".equals(statusString)) {
  199. return 2;
  200. }
  201. if ("风险".equals(statusString)) {
  202. return 3;
  203. }
  204. if ("报警".equals(statusString)) {
  205. return 4;
  206. }
  207. if ("废弃".equals(statusString)) {
  208. return 5;
  209. }
  210. if ("正常已使用".equals(statusString)) {
  211. return 6;
  212. }
  213. if ("风险已使用".equals(statusString)) {
  214. return 7;
  215. }
  216. if ("报警已使用".equals(statusString)) {
  217. return 8;
  218. }
  219. return -1;
  220. }
  221. private int getNameIdByName(String name) {
  222. for (VnNameBean.DataBean list : nameIdList) {
  223. if (list.getName().equals(name)) {
  224. return list.getId();
  225. }
  226. }
  227. return -1;
  228. }
  229. @Override
  230. protected ReportVnPresenter createPresenter() {
  231. return new ReportVnPresenter();
  232. }
  233. @Override
  234. public void getnameError(String msg) {
  235. toast(msg + "");
  236. }
  237. List<VnNameBean.DataBean> nameIdList = new ArrayList<>();
  238. //@RequiresApi(api = Build.VERSION_CODES.KITKAT)
  239. @Override
  240. public void getnameSuccess(VnNameBean data) {
  241. List<VnNameBean.DataBean> nameLsit = data.getData();
  242. if (nameLsit.size() == 0) {
  243. return;
  244. } else {
  245. // toast("成功"+nameLsit.toString());
  246. //showPopupWindow(nameLsit);
  247. nameIdList.clear();
  248. nameIdList.addAll(nameLsit);
  249. showDownPicker(nameLsit);
  250. }
  251. }
  252. @Override
  253. public void searchError(String msg) {
  254. showComplete();
  255. toast(msg);
  256. if (reportEasylayout.isRefreshing()) {
  257. reportEasylayout.refreshComplete();
  258. }
  259. if (reportEasylayout.isLoading()) {
  260. reportEasylayout.loadMoreComplete();
  261. }
  262. }
  263. @Override
  264. public void searchSuccess(VnListBean data) {
  265. showComplete();
  266. List<VnListBean.DataBean> vnListDatas = data.getData();
  267. if (vnListDatas.size() == 0 && !reportEasylayout.isLoading()) {
  268. toast("该类疫苗暂无报告");
  269. vnDataList.clear();
  270. vnDataList.addAll(vnListDatas);
  271. vnListAdapter.setNewData(vnListDatas);
  272. vnListAdapter.notifyDataSetChanged();
  273. reportEasylayout.refreshComplete();
  274. return;
  275. }
  276. if (page == 1) {
  277. vnDataList.clear();
  278. vnDataList.addAll(vnListDatas);
  279. vnListAdapter.setNewData(vnListDatas);
  280. vnListAdapter.notifyDataSetChanged();
  281. reportEasylayout.refreshComplete();
  282. } else {
  283. if (vnListDatas.size() == 0) {
  284. toast("没有更多啦");
  285. }
  286. vnDataList.addAll(vnListDatas);
  287. vnListAdapter.getData().addAll(vnListDatas);
  288. vnListAdapter.notifyDataSetChanged();
  289. reportEasylayout.loadMoreComplete();
  290. }
  291. }
  292. private void showDownPicker(List<VnNameBean.DataBean> nameLsit) {
  293. DataPickerDialog.Builder builder = new DataPickerDialog.Builder(getBindingActivity());
  294. List<String> nameStringList = new ArrayList<>();
  295. nameStringList.add("全部");
  296. for (int i = 0; i < nameLsit.size(); i++) {
  297. nameStringList.add(nameLsit.get(i).getName());
  298. }
  299. /*List<RoleTypeBean.RoleParen> parentlist = new ArrayList<>();
  300. parentlist.add(new RoleTypeBean.RoleParen(6,"","医药企业"));
  301. parentlist.add(new RoleTypeBean.RoleParen(7,"","预防接种机构"));
  302. parentlist.add(new RoleTypeBean.RoleParen(8,"","预防接受种者"));
  303. parentlist.add(new RoleTypeBean.RoleParen(9,"","物流公司"));*/
  304. DataPickerDialog dialog = builder.setData(nameStringList).setSelection(0).setTitle("全部")
  305. .setOnDataSelectedListener(new DataPickerDialog.OnDataSelectedListener() {
  306. @Override
  307. public void onDataSelected(String itemValue) {
  308. tvVnName.setText(itemValue + "");
  309. }
  310. }).create();
  311. dialog.show();
  312. }
  313. /*@RequiresApi(api = Build.VERSION_CODES.KITKAT)
  314. private void showPopupWindow(final List<VnNameBean.DataBean> nameLsit){
  315. View view = LayoutInflater.from(getBindingActivity()).inflate(R.layout.vnnamepop,null);
  316. //初始化List数据
  317. //初始化RecyclerView
  318. RecyclerView recyslerview = (RecyclerView) view.findViewById(R.id.rv_vnname);
  319. //创建LinearLayoutManager 对象 这里使用 LinearLayoutManager 是线性布局的意思
  320. ReportVnAdapter reportVnAdapter = new ReportVnAdapter(R.layout.rvvnname,nameLsit);
  321. recyslerview.setAdapter(reportVnAdapter);
  322. GridLayoutManager layoutmanager = new GridLayoutManager(getBindingActivity(),4);
  323. //设置RecyclerView 布局
  324. recyslerview.setLayoutManager(layoutmanager);
  325. //解决android7.0以上手机的适配问题
  326. final PopupWindow popupWindow = new PopupWindow(view, LinearLayout.LayoutParams.MATCH_PARENT, AutoSizeUtils.dp2px(getBindingActivity(),90)){
  327. @Override
  328. public void showAsDropDown(View anchor) {
  329. if(Build.VERSION.SDK_INT >= 24){
  330. Rect visibleFrame = new Rect();
  331. anchor.getGlobalVisibleRect(visibleFrame);
  332. int height = anchor.getResources().getDisplayMetrics().heightPixels - visibleFrame.bottom;
  333. setHeight(height);
  334. }
  335. super.showAsDropDown(anchor);
  336. }
  337. @Override
  338. public void showAsDropDown(View anchor, int xoff, int yoff) {
  339. if(Build.VERSION.SDK_INT >= 24) {
  340. Rect rect = new Rect();
  341. anchor.getGlobalVisibleRect(rect);
  342. int h = anchor.getResources().getDisplayMetrics().heightPixels - rect.bottom;
  343. setHeight(h);
  344. }
  345. super.showAsDropDown(anchor, xoff, yoff);
  346. }
  347. };
  348. ColorDrawable dw = new ColorDrawable(0xFFF0F5FF);
  349. popupWindow.setBackgroundDrawable(dw);
  350. popupWindow.setOutsideTouchable(true);
  351. popupWindow.setFocusable(true);
  352. popupWindow.showAsDropDown(tvVnName, view.getHeight(), 0, Gravity.NO_GRAVITY);
  353. reportVnAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
  354. @Override
  355. public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
  356. tvVnName.setText(""+nameLsit.get(position).getName());
  357. popupWindow.dismiss();
  358. }
  359. });
  360. }*/
  361. @Override
  362. public void onLoading() {
  363. }
  364. @Override
  365. public void onComplete() {
  366. }
  367. @Override
  368. public void onEmpty() {
  369. }
  370. @Override
  371. public void onError() {
  372. }
  373. }