diff --git a/BHDXJ/app/src/main/java/com/rehome/bhdxj/activity/QxgdNewActivity.kt b/BHDXJ/app/src/main/java/com/rehome/bhdxj/activity/QxgdNewActivity.kt index 7b6d99a..689cc0b 100644 --- a/BHDXJ/app/src/main/java/com/rehome/bhdxj/activity/QxgdNewActivity.kt +++ b/BHDXJ/app/src/main/java/com/rehome/bhdxj/activity/QxgdNewActivity.kt @@ -3,7 +3,10 @@ package com.rehome.bhdxj.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.bhdxj.base.BaseActivityOaToolbarViewBinding +import com.rehome.bhdxj.bean.QxgdAddressBean import com.rehome.bhdxj.bean.ZyNewBean import com.rehome.bhdxj.contans.Contans import com.rehome.bhdxj.databinding.ActivityQxgdNewBinding @@ -28,21 +31,29 @@ class QxgdNewActivity : BaseActivityOaToolbarViewBinding private val zyList: MutableList = mutableListOf() private val gzlxList: MutableList = mutableListOf() private val gdjbList: MutableList = mutableListOf() -// private val zyList: MutableList = mutableListOf() -// private val zyList: MutableList = mutableListOf() + private val gzlbList: MutableList = mutableListOf() + private val gzxxList: MutableList = mutableListOf() + private lateinit var launcherResultWz: ActivityResultLauncher private val jzDialogDatas: MutableList = mutableListOf() private val zyDialogDatas: MutableList = mutableListOf() private val gzlxDialogDatas: MutableList = mutableListOf() private val gdjbDialogDatas: MutableList = mutableListOf() + private val gzlbDialogDatas: MutableList = mutableListOf() + private val gzxxDialogDatas: MutableList = mutableListOf() private var jzValue: String? = null private var zyValue: kotlin.String? = null private var lxvalue: kotlin.String? = null private var qxdjValue: kotlin.String? = null + private var wzbmValue: String? = null + private var deviceValue: kotlin.String? = null + private var gzlbValue: String? = null + private var gzxxValue: kotlin.String? = null + override fun getViewBinding() = ActivityQxgdNewBinding.inflate(layoutInflater) override fun getToolbar() = binding.toolbarView.toolbar @@ -52,6 +63,7 @@ class QxgdNewActivity : BaseActivityOaToolbarViewBinding } + launcherResultWz = createWzActivityResultLauncher() queueNoHttp = NoHttp.newRequestQueue(1) val userIdTemp = SPUtils.get(this, Contans.USERID, "") as String if (!TextUtils.isEmpty(userIdTemp)) { @@ -106,12 +118,26 @@ class QxgdNewActivity : BaseActivityOaToolbarViewBinding dialog.show() }) - binding.ilWz.setOnClickListener(View.OnClickListener { v: View? -> + binding.ilWz.setOnClickListener(View.OnClickListener { + val intent = Intent(context, QxgdSearchAddressActivity::class.java) + intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP) + launcherResultWz.launch(intent) + }) + binding.ilSb.setOnClickListener(View.OnClickListener { val intent = Intent(context, QxgdSearchAddressActivity::class.java) intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP) - startActivity(intent) + launcherResultWz.launch(intent) }) + binding.ilGzlb.setOnClickListener(View.OnClickListener { v: View? -> + val dialog = ListDialog( + context, gzlbDialogDatas + ) { _: String?, position: Int -> + gzlbValue = gzlbList[position].value + binding.ilGzlb.content = gzlbList[position].description + } + dialog.show() + }) @@ -122,6 +148,34 @@ class QxgdNewActivity : BaseActivityOaToolbarViewBinding checkConnectServer() } + //创建一个ActivityResultLauncher + private fun createWzActivityResultLauncher(): ActivityResultLauncher { + //kotlin写法 + return registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { + val data = it.data + val resultCode = it.resultCode + if (resultCode == RESULT_OK) { + if (data != null) { + val qrCodeStr = data.getStringExtra("item") ?: "" + showLog("-------------qrCodeStr---item-----------") + showLog(qrCodeStr) + if(!TextUtils.isEmpty(qrCodeStr)){ + val item: QxgdAddressBean.DataBean = GsonUtils.GsonToBean(qrCodeStr,QxgdAddressBean.DataBean::class.java) + wzbmValue=item.wzbm + deviceValue=item.sbbm + binding.ilWz.content=item.description + binding.ilSb.content=item.description + + gzlbValue = null + binding.ilGzlb.content = "" + checkConnectServerGzlb() + } + } + } + } + } + + private fun initJZdatas() { jzDialogDatas.clear() for (bean in jzList) { @@ -150,6 +204,13 @@ class QxgdNewActivity : BaseActivityOaToolbarViewBinding } } + private fun initGzlbData() { + gzlbDialogDatas.clear() + for (bean in gzlbList) { + gzlbDialogDatas.add(bean.description) + } + } + private fun getDropDown(type:String) { var param = HashMap() if(type=="jz"){ @@ -167,12 +228,15 @@ class QxgdNewActivity : BaseActivityOaToolbarViewBinding }else if(type=="gzlb"){ //故障类别 param["action"] = "QXGD_GZLB_GET"; + param["wzbm"] = wzbmValue?:""; }else if(type=="gzxx"){ //故障现象 param["action"] = "QXGD_GZXX_GET"; } val json = GsonUtils.GsonString(param) + showLog("--------------json param------------") + showLog(json) val url = Contans.MAXIMOIP + Contans.QX_GET_ZY_DROP @@ -222,10 +286,20 @@ class QxgdNewActivity : BaseActivityOaToolbarViewBinding }else if(type=="gzlb"){ //故障类别 showLog("故障类别") + gzlbList.clear() + gzlbList.addAll(bean.data) + initGzlbData() }else if(type=="gzxx"){ //故障现象 showLog("故障现象") } + }else{ + if(type=="gzlb"){ + //故障类别 + showLog("故障类别") + gzlbList.clear() + gzlbDialogDatas.clear() + } } /** * {"state": 1,"msg":"查询成功","data":[ @@ -291,6 +365,7 @@ class QxgdNewActivity : BaseActivityOaToolbarViewBinding } + private fun checkConnectServer() { var param = HashMap() val json = GsonUtils.GsonString(param) @@ -332,6 +407,7 @@ class QxgdNewActivity : BaseActivityOaToolbarViewBinding }, true, true, "连接服务器...") } + private fun checkConnectServerGzlb() { var param = HashMap() val json = GsonUtils.GsonString(param) diff --git a/BHDXJ/app/src/main/java/com/rehome/bhdxj/activity/QxgdSearchAddressActivity.kt b/BHDXJ/app/src/main/java/com/rehome/bhdxj/activity/QxgdSearchAddressActivity.kt index a6695bb..0059547 100644 --- a/BHDXJ/app/src/main/java/com/rehome/bhdxj/activity/QxgdSearchAddressActivity.kt +++ b/BHDXJ/app/src/main/java/com/rehome/bhdxj/activity/QxgdSearchAddressActivity.kt @@ -1,16 +1,37 @@ package com.rehome.bhdxj.activity +import android.content.Intent import android.os.Bundle +import android.text.TextUtils +import android.view.View import androidx.activity.enableEdgeToEdge +import androidx.activity.result.ActivityResultLauncher +import androidx.activity.result.contract.ActivityResultContracts import androidx.appcompat.app.AppCompatActivity import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat import com.rehome.bhdxj.R +import com.rehome.bhdxj.adapter.QxgdSearchAddressAdapter import com.rehome.bhdxj.base.BaseActivityOaToolbarViewBinding +import com.rehome.bhdxj.bean.QxgdAddressBean +import com.rehome.bhdxj.bean.UserInfo +import com.rehome.bhdxj.contans.Contans import com.rehome.bhdxj.databinding.ActivityQxgdSearchAddressBinding +import com.rehome.bhdxj.utils.GsonUtils +import com.rehome.bhdxj.utils.HttpListener +import com.rehome.bhdxj.utils.NohttpUtils import com.rehome.bhdxj.utils.OAToolbar +import com.yolanda.nohttp.NoHttp +import com.yolanda.nohttp.RequestMethod +import com.yolanda.nohttp.rest.Response class QxgdSearchAddressActivity : BaseActivityOaToolbarViewBinding() { + + private lateinit var adapter: QxgdSearchAddressAdapter + private var datas: MutableList = mutableListOf() + + + override fun getViewBinding() = ActivityQxgdSearchAddressBinding.inflate(layoutInflater) override fun getToolbar() = binding.toolbarView.toolbar @@ -19,10 +40,110 @@ class QxgdSearchAddressActivity : BaseActivityOaToolbarViewBinding + val item: QxgdAddressBean.DataBean = datas[position]; + val resultIntent = Intent() + val bundle = Bundle() + bundle.putString("item", GsonUtils.GsonString(item)) + resultIntent.putExtras(bundle) + setResult(RESULT_OK, resultIntent) + finish(); + } + binding.lv.adapter = adapter + binding.tvNodata.visibility= View.VISIBLE + binding.lv.visibility= View.GONE + + //QxgdSearchAddressAdapter + //adapter_qxgd_search_address + + binding.tvSearch.setOnClickListener(View.OnClickListener { + if(TextUtils.isEmpty(binding.etAddressKey.text.toString().trim())){ + showToast("查询关键字不能为空,请输入查询位置") + }else{ + //检查网络连接 + checkConnectServer() + } + }) } override fun initData() { } + + private fun checkConnectServer() { + var param = HashMap() + val json = GsonUtils.GsonString(param) + val url = Contans.MAXIMOIP + Contans.check_server_connect + showLog(url) + showLog(json) + val request = NoHttp.createStringRequest( + url, + RequestMethod.POST + ) + request.setDefineRequestBodyForJson(json) + NohttpUtils.getInstance().add(this, 0, request, object : HttpListener { + override fun onSucceed(what: Int, response: Response?) { + val result = response?.get() + if (result != null) { + showLog("-----checkConnectServer onSucceed----") + showLog(result) + if(result == "1"){ + showLog("connect server success") + //查询位置 + searchData() + }else{ + showToast("无法连接到服务器,请检查网络环境") + } + } + } + + override fun onFailed(what: Int, response: Response?) { + showLog("connect server onFailed") + showToast("无法连接到服务器,请检查网络环境") + } + }, true, true, "连接服务器...") + } + + private fun searchData() { + val param = HashMap() + param["action"]="QXGD_WZSB_GET" + param["ms"]=binding.etAddressKey.text.toString().trim() + val json = GsonUtils.GsonString(param) + val url = Contans.MAXIMOIP + Contans.QX_GET_ZY_DROP + showLog(url) + showLog(json) + val request = NoHttp.createStringRequest( + url, + RequestMethod.POST + ) + request.setDefineRequestBodyForJson(json) + NohttpUtils.getInstance().add(this, 0, request, object : HttpListener { + override fun onSucceed(what: Int, response: Response?) { + val result = response?.get() + showLog(result) + val qxgdAddressBean = GsonUtils.GsonToBean(result, QxgdAddressBean::class.java) + if (qxgdAddressBean != null&&qxgdAddressBean.state==1&&qxgdAddressBean.data!=null&&qxgdAddressBean.data.size>0) { + binding.tvNodata.visibility= View.GONE + binding.lv.visibility= View.VISIBLE + datas.clear() + datas.addAll(qxgdAddressBean.data) + adapter.notifyDataSetChanged() + }else{ + binding.tvNodata.visibility= View.VISIBLE + binding.lv.visibility= View.GONE + datas.clear() + adapter.notifyDataSetChanged() + } + } + + override fun onFailed(what: Int, response: Response?) { + showLog("connect server onFailed") + showToast("查询数据失败,请检查网络环境") + } + }, true, true, "连接服务器...") + } } \ No newline at end of file diff --git a/BHDXJ/app/src/main/java/com/rehome/bhdxj/adapter/QxgdAddressAdapterBtnClickListener.java b/BHDXJ/app/src/main/java/com/rehome/bhdxj/adapter/QxgdAddressAdapterBtnClickListener.java new file mode 100644 index 0000000..2656c60 --- /dev/null +++ b/BHDXJ/app/src/main/java/com/rehome/bhdxj/adapter/QxgdAddressAdapterBtnClickListener.java @@ -0,0 +1,5 @@ +package com.rehome.bhdxj.adapter; + +public interface QxgdAddressAdapterBtnClickListener { + void onClick(int position); +} diff --git a/BHDXJ/app/src/main/java/com/rehome/bhdxj/adapter/QxgdSearchAddressAdapter.kt b/BHDXJ/app/src/main/java/com/rehome/bhdxj/adapter/QxgdSearchAddressAdapter.kt new file mode 100644 index 0000000..df8181a --- /dev/null +++ b/BHDXJ/app/src/main/java/com/rehome/bhdxj/adapter/QxgdSearchAddressAdapter.kt @@ -0,0 +1,44 @@ +package com.rehome.bhdxj.adapter + + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import com.rehome.bhdxj.base.BaseViewBindingAdapter +import com.rehome.bhdxj.bean.QxgdAddressBean +import com.rehome.bhdxj.databinding.AdapterQxgdSearchAddressBinding + + +class QxgdSearchAddressAdapter(var context: Context, + var data: MutableList, var btnClickListener: QxgdAddressAdapterBtnClickListener) : BaseViewBindingAdapter(context) { + + //QxgdAddressBean + + override fun getCount(): Int { + return data.count() + } + + override fun getItem(position: Int): Any { + return data[position] + } + + override fun getItemId(position: Int): Long { + return position.toLong() + } + + override fun getBinding( + inflater: LayoutInflater, + parent: ViewGroup? + ) = AdapterQxgdSearchAddressBinding.inflate(inflater, parent, false) + override fun handleData(position: Int, binding: AdapterQxgdSearchAddressBinding) { + val item: QxgdAddressBean.DataBean = data[position] + binding.tvMc.text = item.description + + binding.tvWzbm.text = item.wzbm + binding.tvSbbm.text = item.sbbm + binding.btnMjApply.setOnClickListener { + btnClickListener.onClick(position) + } + } +} \ No newline at end of file diff --git a/BHDXJ/app/src/main/java/com/rehome/bhdxj/bean/QxgdAddressBean.java b/BHDXJ/app/src/main/java/com/rehome/bhdxj/bean/QxgdAddressBean.java new file mode 100644 index 0000000..946e207 --- /dev/null +++ b/BHDXJ/app/src/main/java/com/rehome/bhdxj/bean/QxgdAddressBean.java @@ -0,0 +1,67 @@ +package com.rehome.bhdxj.bean; + +import java.util.List; + +public class QxgdAddressBean { + + private int state; + private String msg; + private List data; + + public int getState() { + return state; + } + + public void setState(int state) { + this.state = state; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + //描述 + private String description; + //位置编码 + private String wzbm; + //设备编码 + private String sbbm; + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getWzbm() { + return wzbm; + } + + public void setWzbm(String wzbm) { + this.wzbm = wzbm; + } + + public String getSbbm() { + return sbbm; + } + + public void setSbbm(String sbbm) { + this.sbbm = sbbm; + } + } +} \ No newline at end of file diff --git a/BHDXJ/app/src/main/java/com/rehome/bhdxj/bean/ZyNewBean.java b/BHDXJ/app/src/main/java/com/rehome/bhdxj/bean/ZyNewBean.java index 89d14a9..e3cdecb 100644 --- a/BHDXJ/app/src/main/java/com/rehome/bhdxj/bean/ZyNewBean.java +++ b/BHDXJ/app/src/main/java/com/rehome/bhdxj/bean/ZyNewBean.java @@ -1,6 +1,6 @@ package com.rehome.bhdxj.bean; -import android.os.Parcelable; + import java.util.List; diff --git a/BHDXJ/app/src/main/java/com/rehome/bhdxj/contans/Contans.java b/BHDXJ/app/src/main/java/com/rehome/bhdxj/contans/Contans.java index ad1d926..40775a6 100755 --- a/BHDXJ/app/src/main/java/com/rehome/bhdxj/contans/Contans.java +++ b/BHDXJ/app/src/main/java/com/rehome/bhdxj/contans/Contans.java @@ -26,6 +26,8 @@ public class Contans { //缺陷工单专业下拉 public static String QX_GET_ZY_DROP = "QXGD/QXGD_JCSJ.ashx"; + //缺陷工单位置查询 + public static String QX_GET_ZW_SEARCH = "QXGD/QXGD_JCSJ.ashx"; //连接服务器测试,看客户端是否能连接到服务器,如果能就响应个1 public static final String check_server_connect = "WL/WLPD.ashx"; diff --git a/BHDXJ/app/src/main/res/drawable/btn_normal.xml b/BHDXJ/app/src/main/res/drawable/btn_normal.xml new file mode 100644 index 0000000..b26478c --- /dev/null +++ b/BHDXJ/app/src/main/res/drawable/btn_normal.xml @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/BHDXJ/app/src/main/res/drawable/btn_pressed.xml b/BHDXJ/app/src/main/res/drawable/btn_pressed.xml new file mode 100644 index 0000000..f3657bf --- /dev/null +++ b/BHDXJ/app/src/main/res/drawable/btn_pressed.xml @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/BHDXJ/app/src/main/res/drawable/btn_selector.xml b/BHDXJ/app/src/main/res/drawable/btn_selector.xml new file mode 100644 index 0000000..5259843 --- /dev/null +++ b/BHDXJ/app/src/main/res/drawable/btn_selector.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/BHDXJ/app/src/main/res/layout/activity_qxgd_search_address.xml b/BHDXJ/app/src/main/res/layout/activity_qxgd_search_address.xml index 46a6d0f..188bdcf 100644 --- a/BHDXJ/app/src/main/res/layout/activity_qxgd_search_address.xml +++ b/BHDXJ/app/src/main/res/layout/activity_qxgd_search_address.xml @@ -15,7 +15,8 @@ - - + + + android:layout_height="0dp" + android:layout_weight="1" + tools:ignore="UselessParent"> + + + - + \ No newline at end of file diff --git a/BHDXJ/app/src/main/res/layout/adapter_qxgd_search_address.xml b/BHDXJ/app/src/main/res/layout/adapter_qxgd_search_address.xml new file mode 100644 index 0000000..e27c6d6 --- /dev/null +++ b/BHDXJ/app/src/main/res/layout/adapter_qxgd_search_address.xml @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +