Przeglądaj źródła

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

weizhengliang 1 rok temu
rodzic
commit
dc759352a8

+ 25 - 27
android_bed/src/main/h7_3128/java/com/wdkl/app/ncs/callingbed/activity/CallingbedActivity.kt

@@ -184,7 +184,12 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, Callingbed2M
         regReceiver()
         RecordHelper.getInstance().init()
 
-        initNurseConfig()
+        initNurseConfigData()
+
+        linearLayout = LinearLayoutManager(activity)
+        nurseConfigAdapter = NurseConfigAdapter(activity, configList)
+        rv_left_list.layoutManager = linearLayout
+        rv_left_list.adapter = nurseConfigAdapter
 
         EventBus.getDefault().register(this)
 
@@ -209,9 +214,6 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, Callingbed2M
         //更新状态图标
         updateNetState()
 
-        //启动主fragment
-        //switchFragment(R.id.callingbed2_main_frame, MainFragment(), mainFragment)
-
         //先显示二维码界面,若设备已注册并启用了再切换到主界面
         switchFragment(R.id.callingbed2_main_frame, QrCodeFragment(), qrFragment)
 
@@ -450,6 +452,10 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, Callingbed2M
 
     private fun initDevice() {
         if (!TextUtils.isEmpty(Constant.LOCAL_MAC)) {
+            //重置数据
+            Constant.DEVICE_STATUS = -1
+            Constant.CUSTOM_ID = -1
+            Constant.SIP_ID = ""
             presenter.loadDeviceInfo(Constant.LOCAL_MAC)
         }
     }
@@ -599,23 +605,22 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, Callingbed2M
         SerialPortUtil.getInstance().startHeartBeat()
     }
 
-    private fun initNurseConfig() {
+    private fun initNurseConfigData() {
         //初始化默认护理项
+        configList.clear()
         for (index in 1..5) {
-            var item = NurseConfigDto()
+            val item = NurseConfigDto()
             item.nurseConfigName = StringUtil.getResString(R.string.default_nurse_config_name)
             item.nurseOptionName = StringUtil.getResString(R.string.str_empty)
             item.nurseColorRbg = "E7E7E7"
             configList.add(item)
         }
-
-        linearLayout = LinearLayoutManager(activity)
-        nurseConfigAdapter = NurseConfigAdapter(activity, configList)
-        rv_left_list.layoutManager = linearLayout
-        rv_left_list.adapter = nurseConfigAdapter
     }
 
     override fun updateNurseConfig(list: List<NurseConfigDto>) {
+        //更新护理项前先重新初始化一下
+        initNurseConfigData()
+
         if (list.size > 0) {
             for ((index, e) in list.withIndex()) {
                 if (index < configList.size) {
@@ -624,8 +629,9 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, Callingbed2M
                     configList.add(e)
                 }*/
             }
-            nurseConfigAdapter.updateData(configList)
         }
+
+        nurseConfigAdapter.updateData(configList)
     }
 
     override fun checkAppVersion() {
@@ -659,17 +665,12 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, Callingbed2M
 
     //数据加载错误
     override fun onError(message: String, type: Int) {
-        //errorLog("error",message)
         showMessage(message)
-        //加载失败,重置customid
-        //Constant.CUSTOM_ID = -1
     }
 
     //没有网络
     override fun onNoNet() {
         showMessage("none network")
-        //加载失败,重置customid
-        //Constant.CUSTOM_ID = -1
     }
 
     //数据加载完成
@@ -724,10 +725,11 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, Callingbed2M
             showMessage(R.string.device_disable)
             disableFuns()
         } else {
-            switchFragment(R.id.callingbed2_main_frame, MainFragment(), mainFragment)
             enableFuns()
         }
 
+        switchFragment(R.id.callingbed2_main_frame, MainFragment(), mainFragment)
+
         //加载分机所绑定紧急按钮设备信息
         if (deviceInfo.frameId != null) {
             presenter.getEmergencyDeviceInfo(deviceInfo.frameId)
@@ -929,18 +931,15 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, Callingbed2M
     private fun startTimingRefreshData() {
         val timerTask: TimerTask = object : TimerTask() {
             override fun run() {
-                if (Constant.TCP_CONNECTED) {
+                try {
                     initDevice()
+                } catch (e: Exception) {
+                    //
                 }
             }
         }
         val executor = Executors.newSingleThreadScheduledExecutor()
-        executor.scheduleAtFixedRate(timerTask, 10, 30, TimeUnit.MINUTES)
-    }
-
-    private fun startSipService() {
-        //val intent = Intent(BaseApplication.appContext, SipService::class.java)
-        //startService(intent)
+        executor.scheduleAtFixedRate(timerTask, 20, 30, TimeUnit.MINUTES)
     }
 
     fun startToActivity(intent: Intent) {
@@ -956,7 +955,7 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, Callingbed2M
 
     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)
@@ -1302,7 +1301,6 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, Callingbed2M
                     } 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/h7_3128/java/com/wdkl/app/ncs/callingbed/fragment/MainFragment.kt

@@ -102,7 +102,7 @@ class MainFragment: BaseFragment<MainFragmentPresenter, MainView2LayoutBinding>(
 
         //更新护理项
         if (customInfo.list != null) {
-            AppTool.Time.delay(1800) {
+            AppTool.Time.delay(2000) {
                 if (activity != null) {
                     (activity as CallingbedActivity).updateNurseConfig(customInfo.list)
                 }
@@ -163,6 +163,13 @@ class MainFragment: BaseFragment<MainFragmentPresenter, MainView2LayoutBinding>(
         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())
+                }
+            }
         }
     }