Browse Source

优化定时刷新功能,解决出院后定时刷新设备数据未清空问题

weizhengliang 1 year ago
parent
commit
96bb85b0ea

+ 33 - 28
android_bed/src/main/h5_3128/java/com/wdkl/app/ncs/callingbed/activity/CallingbedActivity.kt

@@ -228,9 +228,14 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, CallingbedMa
 
         EventBus.getDefault().register(this)
 
-        initNurseConfig()
+        initNurseConfigData()
         updateNetState()
 
+        linearLayout = LinearLayoutManager(activity)
+        nurseConfigAdpter = NurseConfigAdapter(activity, configList)
+        rv_left_list.layoutManager = linearLayout
+        rv_left_list.adapter = nurseConfigAdpter
+
         //启动时间线程
         timeThread = TimeThread()
         timeThread.start()
@@ -510,12 +515,17 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, CallingbedMa
 
     fun initDevice() {
         if (!TextUtils.isEmpty(Constant.LOCAL_MAC)) {
+            //重置数据
+            Constant.DEVICE_STATUS = -1
+            Constant.CUSTOM_ID = -1
+            Constant.SIP_ID = ""
             presenter.loadDeviceInfo(Constant.LOCAL_MAC)
         }
     }
 
-    private fun initNurseConfig() {
+    private fun initNurseConfigData() {
         //初始化默认护理项
+        configList.clear()
         for (index in 1..5) {
             val item = NurseConfigDto()
             item.nurseConfigName = StringUtil.getResString(R.string.default_nurse_config_name)
@@ -523,37 +533,26 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, CallingbedMa
             item.nurseColorRbg = ""
             configList.add(item)
         }
-
-        linearLayout = LinearLayoutManager(activity)
-        nurseConfigAdpter = NurseConfigAdapter(activity, configList)
-        rv_left_list.layoutManager = linearLayout
-        rv_left_list.adapter = nurseConfigAdpter
     }
 
     //数据加载错误
     override fun onError(message: String, type: Int) {
-        //dismissDialog()
         showMessage(message)
-        //加载失败,重置customid
-        //Constant.CUSTOM_ID = -1
     }
 
     //数据加载完成
     override fun complete(message: String, type: Int) {
-        //dismissDialog()
 
     }
 
     //开始获取数据
     override fun start() {
-        //showDialog()
+
     }
 
     //没有网络
     override fun onNoNet() {
         showMessage("No network")
-        //加载失败,重置customid
-        //Constant.CUSTOM_ID = -1
     }
 
     //网络监听
@@ -648,8 +647,10 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, CallingbedMa
     private fun startTimingRefreshData() {
         val timerTask: TimerTask = object : TimerTask() {
             override fun run() {
-                if (Constant.TCP_CONNECTED) {
+                try {
                     initDevice()
+                } catch (e: Exception) {
+                    //
                 }
             }
         }
@@ -695,11 +696,11 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, CallingbedMa
         }
         if (Constant.DEVICE_STATUS == 0) {
             showMessage(StringUtil.getResString(R.string.device_disable))
-        } else if (Constant.DEVICE_STATUS == 1) {
-            //启动主fragment
-            switchToMainFragment()
         }
 
+        //启动主fragment
+        switchToMainFragment()
+
         //加载分机所绑定紧急按钮设备信息
         if (deviceInfo.frameId != null) {
             presenter.getEmergencyDeviceInfo(deviceInfo.frameId)
@@ -817,6 +818,9 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, CallingbedMa
     }
 
     override fun updateNurseConfig(list: List<NurseConfigDto>) {
+        //更新护理项前先重新初始化一下
+        initNurseConfigData()
+
         if (list.isNotEmpty()) {
             for ((index, e) in list.withIndex()) {
                 if (index < configList.size) {
@@ -825,15 +829,17 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, CallingbedMa
                     configList.add(e)
                 }*/
             }
-            nurseConfigAdpter.updateData(configList)
-            //护理灯刷新
-            hasNurseValue = true
-            if (Constant.day_state == 0) {
-                SerialPortHelper.setNurseLedLight2(SettingConfig.getExtensionDaytimeLEDBrightness(activity), configList)
-            } else {
-                SerialPortHelper.setNurseLedLight2(SettingConfig.getExtensionNightLEDBrightness(activity), configList)
-            }
         }
+
+        nurseConfigAdpter.updateData(configList)
+        //护理灯刷新
+        hasNurseValue = true
+        if (Constant.day_state == 0) {
+            SerialPortHelper.setNurseLedLight2(SettingConfig.getExtensionDaytimeLEDBrightness(activity), configList)
+        } else {
+            SerialPortHelper.setNurseLedLight2(SettingConfig.getExtensionNightLEDBrightness(activity), configList)
+        }
+
     }
 
     fun addCallFragment(fragment: Fragment) {
@@ -906,7 +912,7 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, CallingbedMa
     //注册时间监听广播
     private fun regReceiver() {
         receiver = TimeReceiver()
-        var intentFilter = IntentFilter()
+        val intentFilter = IntentFilter()
         intentFilter.addAction(Intent.ACTION_TIME_TICK)
         intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION)
         registerReceiver(receiver, intentFilter)
@@ -1578,7 +1584,6 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, CallingbedMa
                     } else if (tcpModel.action == TcpAction.DataAction.REFRESH) {
                         //重新加载数据,比如出院,入院等
                         initDevice()
-                        //AppUpdateHelper.restartApp(activity)
                     } else if (tcpModel.type == TcpType.TIME) {
                         if (tcpModel.action == TcpAction.TimeAction.SYNC) {
                             var time = 0L

+ 8 - 1
android_bed/src/main/h5_3128/java/com/wdkl/app/ncs/callingbed/fragment/MainFragment.kt

@@ -89,7 +89,7 @@ class MainFragment: BaseFragment<MainFragmentPresenter, MainViewLayoutBinding>()
 
         //更新护理项
         if (customInfo.list != null) {
-            AppTool.Time.delay(1800) {
+            AppTool.Time.delay(2000) {
                 if (activity != null) {
                     (activity as CallingbedActivity).updateNurseConfig(customInfo.list)
                 }
@@ -166,6 +166,13 @@ class MainFragment: BaseFragment<MainFragmentPresenter, MainViewLayoutBinding>()
         if (Constant.CUSTOM_ID != -1) {
             ll_empty.visibility = View.GONE
             presenter.loadCustomInfo(Constant.CUSTOM_ID)
+        } else {
+            //没有入住人也要刷新护理项数据
+            AppTool.Time.delay(2000) {
+                if (activity != null) {
+                    (activity as CallingbedActivity).updateNurseConfig(ArrayList())
+                }
+            }
         }
 
         tv_home_version.text = "V"+BuildConfig.VERSION_NAME+"_"+BuildConfig.VERSION_CODE