diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7470732..0d4826e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -83,7 +83,6 @@ tools:targetApi="s"> - @@ -1130,6 +1129,10 @@ android:name=".ui.activity.WorkRiskListActivity" android:screenOrientation="portrait" android:windowSoftInputMode="adjustResize|stateHidden" /> + datas, OnWorkRiskContentlickListener onWorkRiskContentlickListener, - OnWorkRiskLevelClickListener onWorkRiskLevelClickListener) { + OnWorkRiskLevelClickListener onWorkRiskLevelClickListener, + OnPaoHaolickListener onPaoHaolickListener) { super(context); //super(context, R.layout.adapter_work_risk_level_list, datas); this.context = context; this.datas = datas; this.onWorkRiskContentlickListener=onWorkRiskContentlickListener; this.onWorkRiskLevelClickListener= onWorkRiskLevelClickListener; + this.onPaoHaolickListener=onPaoHaolickListener; } @Override @@ -41,14 +44,26 @@ public class WorkRiskLevelListAdapter extends BaseViewBindingAdapter"; + binding.tvPaiHao.setText(Html.fromHtml(tv_paiHao)); + binding.tvPaiHao.setTextColor(Color.parseColor("#0099ff")); + binding.tvPaiHao.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if(onPaoHaolickListener!=null){ + onPaoHaolickListener.onItemClick(position); + } + } + }); + String tv_precaution = "" + item.getContent() +""; binding.tvContent.setText(Html.fromHtml(tv_precaution)); binding.tvContent.setTextColor(Color.parseColor("#0099ff")); @@ -102,6 +117,9 @@ public class WorkRiskLevelListAdapter extends BaseViewBindingAdapter + if (token != null && token == "") { + showToast("AI三维平台登录失败") + } else { + getWorkRiskListData() + } + } + } catch (e: Exception) { + e.printStackTrace() + } + } + + private fun getSubmitJsonData(): String { + val param = HashMap() + + if(id!=null){ + param["ticketId"] = id!! + } + + param["jobNo"]= App.getInstance().userInfo.manid + + if(binding.rb1.isChecked){ + param["level"] = "A" + }else if(binding.rb2.isChecked){ + param["level"] = "B" + }else if(binding.rb3.isChecked){ + param["level"] = "C1" + }else if(binding.rb4.isChecked){ + param["level"] = "C2" + }else if(binding.rb5.isChecked){ + param["level"] = "C3" + }else if(binding.rb6.isChecked){ + param["level"] = "低风险" + } + val json = GsonUtils.GsonString(param) + showLog(json) + return json + } + + private fun getWorkRiskListData() { + val request = NoHttp.createStringRequest( + Contans.BASE_URL_AI_3D_SERVER + Contans.UPDATE_RISK_LEVEL, + RequestMethod.POST + ) + + val json: String = getSubmitJsonData() + request.setDefineRequestBodyForJson(json) + + if (Contans.BASE_URL_AI_3D_SERVER == Contans.BASE_URL_AI_3D_SERVER_EXTRANET) { + val socketFactory = NohttpUtils.getSSLSocketFactory(this) + if (socketFactory != null) { + request.sslSocketFactory = socketFactory + request.hostnameVerifier = HostnameVerifier { _, _ -> true } + } + } + + NohttpUtils.getInstance().add(this, 0, request, object : HttpListener { + + override fun onSucceed(what: Int, response: Response?) { + val result = response?.get() + showLog("----------------") + showLog(result) + val aiRiskListBaseBean = GsonUtils.GsonToBean( + result, + AIRiskListBaseBean::class.java + ) + if (aiRiskListBaseBean != null && aiRiskListBaseBean.isSuccess() && aiRiskListBaseBean.getCode() == 20000) { + showToast("修改风险等级成功") + val resultIntent = Intent() + val bundle = Bundle() + bundle.putString("code", "23823") + resultIntent.putExtras(bundle) + setResult(RESULT_OK, resultIntent) + finish(); + } + } + + override fun onFailed(what: Int, response: Response?) { + + } + }) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/DjdscFragment.java b/app/src/main/java/com/rehome/zhdcoa/ui/activity/DjdscFragment.java index 08ed2df..976d756 100644 --- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/DjdscFragment.java +++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/DjdscFragment.java @@ -70,9 +70,9 @@ public class DjdscFragment extends BaseFragment { private XzjhAdapter adapter; //private List rwLists; - private List djjhs; - private List rwqys; - private List list; + private List djjhs = new ArrayList<>();; + private List rwqys = new ArrayList<>();; + private List list = new ArrayList<>();; private Map> map; private List scs;//上传的集合 private final boolean first = true; @@ -99,24 +99,6 @@ public class DjdscFragment extends BaseFragment { return fragment; } - @Override - public void setUserVisibleHint(boolean isVisibleToUser) { - super.setUserVisibleHint(isVisibleToUser); - if (getUserVisibleHint()) { - visible(); - } - } - - //视图显示时才查询数据库数据 - private void visible() { - getDataInSQL(); - if (adapter == null) { - setListData(); - } else { - adapter.notifyDataSetChanged(); - } - } - @Override protected void initView() { findView(); @@ -148,6 +130,8 @@ public class DjdscFragment extends BaseFragment { TextView yjzj = headView.findViewById(R.id.tv_jhlx); yjzj.setText("已检/总计"); head.setVisibility(View.VISIBLE); + + setListData(); } private void findView() { @@ -187,10 +171,10 @@ public class DjdscFragment extends BaseFragment { public void initData() { queue = NoHttp.newRequestQueue(1); - djjhs = new ArrayList<>(); - rwqys = new ArrayList<>(); + //djjhs = new ArrayList<>(); + //rwqys = new ArrayList<>(); //rwLists = new ArrayList<>(); - list = new ArrayList<>(); + //list = new ArrayList<>(); map = new HashMap<>(); scs = new ArrayList<>(); removelist = new ArrayList<>(); @@ -209,6 +193,7 @@ public class DjdscFragment extends BaseFragment { //获取点检计划中所有的区域 for (Djjh djjh : djjhs) { List rwqy = where("jhid = ? and deleted = ?", djjh.getJHID(), "0").order("date").find(DjjhRwQy.class); + //List rwqy = where("jhid = ?", djjh.getJHID()).order("date").find(DjjhRwQy.class); rwqys.addAll(rwqy); map.put(djjh.getJHID(), rwqy); } @@ -232,6 +217,10 @@ public class DjdscFragment extends BaseFragment { djjh.setJHID(djjhs.get(i).getJHID()); list.add(djjh); } + if (adapter != null) { + adapter.notifyDataSetChanged(); + } + cb.setChecked(false); } private void setListData() { @@ -378,9 +367,7 @@ public class DjdscFragment extends BaseFragment { } //刷新界面 getDataInSQL(); - if (adapter != null) { - adapter.notifyDataSetChanged(); - } + mActivity.refreshScList(); } }); AlertDialog dialog = builder.create(); @@ -616,7 +603,6 @@ public class DjdscFragment extends BaseFragment { getDataInSQL(); if (adapter != null) { cb.setChecked(false); - adapter.notifyDataSetChanged(); } } } diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/SxcdjActivity.java b/app/src/main/java/com/rehome/zhdcoa/ui/activity/SxcdjActivity.java index 481b9de..0313722 100644 --- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/SxcdjActivity.java +++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/SxcdjActivity.java @@ -77,11 +77,13 @@ public class SxcdjActivity extends BaseActivity2 { rb2.setTextColor(Color.GRAY); rb3.setTextColor(Color.GRAY); vp.setCurrentItem(0, false); + //xzjh.refreshData(); }else if(i==R.id.rb2){ rb1.setTextColor(Color.GRAY); rb2.setTextColor(Color.WHITE); rb3.setTextColor(Color.GRAY); vp.setCurrentItem(1, false); + djdsc.getDataInSQL(); }else if(i==R.id.rb3){ // rb1.setTextColor(Color.GRAY); // rb2.setTextColor(Color.GRAY); @@ -95,4 +97,8 @@ public class SxcdjActivity extends BaseActivity2 { public void updataDjdsc() { djdsc.getDataInSQL(); } + + public void refreshScList() { + xzjh.refreshData(); + } } diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/WorkRiskListActivity.kt b/app/src/main/java/com/rehome/zhdcoa/ui/activity/WorkRiskListActivity.kt index 5cb82eb..7675ddc 100644 --- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/WorkRiskListActivity.kt +++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/WorkRiskListActivity.kt @@ -1,7 +1,10 @@ package com.rehome.zhdcoa.ui.activity import android.content.Intent +import android.text.TextUtils import android.view.View +import androidx.activity.result.ActivityResultLauncher +import androidx.activity.result.contract.ActivityResultContracts import com.rehome.zhdcoa.Contans import com.rehome.zhdcoa.R import com.rehome.zhdcoa.adapter.WorkRiskLevelListAdapter @@ -41,6 +44,8 @@ class WorkRiskListActivity : BaseActivityOaToolbarViewBinding = mutableListOf() private var dataLowRisk: MutableList = mutableListOf() + private lateinit var launcherResultQRCode: ActivityResultLauncher + override fun getViewBinding() = ActivityWorkRiskListBinding.inflate(layoutInflater) override fun getToolbar() = binding.toolbarView.toolbar @@ -56,6 +61,8 @@ class WorkRiskListActivity : BaseActivityOaToolbarViewBinding + val item = datas[position] + if(item.hazardList!=null&&item.hazardList.size>0){ + //进入修改风险等级 + val intent = Intent(context, CustomDialogChangeLevelActivity::class.java) + intent.putExtra("id",item.id) + intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP) + intent.putExtra("level", item.level) + launcherResultQRCode.launch(intent) + } + }, + { position -> + val item = datas[position] + showLog("---------") + showLog(GsonUtils.GsonString(item)) + //工作情况汇报 + val intent = Intent(context, WorkRiskListHuiBaoActivity::class.java) + intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP) + intent.putExtra("type",item.level) + intent.putExtra("id",item.id) + startActivity(intent) } - ) { position -> - val item = datas[position] - showLog("---------") - showLog(GsonUtils.GsonString(item)) - //工作情况汇报 - val intent = Intent(context, WorkRiskListHuiBaoActivity::class.java) - intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP) - intent.putExtra("type",item.level) - intent.putExtra("id",item.id) - startActivity(intent) - }; + ) //binding.lv.addHeaderView(headView, null, false) binding.lv.adapter = mAdapter @@ -116,6 +135,25 @@ class WorkRiskListActivity : BaseActivityOaToolbarViewBinding { + //kotlin写法 + return registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { + val data = it.data + val resultCode = it.resultCode + if (resultCode == RESULT_OK) { + if (data != null) { + val qrCodeStr = data.getStringExtra("code") ?: "" + showLog(qrCodeStr) + if(!TextUtils.isEmpty(qrCodeStr)){ + //刷新列表数据 + authenticationLoginAI() + } + } + } + } + } + private fun authenticationLoginAI() { try { //AI三维登录接口 diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/XzjhFragment.java b/app/src/main/java/com/rehome/zhdcoa/ui/activity/XzjhFragment.java index a3ce9e7..e3a54ce 100644 --- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/XzjhFragment.java +++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/XzjhFragment.java @@ -1,5 +1,7 @@ package com.rehome.zhdcoa.ui.activity; +import static com.rehome.zhdcoa.utils.GsonUtils.GsonToBean; + import android.content.ContentValues; import android.content.DialogInterface; import android.graphics.Color; @@ -36,6 +38,7 @@ import com.rehome.zhdcoa.utils.SPUtils; import com.rehome.zhdcoa.utils.UiUtlis; import com.rehome.zhdcoa.weiget.WaitDialog; import com.yolanda.nohttp.NoHttp; +import com.yolanda.nohttp.rest.OnResponseListener; import com.yolanda.nohttp.rest.Request; import com.yolanda.nohttp.rest.RequestQueue; import com.yolanda.nohttp.rest.Response; @@ -59,13 +62,13 @@ public class XzjhFragment extends BaseFragment { ListView lv; Button btn_xz; TextView tvNodata; - Button btnDel; + //Button btnDel; private void findView() { lv = view.findViewById(R.id.lv); btn_xz = view.findViewById(R.id.btn_xz); - btnDel = view.findViewById(R.id.btn_delete); + //btnDel = view.findViewById(R.id.btn_delete); tvNodata = view.findViewById(R.id.tv_nodata); btn_xz.setOnClickListener(new View.OnClickListener() { @Override @@ -89,46 +92,46 @@ public class XzjhFragment extends BaseFragment { } } }); - btnDel.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (djjhs.size() != 0) { - AlertDialog.Builder builder = new AlertDialog.Builder(context); - builder.setTitle("提示"); - builder.setTitle("你确定要删除?"); - builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - } - }); - builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - List delete = new ArrayList<>(); - for (int i = 0; i < djjhs.size(); i++) { - if (djjhs.get(i).isChecked()) { - delete.add(djjhs.get(i)); - DataSupport.deleteAll(Djjh.class, "jhid = ?", djjhs.get(i).getJHID()); - } - } - djjhs.removeAll(delete); - adapter.notifyDataSetChanged(); - } - }); - AlertDialog dialog = builder.create(); - dialog.show(); - //确定按钮 - Button btnPos = dialog.getButton(DialogInterface.BUTTON_POSITIVE); - //取消按钮 - Button btnNeg = dialog.getButton(DialogInterface.BUTTON_NEGATIVE); - btnPos.setTextColor(Color.BLACK); - btnNeg.setTextColor(Color.BLACK); - } else { - showToast("没有可删除计划"); - } - } - }); +// btnDel.setOnClickListener(new View.OnClickListener() { +// @Override +// public void onClick(View v) { +// if (djjhs.size() != 0) { +// AlertDialog.Builder builder = new AlertDialog.Builder(context); +// builder.setTitle("提示"); +// builder.setTitle("你确定要删除?"); +// builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { +// @Override +// public void onClick(DialogInterface dialog, int which) { +// dialog.dismiss(); +// } +// }); +// builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { +// @Override +// public void onClick(DialogInterface dialog, int which) { +// List delete = new ArrayList<>(); +// for (int i = 0; i < djjhs.size(); i++) { +// if (djjhs.get(i).isChecked()) { +// delete.add(djjhs.get(i)); +// DataSupport.deleteAll(Djjh.class, "jhid = ?", djjhs.get(i).getJHID()); +// } +// } +// djjhs.removeAll(delete); +// adapter.notifyDataSetChanged(); +// } +// }); +// AlertDialog dialog = builder.create(); +// dialog.show(); +// //确定按钮 +// Button btnPos = dialog.getButton(DialogInterface.BUTTON_POSITIVE); +// //取消按钮 +// Button btnNeg = dialog.getButton(DialogInterface.BUTTON_NEGATIVE); +// btnPos.setTextColor(Color.BLACK); +// btnNeg.setTextColor(Color.BLACK); +// } else { +// showToast("没有可删除计划"); +// } +// } +// }); } private WaitDialog dialog; @@ -141,7 +144,7 @@ public class XzjhFragment extends BaseFragment { private CheckBox cb; private final boolean flag = false; - private List djjhs; + private List djjhs = new ArrayList<>();; private int selectCount = 0; private int requestCount = 0; private StringBuilder sb; @@ -179,6 +182,7 @@ public class XzjhFragment extends BaseFragment { headView = View.inflate(context, R.layout.xzjh_item, null); head = headView.findViewById(R.id.head); head.setVisibility(View.VISIBLE); + tvNodata.setText("暂无数据"); cb = headView.findViewById(R.id.cb); cb.setOnClickListener(new View.OnClickListener() { @Override @@ -197,43 +201,185 @@ public class XzjhFragment extends BaseFragment { } } }); - } - - - public void initData() { queue = NoHttp.newRequestQueue(1); - dialog = new WaitDialog(getActivity(), "加载中..."); dialog.setCancelable(false); - djjhs = new ArrayList<>(); qylists = new ArrayList<>(); qys = new ArrayList<>(); rwqys = new ArrayList<>(); + setListData(); + } + + + public void initData() { + //如果数据库中有数据 if (DataSupport.count("Djjh") != 0) { - List djjhall = DataSupport.where("download = ?", "0").find(Djjh.class); - djjhs.clear(); - for (int i = 0; i < djjhall.size(); i++) { - Djjh djjh = new Djjh(); - djjh = djjhall.get(i); - - //如果到期,就直接删除 -// if (UiUtlis.isdelete(djjh.getDQSJ())) { -// DataSupport.deleteAll(Djjh.class, "jhid = ?", djjh.getJHID()); -// } else { - djjhs.add(djjh); -// } - } - setListData(); -// showToast("读取数据库数据"); - tvNodata.setText("暂无数据"); + //读取数据库数据 + getDataInSQL(); } else { + //数据库无数据,请求接口数据 requestData(); -// showToast("请求接口数据"); } } + /** + * 获取数据库的数据 + */ + public void getDataInSQL() { + List djjhall = DataSupport.where("download = ?", "0").find(Djjh.class); + djjhs.clear(); + djjhs.addAll(djjhall); +// for (int i = 0; i < djjhall.size(); i++) { +// Djjh djjh = djjhall.get(i); +// djjhs.add(djjh); +// } + if(adapter!=null){ + adapter.notifyDataSetChanged(); + } + } + + public void refreshData() { + + Request request = NoHttp.createStringRequest(Contans.IP + Contans.DJJHLIST); + request.add("BZMC", UiUtlis.encoder((String) SPUtils.get(context, Contans.BZBH, "12108080101"))); + + if(App.getInstance().getUserInfo()!=null&&App.getInstance().getUserInfo().getToken()!=null){ + String token = App.getInstance().getUserInfo().getToken(); + String credential = "Bearer " + token; + request.addHeader("Authorization", credential); + showLog(request.url()); + } + + if(!TextUtils.isEmpty(request.url())){ + String url =request.url(); + if(url.startsWith("https://219.131.195.3:7100")||url.startsWith("https://219.131.195.3:7011")||url.startsWith("https://219.131.195.3:7081")||url.startsWith("https://219.131.195.3:7082")){ + SSLSocketFactory socketFactory = NohttpUtils.getSSLSocketFactory(mActivity); + if (socketFactory != null) { + request.setSSLSocketFactory(socketFactory); + request.setHostnameVerifier(new HostnameVerifier() { + @Override + public boolean verify(String s, SSLSession sslSession) { + return true; + } + }); + } + } + } + + queue.add(4, request,new com.yolanda.nohttp.rest.OnResponseListener(){ + + @Override + public void onStart(int what) { + + } + + @Override + public void onSucceed(int what, Response response) { + //用来捕获数据解析的异常 + try { + String result = (String) response.get(); + showLog(String.valueOf(what)); + showLog(result); + + + list = GsonUtils.GsonToBean(result, DjjhList.class); +// if (list != null) { +// if (list.getTotal() != 0) { +// djjhs.clear(); +// djjhs.addAll(list.getRows()); +// +// if (adapter != null) { +// cb.setChecked(false); +// adapter.notifyDataSetChanged(); +// //savaDataInSQLite(); +// } +// } +// } else { +// showToast(UiUtlis.getString(context, R.string.data_error)); +// } + + showLog("-------"); + showLog(String.valueOf(list==null)); + showLog(String.valueOf(list.getTotal())); + if (list != null) { + if (list.getTotal() != 0) { + List djjhListTemp = list.getRows();//服务器数据 + //先删除未下 载的计划 + DataSupport.deleteAll(Djjh.class, "download = 0"); + for (Djjh djjh : djjhListTemp) { + List dbdjjh = DataSupport.where("jhid = ? and download = ?", djjh.getJHID(), "1").find(Djjh.class); + //如果数据库中没有这条数据,就添加到数据库 + if (dbdjjh.isEmpty()) { + djjh.save(); + } + } + djjhs.clear(); + djjhs.addAll(list.getRows()); + + if (adapter != null) { + cb.setChecked(false); + adapter.notifyDataSetChanged(); + } + } else { + DataSupport.deleteAll(Djjh.class, "download = 0"); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + @Override + public void onFailed(int what, Response response) { + + } + + @Override + public void onFinish(int what) { + + } + }); +// queue.add(4, request, new HttpResponseListener<>(getActivity(), request, new HttpListener() { +// @Override +// public void onSucceed(int what, Response response) { +// //用来捕获数据解析的异常 +// try { +// String result = response.get(); +// showLog(String.valueOf(what)); +// showLog(result); +// +// list = GsonUtils.GsonToBean(result, DjjhList.class); +// if (list != null) { +// if (list.getTotal() != 0) { +// djjhs.clear(); +// djjhs.addAll(list.getRows()); +// +// if (adapter != null) { +// cb.setChecked(false); +// adapter.notifyDataSetChanged(); +// } +// } +// } else { +// showToast(UiUtlis.getString(context, R.string.data_error)); +// } +// } catch (Exception e) { +// showToast(UiUtlis.getString(context, R.string.data_error)); +// dialog.dismiss(); +// } +// } +// +// @Override +// public void onFailed(int what, Response response) { +// showLog("onFailed"); +// if (dialog != null && dialog.isShowing()) { +// dialog.dismiss(); +// } +// } +// }, false, false, "")); + } + private void requestData() { dialog.show(); Request request = NoHttp.createStringRequest(Contans.IP + Contans.DJJHLIST); @@ -379,8 +525,8 @@ public class XzjhFragment extends BaseFragment { if (list.getTotal() != 0) { djjhs.clear(); djjhs.addAll(list.getRows()); - setListData(); savaDataInSQLite(); + adapter.notifyDataSetChanged(); } } else { showToast(UiUtlis.getString(context, R.string.data_error)); diff --git a/app/src/main/res/drawable/background_button.xml b/app/src/main/res/drawable/background_button.xml new file mode 100644 index 0000000..3257b52 --- /dev/null +++ b/app/src/main/res/drawable/background_button.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_custom_dialog_change_level.xml b/app/src/main/res/layout/activity_custom_dialog_change_level.xml new file mode 100644 index 0000000..a43a938 --- /dev/null +++ b/app/src/main/res/layout/activity_custom_dialog_change_level.xml @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_xzjh.xml b/app/src/main/res/layout/fragment_xzjh.xml index 7d74616..b7918dc 100755 --- a/app/src/main/res/layout/fragment_xzjh.xml +++ b/app/src/main/res/layout/fragment_xzjh.xml @@ -24,16 +24,31 @@ android:text="暂无数据" /> + + +