Bläddra i källkod

1.门口机增加医护板块,增加新tcp消息,定位,巡房,进入护理等,增加提示语倒计时。
2。增加体征模块。增加折线图

xunchuanzhi 1 år sedan
förälder
incheckning
452ef328a6
68 ändrade filer med 4141 tillägg och 109 borttagningar
  1. 11 0
      android_bed/build.gradle
  2. 5 0
      android_bed/src/main/AndroidManifest.xml
  3. 324 0
      android_bed/src/main/java/com/wdkl/app/ncs/callingbed/activity/SetHintActivity.kt
  4. 140 7
      android_bed/src/main/java/com/wdkl/app/ncs/callingbed/activity/SignActivity.kt
  5. 87 0
      android_bed/src/main/java/com/wdkl/app/ncs/callingbed/adapter/SignDataAdapter.kt
  6. 81 0
      android_bed/src/main/java/com/wdkl/app/ncs/callingbed/adapter/SignMianAdapter.kt
  7. 85 0
      android_bed/src/main/java/com/wdkl/app/ncs/callingbed/adapter/TipsMianAdapter.kt
  8. 84 0
      android_bed/src/main/java/com/wdkl/app/ncs/callingbed/adapter/YhMianAdapter.kt
  9. 3 1
      android_bed/src/main/java/com/wdkl/app/ncs/callingbed/broadcast/WdBootReceiver.java
  10. 6 0
      android_bed/src/main/java/com/wdkl/app/ncs/callingbed/di/CallingbedComponent.kt
  11. 42 0
      android_bed/src/main/java/com/wdkl/app/ncs/callingbed/dialog/ExitHuliDialogHelper.java
  12. 15 15
      android_bed/src/main/java/com/wdkl/app/ncs/callingbed/fragment/CallRecordsFragment.kt
  13. 57 5
      android_bed/src/main/java/com/wdkl/app/ncs/callingbed/fragment/NurseFragment.kt
  14. 170 0
      android_bed/src/main/java/com/wdkl/app/ncs/callingbed/fragment/SignDataTableFragment.kt
  15. 260 0
      android_bed/src/main/java/com/wdkl/app/ncs/callingbed/fragment/SignGraphOfCurveFragment.kt
  16. 7 2
      android_bed/src/main/java/com/wdkl/app/ncs/callingbed/fragment/SignMainFragment.kt
  17. 83 9
      android_bed/src/main/java/com/wdkl/app/ncs/callingbed/fragment/YhFragment.kt
  18. 1 1
      android_bed/src/main/java/com/wdkl/app/ncs/callingbed/hardware/imp/A133HardTools.java
  19. 395 0
      android_bed/src/main/java/com/wdkl/app/ncs/callingbed/utils/LineChartUtils.java
  20. 14 0
      android_bed/src/main/res/drawable/shape_screen_bg.xml
  21. 14 0
      android_bed/src/main/res/drawable/shape_screen_txt_bg.xml
  22. 0 1
      android_bed/src/main/res/layout/acivity_time_setting.xml
  23. 73 4
      android_bed/src/main/res/layout/activity_sign.xml
  24. 1 1
      android_bed/src/main/res/layout/callingbed_main_new.xml
  25. 38 2
      android_bed/src/main/res/layout/callingbed_nurse.xml
  26. 527 0
      android_bed/src/main/res/layout/callingbed_nurse_msg.xml
  27. 42 0
      android_bed/src/main/res/layout/nurse_exit_huli_dialog.xml
  28. 103 0
      android_bed/src/main/res/layout/sign_data_table_fragment_lay.xml
  29. 121 0
      android_bed/src/main/res/layout/sign_graph_curve_fragment_lay.xml
  30. 22 0
      android_bed/src/main/res/layout/sign_main_item_lay.xml
  31. 61 0
      android_bed/src/main/res/layout/sign_view_item_lay.xml
  32. 29 0
      android_bed/src/main/res/layout/yh_main_item_lay.xml
  33. BIN
      android_bed/src/main/res/mipmap-mdpi/img_x.png
  34. BIN
      android_bed/src/main/res/mipmap-xxxhdpi/msg_bg.png
  35. 1 0
      android_bed/src/main/res/values/colors.xml
  36. 2 0
      android_host/build.gradle
  37. 0 2
      android_host/src/main/java/com/wdkl/ncs/android/component/nursehome/activity/CallingHostActivationActivity.kt
  38. 2 0
      android_host/src/main/java/com/wdkl/ncs/android/component/nursehome/activity/HostbedinfoActivity.kt
  39. 2 1
      android_host/src/main/java/com/wdkl/ncs/android/component/nursehome/adapter/FrameBedVosConfinementAdapter.kt
  40. 0 1
      android_host/src/main/java/com/wdkl/ncs/android/component/nursehome/fragment/CallRecordsFragment.kt
  41. 0 1
      app/src/main/code/com/wdkl/app/ncs/activity/SchemeActivity.kt
  42. 2 3
      build.gradle
  43. 8 10
      callingdoor/src/main/java/com/wdkl/app/ncs/callingdoor/adapter/DeviceMenuapter.kt
  44. 29 10
      callingdoor/src/main/java/com/wdkl/app/ncs/callingdoor/fragment/NursingWorkFragment.kt
  45. 7 1
      callingdoor/src/main/java/com/wdkl/app/ncs/callingdoor/fragment/YhFragment.kt
  46. 5 1
      gstream/build.gradle
  47. 9 0
      middleware/src/main/code/com/wdkl/ncs/android/middleware/api/BedDeviceApi.kt
  48. 9 0
      middleware/src/main/code/com/wdkl/ncs/android/middleware/api/DoorDeviceApi.kt
  49. 15 1
      middleware/src/main/code/com/wdkl/ncs/android/middleware/common/Constant.java
  50. 7 2
      middleware/src/main/code/com/wdkl/ncs/android/middleware/logic/contract/callingbed/BedSignFragmentContract.kt
  51. 1 0
      middleware/src/main/code/com/wdkl/ncs/android/middleware/logic/contract/callingdoor/NurseFragmentContract.kt
  52. 2 0
      middleware/src/main/code/com/wdkl/ncs/android/middleware/logic/contract/callingdoor/NursingWorkFragmentContract.kt
  53. 7 0
      middleware/src/main/code/com/wdkl/ncs/android/middleware/logic/contract/callingdoor/SetHintActivityContract.kt
  54. 6 2
      middleware/src/main/code/com/wdkl/ncs/android/middleware/logic/contract/callingdoor/YhFragmentContract.kt
  55. 53 2
      middleware/src/main/code/com/wdkl/ncs/android/middleware/logic/presenter/callingbed/BedSignFragmentPresenter.kt
  56. 5 0
      middleware/src/main/code/com/wdkl/ncs/android/middleware/logic/presenter/callingdoor/NursingWorkFragmentPresenter.kt
  57. 19 3
      middleware/src/main/code/com/wdkl/ncs/android/middleware/logic/presenter/callingdoor/SetHintActivityPresenter.kt
  58. 33 5
      middleware/src/main/code/com/wdkl/ncs/android/middleware/logic/presenter/callingdoor/YhFragmentPresenter.kt
  59. 3 0
      middleware/src/main/code/com/wdkl/ncs/android/middleware/logic/presenter/welcome/WelcomePresenter.kt
  60. 248 0
      middleware/src/main/code/com/wdkl/ncs/android/middleware/model/vo/ClerkByVO.java
  61. 323 0
      middleware/src/main/code/com/wdkl/ncs/android/middleware/model/vo/SingDataBean.java
  62. 116 0
      middleware/src/main/code/com/wdkl/ncs/android/middleware/model/vo/TipsVO.java
  63. 151 0
      middleware/src/main/code/com/wdkl/ncs/android/middleware/tcp/channel/YhUtil.java
  64. 15 0
      middleware/src/main/code/com/wdkl/ncs/android/middleware/tcp/dto/TcpModel.java
  65. 141 0
      middleware/src/main/code/com/wdkl/ncs/android/middleware/tcp/enums/TcpAction.java
  66. 3 1
      middleware/src/main/code/com/wdkl/ncs/android/middleware/tcp/enums/TcpType.java
  67. BIN
      resource/src/main/res/mipmap-xxxhdpi/list.png
  68. 16 15
      welcome/src/main/code/com/wdkl/ncs/android/component/welcome/activity/WelcomeActivity.kt

+ 11 - 0
android_bed/build.gradle

@@ -56,6 +56,12 @@ android {
             buildConfigField 'String', 'flag', '"5"'
         }
 
+        //外购 a133s
+        zhihe_A133 {
+            dimension "app"
+            buildConfigField 'String', 'flag', '"7"'
+        }
+
         //中兴8寸
         zx_8 {
             dimension "app"
@@ -136,6 +142,11 @@ dependencies {
     implementation 'org.altbeacon:android-beacon-library:2.17'
 
     implementation files('libs/zhylapi.jar')
+
+//    implementation 'com.github.AAChartModel:AAChartCore-Kotlin:-SNAPSHOT'
+
+    implementation 'com.github.PhilJay:MPAndroidChart:v3.0.3'
+
 }
 
 /**

+ 5 - 0
android_bed/src/main/AndroidManifest.xml

@@ -123,6 +123,11 @@
             android:screenOrientation="nosensor"
             android:launchMode="singleTask"/>
 
+        <activity android:name="com.wdkl.app.ncs.callingbed.activity.SetHintActivity"
+            android:turnScreenOn="true"
+            android:screenOrientation="nosensor"
+            android:launchMode="singleTask"/>
+
 
         <service android:name="com.wdkl.app.ncs.callingbed.bt_gateway.BluetoothService"/>
 

+ 324 - 0
android_bed/src/main/java/com/wdkl/app/ncs/callingbed/activity/SetHintActivity.kt

@@ -0,0 +1,324 @@
+package com.wdkl.app.ncs.callingbed.activity
+
+import android.graphics.Color
+import android.os.CountDownTimer
+import android.text.Editable
+import android.view.View
+import androidx.recyclerview.widget.GridLayoutManager
+import androidx.recyclerview.widget.LinearLayoutManager
+import com.enation.javashop.net.engine.model.NetState
+import com.wdkl.app.ncs.callingbed.R
+import com.wdkl.app.ncs.callingbed.adapter.SignMianAdapter
+import com.wdkl.app.ncs.callingbed.adapter.TipsMianAdapter
+import com.wdkl.app.ncs.callingbed.adapter.YhMianAdapter
+import com.wdkl.app.ncs.callingbed.databinding.CallingbedNurseMsgBinding
+import com.wdkl.app.ncs.callingbed.launch.CallingbedLaunch
+import com.wdkl.app.ncs.callingbed.utils.SPUtils
+import com.wdkl.ncs.android.lib.base.BaseActivity
+import com.wdkl.ncs.android.lib.utils.showMessage
+import com.wdkl.ncs.android.middleware.common.Constant
+import com.wdkl.ncs.android.middleware.common.MessageEvent
+import com.wdkl.ncs.android.middleware.logic.contract.callingdoor.SetHintActivityContract
+import com.wdkl.ncs.android.middleware.logic.presenter.callingdoor.SetHintActivityPresenter
+import com.wdkl.ncs.android.middleware.model.vo.ClerkByVO
+import com.wdkl.ncs.android.middleware.model.vo.TipsVO
+import com.wdkl.ncs.android.middleware.tcp.channel.YhUtil
+import kotlinx.android.synthetic.main.acivity_time_setting.*
+import kotlinx.android.synthetic.main.callingbed_nurse.*
+import kotlinx.android.synthetic.main.callingbed_nurse_msg.*
+import kotlinx.android.synthetic.main.callingbed_nurse_msg.nurse_msg_bt
+import kotlinx.android.synthetic.main.view_title_layout.*
+import org.greenrobot.eventbus.Subscribe
+import org.greenrobot.eventbus.ThreadMode
+
+/**
+ * 设置提示语
+ * */
+class SetHintActivity : BaseActivity<SetHintActivityPresenter, CallingbedNurseMsgBinding>(), SetHintActivityContract.View ,TipsMianAdapter.OnItemClickListener{
+
+    private val TAG = "SetHintActivity"
+
+    private var allOrders = ArrayList<TipsVO>()
+    private lateinit var adapter: TipsMianAdapter
+
+    var passno = ""
+    var yh_name = ""
+    var text = ""
+    var  set_time : Int= 0
+    var times : Int= 0
+
+    var timer1: CountDownTimer? = null
+
+    override fun getLayId(): Int {
+        return R.layout.callingbed_nurse_msg
+    }
+
+    override fun bindDagger() {
+        CallingbedLaunch.component.inject(this)
+    }
+
+    override fun init() {
+        passno = SPUtils.get(this, Constant.YH_NO, "") as String
+
+        yh_name = SPUtils.get(this, Constant.YH_NAME, "")as String
+
+        showui()
+
+        rv_tips_main_view.visibility = View.GONE
+        adapter = TipsMianAdapter(activity, ArrayList())
+        val layoutManager = GridLayoutManager(activity, 2, LinearLayoutManager.VERTICAL, false)
+        rv_tips_main_view.layoutManager = layoutManager
+        adapter.setOnItemClickListener(this)
+        rv_tips_main_view.adapter = adapter
+    }
+
+    override fun bindEvent() {
+        //测试显示待机页面:暂时没有接口
+        nurse_msg_tx_5.setOnClickListener {
+            showbtui(false)
+            nurse_msg_tx_5.setBackgroundResource(R.drawable.shape_time_f_bg_d)
+            nurse_msg_tx_5.setTextColor(Color.parseColor("#0090ff"))
+            text = nurse_msg_tx_5.text.toString()
+            nurse_msg_ed.setText(text)
+        }
+        nurse_msg_tx_6.setOnClickListener {
+            showbtui(false)
+            nurse_msg_tx_6.setBackgroundResource(R.drawable.shape_time_f_bg_d)
+            nurse_msg_tx_6.setTextColor(Color.parseColor("#0090ff"))
+            text = nurse_msg_tx_6.text.toString()
+            nurse_msg_ed.setText(text)
+        }
+        nurse_msg_tx_7.setOnClickListener {
+            showbtui(false)
+            nurse_msg_tx_7.setBackgroundResource(R.drawable.shape_time_f_bg_d)
+            nurse_msg_tx_7.setTextColor(Color.parseColor("#0090ff"))
+            text = nurse_msg_tx_7.text.toString()
+            nurse_msg_ed.setText(text)
+        }
+        nurse_msg_tx_8.setOnClickListener {
+            showbtui(false)
+            nurse_msg_tx_8.setBackgroundResource(R.drawable.shape_time_f_bg_d)
+            nurse_msg_tx_8.setTextColor(Color.parseColor("#0090ff"))
+            text = nurse_msg_tx_8.text.toString()
+            nurse_msg_ed.setText(text)
+        }
+        nurse_msg_tx_9.setOnClickListener {
+            showbtui(false)
+            nurse_msg_tx_9.setBackgroundResource(R.drawable.shape_time_f_bg_d)
+            nurse_msg_tx_9.setTextColor(Color.parseColor("#0090ff"))
+
+            text = nurse_msg_tx_9.text.toString()
+            nurse_msg_ed.setText(text)
+        }
+        nurse_msg_tx_10.setOnClickListener {
+            showbtui(false)
+            nurse_msg_tx_10.setBackgroundResource(R.drawable.shape_time_f_bg_d)
+            nurse_msg_tx_10.setTextColor(Color.parseColor("#0090ff"))
+            text = nurse_msg_tx_10.text.toString()
+            nurse_msg_ed.setText(text)
+        }
+        nurse_msg_tx_13.setOnClickListener {
+            showbtui(true)
+            nurse_msg_tx_13.setBackgroundResource(R.drawable.shape_time_f_bg_d)
+            nurse_msg_tx_13.setTextColor(Color.parseColor("#0090ff"))
+            set_time = 10
+        }
+        nurse_msg_tx_14.setOnClickListener {
+            showbtui(true)
+            nurse_msg_tx_14.setBackgroundResource(R.drawable.shape_time_f_bg_d)
+            nurse_msg_tx_14.setTextColor(Color.parseColor("#0090ff"))
+            set_time = 15
+        }
+        nurse_msg_tx_15.setOnClickListener {
+            showbtui(true)
+            nurse_msg_tx_15.setBackgroundResource(R.drawable.shape_time_f_bg_d)
+            nurse_msg_tx_15.setTextColor(Color.parseColor("#0090ff"))
+            set_time = 30
+        }
+        nurse_msg_tx_16.setOnClickListener {
+            showbtui(true)
+            nurse_msg_tx_16.setBackgroundResource(R.drawable.shape_time_f_bg_d)
+            nurse_msg_tx_16.setTextColor(Color.parseColor("#0090ff"))
+            set_time = 60
+        }
+        nurse_msg_tx_17.setOnClickListener {
+            showbtui(true)
+            nurse_msg_tx_17.setBackgroundResource(R.drawable.shape_time_f_bg_d)
+            nurse_msg_tx_17.setTextColor(Color.parseColor("#0090ff"))
+            set_time = 90
+        }
+        nurse_msg_tx_18.setOnClickListener {
+            showbtui(true)
+            nurse_msg_tx_18.setBackgroundResource(R.drawable.shape_time_f_bg_d)
+            nurse_msg_tx_18.setTextColor(Color.parseColor("#0090ff"))
+            set_time = 120
+        }
+
+
+        nurse_msg_bt.setOnClickListener {
+            if (set_time<=0 ||  nurse_msg_ed.text.equals("")) {
+                showMessage("倒计时的设定时间不能少于1分钟且必须提示语不能为空")
+                return@setOnClickListener
+            }
+            var time = set_time.toLong()
+            timer1 = object : CountDownTimer(time * 60 * 1000, 1000) {
+                override fun onTick(millisUntilFinished: Long) {
+
+                }
+
+                override fun onFinish() {
+                    YhUtil.sendExitScreenTip(Constant.DEVICE_ID, passno,nurse_msg_ed.text.toString(),times.toString())
+                    msg_ll.visibility = View.GONE
+                    timer1?.cancel()
+                    //退出护理 直接回到首页。
+                    YhUtil.sendReinforceResponsed(Constant.DEVICE_ID, passno)
+                    (activity as CallingbedActivity).BackMain()
+                }
+            }.start()
+
+            screensacver_text.text =  nurse_msg_ed.text
+            //开始倒计时
+            times =set_time* 60
+            YhUtil.sendScreenTip(Constant.DEVICE_ID, passno,nurse_msg_ed.text.toString(),times.toString())
+            msg_ll.visibility= View.VISIBLE
+            msg_view_title_layout_img.visibility = View.VISIBLE
+            msg_view_title_layout_tv_hospital_name.text = "退出提示"
+        }
+
+        msg_view_title_layout_return.setOnClickListener {
+            //退出倒计时
+            YhUtil.sendExitScreenTip(Constant.DEVICE_ID, passno,nurse_msg_ed.text.toString(),times.toString())
+            msg_ll.visibility = View.GONE
+            timer1?.cancel()
+            set_time=0
+            nurse_msg_ed.setText("")
+            showbtui(true)
+            showbtui(false)
+
+        }
+
+        //返回上一层
+        view_title_layout_return.setOnClickListener {
+            view_title_layout_img.visibility = View.GONE
+            view_title_layout_tv_no.visibility =View.GONE
+            finish()
+        }
+    }
+
+    private fun showbtui(lift_type: Boolean){
+        if(lift_type){
+            nurse_msg_tx_13.setBackgroundResource(R.drawable.shape_time_f_bg)
+            nurse_msg_tx_13.setTextColor(resources.getColor(R.color.text_name_color))
+            nurse_msg_tx_14.setBackgroundResource(R.drawable.shape_time_f_bg)
+            nurse_msg_tx_14.setTextColor(resources.getColor(R.color.text_name_color))
+            nurse_msg_tx_15.setBackgroundResource(R.drawable.shape_time_f_bg)
+            nurse_msg_tx_15.setTextColor(resources.getColor(R.color.text_name_color))
+            nurse_msg_tx_16.setBackgroundResource(R.drawable.shape_time_f_bg)
+            nurse_msg_tx_16.setTextColor(resources.getColor(R.color.text_name_color))
+            nurse_msg_tx_17.setBackgroundResource(R.drawable.shape_time_f_bg)
+            nurse_msg_tx_17.setTextColor(resources.getColor(R.color.text_name_color))
+            nurse_msg_tx_18.setBackgroundResource(R.drawable.shape_time_f_bg)
+            nurse_msg_tx_18.setTextColor(resources.getColor(R.color.text_name_color))
+        }else{
+            nurse_msg_tx_5.setBackgroundResource(R.drawable.shape_time_f_bg)
+            nurse_msg_tx_5.setTextColor(resources.getColor(R.color.text_name_color))
+            nurse_msg_tx_6.setBackgroundResource(R.drawable.shape_time_f_bg)
+            nurse_msg_tx_6.setTextColor(resources.getColor(R.color.text_name_color))
+            nurse_msg_tx_7.setBackgroundResource(R.drawable.shape_time_f_bg)
+            nurse_msg_tx_7.setTextColor(resources.getColor(R.color.text_name_color))
+            nurse_msg_tx_8.setBackgroundResource(R.drawable.shape_time_f_bg)
+            nurse_msg_tx_8.setTextColor(resources.getColor(R.color.text_name_color))
+            nurse_msg_tx_9.setBackgroundResource(R.drawable.shape_time_f_bg)
+            nurse_msg_tx_9.setTextColor(resources.getColor(R.color.text_name_color))
+            nurse_msg_tx_10.setBackgroundResource(R.drawable.shape_time_f_bg)
+            nurse_msg_tx_10.setTextColor(resources.getColor(R.color.text_name_color))
+
+        }
+
+    }
+
+    private fun showui(){
+        msg_ll.visibility= View.GONE
+        view_title_layout_tv_hospital_name.setText(R.string.str_back)
+        view_title_layout_img.visibility = View.VISIBLE
+        view_title_layout_tv_no.visibility = View.VISIBLE
+        view_title_layout_tv_no.text ="设置提示语"
+
+        //网络图标
+        if ( Constant.network_state == 1){
+            view_title_layout_iv_wifi.visibility = View.VISIBLE
+            view_title_layout_iv_ethernet.visibility = View.GONE
+            view_title_layout_iv_wifi.setImageResource(R.mipmap.ic_wifi_success)
+        }else if ( Constant.network_state == 2){
+            view_title_layout_iv_wifi.visibility = View.GONE
+            view_title_layout_iv_ethernet.visibility = View.VISIBLE
+            view_title_layout_iv_ethernet.setImageResource(R.mipmap.ic_ethernet_success)
+        }else{
+            view_title_layout_iv_wifi.visibility = View.GONE
+            view_title_layout_iv_ethernet.visibility = View.VISIBLE
+            view_title_layout_iv_ethernet.setImageResource(R.mipmap.ic_ethernet_fail)
+        }
+        //蓝牙图标
+        if ( Constant.BT_state == 0){
+            view_title_layout_iv_bt.setImageResource(R.mipmap.ic_bt_success)
+        }
+        //白天/黑夜
+        if (Constant.day_state == 0){
+            view_title_layout_iv_day_night.setImageResource(R.mipmap.ic_daylight)
+        }else{
+            view_title_layout_iv_day_night.setImageResource(R.mipmap.ic_night)
+        }
+        view_title_layout_iv_tcp.setImageResource(R.mipmap.ic_tcp_success)
+    }
+
+    override fun destory() {
+
+    }
+
+    override fun showTips(advices: ArrayList<TipsVO>) {
+        if (advices != null) {
+            rv_tips_main_view.visibility = View.VISIBLE
+            nurse_msg_tx_rl.visibility = View.GONE
+            allOrders.clear()
+            allOrders = advices
+            rv_nurse_main_ll.visibility = View.VISIBLE
+            adapter.updateData(advices)
+        }else{
+            rv_tips_main_view.visibility = View.GONE
+            nurse_msg_tx_rl.visibility = View.VISIBLE
+        }
+    }
+
+    override fun onNoNet() {
+
+    }
+
+    override fun onError(message: String, type: Int) {
+
+    }
+
+    override fun complete(message: String, type: Int) {
+
+    }
+
+    override fun start() {
+
+    }
+
+    override fun networkMonitor(state: NetState) {
+
+    }
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    fun onMoonEvent(messageEvent: MessageEvent) {
+        if (Constant.EVENT_FINISHh == messageEvent.type) {
+            finish()
+
+        }
+    }
+
+    override fun onItemClick(view: View, keyId: Int) {
+        if (allOrders.get(keyId).show_text != null){
+            nurse_msg_ed.text = allOrders.get(keyId).show_text as Editable?
+        }
+    }
+}

+ 140 - 7
android_bed/src/main/java/com/wdkl/app/ncs/callingbed/activity/SignActivity.kt

@@ -1,19 +1,31 @@
 package com.wdkl.app.ncs.callingbed.activity
 
 import android.os.Build
+import android.os.Bundle
 import android.view.View
 import androidx.annotation.RequiresApi
+import androidx.fragment.app.Fragment
+import androidx.fragment.app.FragmentManager
+import androidx.fragment.app.FragmentTransaction
+import androidx.recyclerview.widget.LinearLayoutManager
 import com.enation.javashop.net.engine.model.NetState
 import com.wdkl.app.ncs.callingbed.R
+import com.wdkl.app.ncs.callingbed.adapter.SignMianAdapter
 import com.wdkl.app.ncs.callingbed.databinding.SignFragmentLayBinding
-import com.wdkl.app.ncs.callingbed.fragment.SignMainFragment
+import com.wdkl.app.ncs.callingbed.fragment.SignDataTableFragment
+import com.wdkl.app.ncs.callingbed.fragment.SignGraphOfCurveFragment
 import com.wdkl.app.ncs.callingbed.launch.CallingbedLaunch
 
 import com.wdkl.ncs.android.lib.base.BaseActivity
+import com.wdkl.ncs.android.lib.utils.showMessage
 import com.wdkl.ncs.android.middleware.common.Constant
 import com.wdkl.ncs.android.middleware.common.MessageEvent
 import com.wdkl.ncs.android.middleware.logic.contract.callingbed.BedSignFragmentContract
 import com.wdkl.ncs.android.middleware.logic.presenter.callingbed.BedSignFragmentPresenter
+import com.wdkl.ncs.android.middleware.model.vo.SingDataBean
+import kotlinx.android.synthetic.main.activity_sign.*
+import kotlinx.android.synthetic.main.callingbed_main_new.*
+import kotlinx.android.synthetic.main.cost_view_lay.*
 import kotlinx.android.synthetic.main.view_title_layout.*
 import org.greenrobot.eventbus.EventBus
 import org.greenrobot.eventbus.Subscribe
@@ -22,9 +34,13 @@ import org.greenrobot.eventbus.ThreadMode
 /**
  * 体征
  * */
-class SignActivity : BaseActivity<BedSignFragmentPresenter, SignFragmentLayBinding>(), BedSignFragmentContract.View {
+class SignActivity : BaseActivity<BedSignFragmentPresenter, SignFragmentLayBinding>(), BedSignFragmentContract.View, SignMianAdapter.OnItemClickListener {
+
     private val TAG = "SignActivity"
+    private lateinit var adapter: SignMianAdapter
+    private var infoFragment: Fragment? = null
 
+      var type:Int=-1
     override fun getLayId(): Int {
         return R.layout.activity_sign
     }
@@ -36,21 +52,91 @@ class SignActivity : BaseActivity<BedSignFragmentPresenter, SignFragmentLayBindi
     @RequiresApi(Build.VERSION_CODES.O)
     override fun init() {
         showui()
-
-        supportFragmentManager.beginTransaction()
-            .add(R.id.activity_sign, SignMainFragment())
-            .commitAllowingStateLoss()
+        adapter = SignMianAdapter(activity, ArrayList())
+        val layoutManager = LinearLayoutManager(activity, LinearLayoutManager.HORIZONTAL, false)
+        rv_sign_main_view.layoutManager = layoutManager
+        adapter.setOnItemClickListener(this)
+        rv_sign_main_view.adapter = adapter
+        if (Constant.CUSTOM_ID != -1) {
+            presenter.loadSignsByPage(Constant.CUSTOM_ID)
+        } else {
+            showMessage("no member id")
+        }
+        //默认显示曲线图
+        val fragment = SignGraphOfCurveFragment()
+        var bundle = Bundle()
+        bundle.putInt("state", type)
+        fragment.arguments = bundle
+        addCallFragment(fragment)
     }
 
     override fun destory() {
 
     }
 
+
+
+    private fun addCallFragment(fragment: Fragment) {
+        supportFragmentManager.inTransaction {
+            if (infoFragment!=null){
+                remove(infoFragment!!)
+            }
+            infoFragment = fragment
+            updateLeftBtState()
+            add(R.id.activity_sign, fragment)
+        }
+    }
+    private fun updateLeftBtState() {
+        sign_previous_button.setBackgroundResource(R.drawable.shape_main_bt_bg)
+        sign_previous_button.setTextColor(getResources().getColor(R.color.text_name_color))
+
+        sign_next_button.setBackgroundResource(R.drawable.shape_main_bt_bg)
+        sign_next_button.setTextColor(getResources().getColor(R.color.text_name_color))
+
+        // 判断当前显示的Fragment是哪个
+        when (infoFragment) {
+            is SignDataTableFragment -> {
+                //数据列表
+                sign_next_button.setBackgroundResource(R.drawable.shape_main_hos_txt_bg)
+                sign_next_button.setTextColor(getResources().getColor(R.color.white))
+            }
+            is SignGraphOfCurveFragment -> {
+                //体征
+                sign_previous_button.setBackgroundResource(R.drawable.shape_main_hos_txt_bg)
+                sign_previous_button.setTextColor(getResources().getColor(R.color.white))
+
+            }
+
+
+        }
+
+    }
     override fun bindEvent() {
         //返回
         view_title_layout_return.setOnClickListener {
             finish()
         }
+
+        //曲线图
+        sign_previous_button.setOnClickListener {
+            val fragment = SignGraphOfCurveFragment()
+            var bundle = Bundle()
+            bundle.putInt("state", type)
+            fragment.arguments = bundle
+            addCallFragment(fragment)
+
+        }
+
+
+        //数据列表
+        sign_next_button.setOnClickListener {
+            val fragment = SignDataTableFragment()
+            var bundle = Bundle()
+            bundle.putInt("state", type)
+            fragment.arguments = bundle
+            addCallFragment(fragment)
+        }
+
     }
 
     private fun showui(){
@@ -58,6 +144,31 @@ class SignActivity : BaseActivity<BedSignFragmentPresenter, SignFragmentLayBindi
         view_title_layout_img.visibility = View.VISIBLE
         view_title_layout_tv_no.visibility = View.VISIBLE
         view_title_layout_tv_no.text ="体征"
+        //网络图标
+        if ( Constant.network_state == 1){
+            view_title_layout_iv_wifi.visibility = View.VISIBLE
+            view_title_layout_iv_ethernet.visibility = View.GONE
+            view_title_layout_iv_wifi.setImageResource(R.mipmap.ic_wifi_success)
+        }else if ( Constant.network_state == 2){
+            view_title_layout_iv_wifi.visibility = View.GONE
+            view_title_layout_iv_ethernet.visibility = View.VISIBLE
+            view_title_layout_iv_ethernet.setImageResource(R.mipmap.ic_ethernet_success)
+        }else{
+            view_title_layout_iv_wifi.visibility = View.GONE
+            view_title_layout_iv_ethernet.visibility = View.VISIBLE
+            view_title_layout_iv_ethernet.setImageResource(R.mipmap.ic_ethernet_fail)
+        }
+        //蓝牙图标
+        if ( Constant.BT_state == 0){
+            view_title_layout_iv_bt.setImageResource(R.mipmap.ic_bt_success)
+        }
+        //白天/黑夜
+        if (Constant.day_state == 0){
+            view_title_layout_iv_day_night.setImageResource(R.mipmap.ic_daylight)
+        }else{
+            view_title_layout_iv_day_night.setImageResource(R.mipmap.ic_night)
+        }
+        view_title_layout_iv_tcp.setImageResource(R.mipmap.ic_tcp_success)
     }
 
     override fun onStart() {
@@ -69,14 +180,29 @@ class SignActivity : BaseActivity<BedSignFragmentPresenter, SignFragmentLayBindi
         EventBus.getDefault().unregister(this)
         super.onStop()
     }
+
     @Subscribe(threadMode = ThreadMode.MAIN)
     fun onMoonEvent(messageEvent: MessageEvent) {
         if (Constant.EVENT_FINISHh == messageEvent.type) {
             finish()
 
+        }else if (Constant.EVENT_SING_TYPE == messageEvent.type) {
+            type = messageEvent.message.hashCode()
+
         }
+
+
     }
-    override fun setSignData() {
+
+    override fun showsigns(advices: ArrayList<SingDataBean>) {
+        if(advices !=null){
+            adapter.updateData(advices)
+        }
+            
+
+    }
+
+    override fun onNoNet() {
 
     }
 
@@ -97,5 +223,12 @@ class SignActivity : BaseActivity<BedSignFragmentPresenter, SignFragmentLayBindi
 
     }
 
+    override fun onItemClick(view: View, keyId: Int) {
+        type=keyId
+        EventBus.getDefault().post(MessageEvent(keyId, Constant.EVENT_SING_TYPE))
+    }
+    inline fun FragmentManager.inTransaction(func: FragmentTransaction.() -> FragmentTransaction) {
+        beginTransaction().func().commitAllowingStateLoss()
+    }
 
 }

+ 87 - 0
android_bed/src/main/java/com/wdkl/app/ncs/callingbed/adapter/SignDataAdapter.kt

@@ -0,0 +1,87 @@
+package com.wdkl.app.ncs.callingbed.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.LinearLayout
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.wdkl.app.ncs.callingbed.R
+import com.wdkl.ncs.android.lib.utils.TimeHandle
+import com.wdkl.ncs.android.middleware.model.vo.SingDataBean
+
+class SignDataAdapter : RecyclerView.Adapter<SignDataAdapter.ViewHolder>{
+
+    private var context: Context
+    private var data: ArrayList<SingDataBean.LogListBean>
+    private lateinit var onItemClickListener: OnItemClickListener
+    private var selectedPosition = 0
+
+    constructor(context: Context, data: ArrayList<SingDataBean.LogListBean>): super() {
+        this.context = context
+        this.data = data
+    }
+
+    fun setOnItemClickListener(listener: OnItemClickListener) {
+        this.onItemClickListener = listener
+    }
+
+    fun updateData(data: ArrayList<SingDataBean.LogListBean>) {
+        this.data = data
+        notifyDataSetChanged()
+    }
+
+    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
+        val view = LayoutInflater.from(parent.context).inflate(R.layout.sign_view_item_lay, parent, false)
+        val viewHolder = ViewHolder(view)
+
+        return viewHolder
+    }
+
+    override fun getItemCount(): Int {
+        return data.size
+    }
+
+    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
+        if (position % 2 == 0) {
+            // 偶数设置黑色背景
+            holder.signviewlltop.setBackgroundResource(R.color.text_name_color);
+        } else {
+            // 奇数位置设置白色背景
+            holder.signviewlltop.setBackgroundResource(R.color.white);
+        }
+        var number = position+1
+        holder.signitemname.text =number.toString()
+        holder.signitemtype.text = data.get(position).param_name
+        holder.signitemmoney.text = data.get(position).vs_value.toString()
+        holder.signitemtime.text = TimeHandle.getDateTime( data.get(position).create_time  * 1000L, "yyyy-MM-dd HH:mm")
+
+    }
+
+    private fun updateSelectedPosition(newPosition: Int) {
+        selectedPosition = newPosition
+        notifyDataSetChanged()
+    }
+    class ViewHolder: RecyclerView.ViewHolder {
+        var signitemname : TextView
+        var signitemtype : TextView
+        var signitemmoney : TextView
+        var signitemtime : TextView
+        var signviewlltop : LinearLayout
+
+
+        constructor(itemView: View): super(itemView) {
+            signitemname = itemView.findViewById(R.id.sign_item_name)
+            signitemtype = itemView.findViewById(R.id.sign_item_type)
+            signitemmoney = itemView.findViewById(R.id.sign_item_money)
+            signitemtime = itemView.findViewById(R.id.sign_item_time)
+            signviewlltop = itemView.findViewById(R.id.sign_view_ll_top)
+
+        }
+    }
+
+    interface OnItemClickListener {
+        fun onItemClick(view: View, keyId: Int)
+    }
+}

+ 81 - 0
android_bed/src/main/java/com/wdkl/app/ncs/callingbed/adapter/SignMianAdapter.kt

@@ -0,0 +1,81 @@
+package com.wdkl.app.ncs.callingbed.adapter
+
+import android.content.Context
+import android.graphics.Color
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.wdkl.app.ncs.callingbed.R
+import com.wdkl.ncs.android.middleware.model.vo.SingDataBean
+
+class SignMianAdapter : RecyclerView.Adapter<SignMianAdapter.ViewHolder>{
+
+    private var context: Context
+    private var data: ArrayList<SingDataBean>
+    private lateinit var onItemClickListener: OnItemClickListener
+    private var selectedPosition = 0
+
+    constructor(context: Context, data: ArrayList<SingDataBean>): super() {
+        this.context = context
+        this.data = data
+    }
+
+    fun setOnItemClickListener(listener: OnItemClickListener) {
+        this.onItemClickListener = listener
+    }
+
+    fun updateData(data: ArrayList<SingDataBean>) {
+        this.data = data
+        notifyDataSetChanged()
+    }
+
+    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
+        val view = LayoutInflater.from(parent.context).inflate(R.layout.sign_main_item_lay, parent, false)
+        val viewHolder = ViewHolder(view)
+
+        return viewHolder
+    }
+
+    override fun getItemCount(): Int {
+        return data.size
+    }
+
+    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
+        if ( data.get(position).vital_signs_name!=null){
+            holder.signitemname.text = data.get(position).vital_signs_name
+        }
+        // 设置item的背景颜色
+        if (position == selectedPosition) {
+            holder.signitemname.setBackgroundResource(R.drawable.shape_main_hos_txt_bg);// 设置选中状态的背景颜色
+            holder.signitemname.setTextColor(Color.parseColor("#FFFFFF"));// 设置选中状态的字体颜色
+        } else {
+            holder.signitemname.setBackground(null); // 设置选中状态的背景颜色
+            holder.signitemname.setTextColor(Color.parseColor("#737373"));// 设置默认状态的字体颜色
+
+        }
+        holder.signitemname.setOnClickListener {
+            onItemClickListener.onItemClick(holder.signitemname, position)
+            updateSelectedPosition(position);
+        }
+    }
+
+    private fun updateSelectedPosition(newPosition: Int) {
+        selectedPosition = newPosition
+        notifyDataSetChanged()
+    }
+    class ViewHolder: RecyclerView.ViewHolder {
+        var signitemname : TextView
+
+
+        constructor(itemView: View): super(itemView) {
+            signitemname = itemView.findViewById(R.id.sign_main_item_name)
+
+        }
+    }
+
+    interface OnItemClickListener {
+        fun onItemClick(view: View, keyId: Int)
+    }
+}

+ 85 - 0
android_bed/src/main/java/com/wdkl/app/ncs/callingbed/adapter/TipsMianAdapter.kt

@@ -0,0 +1,85 @@
+package com.wdkl.app.ncs.callingbed.adapter
+
+import android.content.Context
+import android.graphics.Color
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.wdkl.app.ncs.callingbed.R
+import com.wdkl.ncs.android.middleware.model.vo.ClerkByVO
+import com.wdkl.ncs.android.middleware.model.vo.SingDataBean
+import com.wdkl.ncs.android.middleware.model.vo.TipsVO
+import kotlinx.android.synthetic.main.acivity_time_setting.*
+
+class TipsMianAdapter : RecyclerView.Adapter<TipsMianAdapter.ViewHolder>{
+
+    private var context: Context
+    private var data: ArrayList<TipsVO>
+    private lateinit var onItemClickListener: OnItemClickListener
+    private var selectedPosition = -1
+
+    constructor(context: Context, data: ArrayList<TipsVO>): super() {
+        this.context = context
+        this.data = data
+    }
+
+    fun setOnItemClickListener(listener: OnItemClickListener) {
+        this.onItemClickListener = listener
+    }
+
+    fun updateData(data: ArrayList<TipsVO>) {
+        this.data = data
+        notifyDataSetChanged()
+    }
+
+    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
+        val view = LayoutInflater.from(parent.context).inflate(R.layout.yh_main_item_lay, parent, false)
+        val viewHolder = ViewHolder(view)
+
+        return viewHolder
+    }
+
+    override fun getItemCount(): Int {
+        return data.size
+    }
+
+    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
+
+        if ( data.get(position).show_text!=null){
+            holder.signitemname.text = data.get(position).show_text
+        }
+        // 设置item的背景颜色
+        if (position == selectedPosition) {
+            holder.signitemname.setBackgroundResource(R.drawable.shape_time_f_bg_d);// 设置选中状态的背景颜色
+            holder.signitemname.setTextColor(Color.parseColor("#0090ff"));// 设置选中状态的字体颜色
+        } else {
+            holder.signitemname.setBackgroundResource(R.drawable.shape_time_f_bg);// 设置选中状态的背景颜色
+            holder.signitemname.setTextColor(Color.parseColor("#737373"));// 设置默认状态的字体颜色
+
+        }
+        holder.signitemname.setOnClickListener {
+            onItemClickListener.onItemClick(holder.signitemname, position)
+            updateSelectedPosition(position);
+        }
+    }
+
+    private fun updateSelectedPosition(newPosition: Int) {
+        selectedPosition = newPosition
+        notifyDataSetChanged()
+    }
+    class ViewHolder: RecyclerView.ViewHolder {
+        var signitemname : TextView
+
+
+        constructor(itemView: View): super(itemView) {
+            signitemname = itemView.findViewById(R.id.yh_main_item_name)
+
+        }
+    }
+
+    interface OnItemClickListener {
+        fun onItemClick(view: View, keyId: Int)
+    }
+}

+ 84 - 0
android_bed/src/main/java/com/wdkl/app/ncs/callingbed/adapter/YhMianAdapter.kt

@@ -0,0 +1,84 @@
+package com.wdkl.app.ncs.callingbed.adapter
+
+import android.content.Context
+import android.graphics.Color
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.wdkl.app.ncs.callingbed.R
+import com.wdkl.ncs.android.middleware.model.vo.ClerkByVO
+import com.wdkl.ncs.android.middleware.model.vo.SingDataBean
+import kotlinx.android.synthetic.main.acivity_time_setting.*
+
+class YhMianAdapter : RecyclerView.Adapter<YhMianAdapter.ViewHolder>{
+
+    private var context: Context
+    private var data: ArrayList<ClerkByVO>
+    private lateinit var onItemClickListener: OnItemClickListener
+    private var selectedPosition = -1
+
+    constructor(context: Context, data: ArrayList<ClerkByVO>): super() {
+        this.context = context
+        this.data = data
+    }
+
+    fun setOnItemClickListener(listener: OnItemClickListener) {
+        this.onItemClickListener = listener
+    }
+
+    fun updateData(data: ArrayList<ClerkByVO>) {
+        this.data = data
+        notifyDataSetChanged()
+    }
+
+    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
+        val view = LayoutInflater.from(parent.context).inflate(R.layout.yh_main_item_lay, parent, false)
+        val viewHolder = ViewHolder(view)
+
+        return viewHolder
+    }
+
+    override fun getItemCount(): Int {
+        return data.size
+    }
+
+    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
+
+        if ( data.get(position).clerk_name!=null){
+            holder.signitemname.text = data.get(position).clerk_name
+        }
+        // 设置item的背景颜色
+        if (position == selectedPosition) {
+            holder.signitemname.setBackgroundResource(R.drawable.shape_time_f_bg_d);// 设置选中状态的背景颜色
+            holder.signitemname.setTextColor(Color.parseColor("#0090ff"));// 设置选中状态的字体颜色
+        } else {
+            holder.signitemname.setBackgroundResource(R.drawable.shape_time_f_bg);// 设置选中状态的背景颜色
+            holder.signitemname.setTextColor(Color.parseColor("#737373"));// 设置默认状态的字体颜色
+
+        }
+        holder.signitemname.setOnClickListener {
+            onItemClickListener.onItemClick(holder.signitemname, position)
+            updateSelectedPosition(position);
+        }
+    }
+
+    private fun updateSelectedPosition(newPosition: Int) {
+        selectedPosition = newPosition
+        notifyDataSetChanged()
+    }
+    class ViewHolder: RecyclerView.ViewHolder {
+        var signitemname : TextView
+
+
+        constructor(itemView: View): super(itemView) {
+            signitemname = itemView.findViewById(R.id.yh_main_item_name)
+
+        }
+    }
+
+    interface OnItemClickListener {
+        fun onItemClick(view: View, keyId: Int)
+    }
+}

+ 3 - 1
android_bed/src/main/java/com/wdkl/app/ncs/callingbed/broadcast/WdBootReceiver.java

@@ -6,14 +6,16 @@ import android.content.Intent;
 import android.os.Build;
 import android.util.Log;
 
+import com.wdkl.app.ncs.callingbed.BuildConfig;
 import com.wdkl.ncs.android.component.welcome.activity.WelcomeActivity;
+import com.wdkl.ncs.android.middleware.common.Constant;
 
 public class WdBootReceiver extends BroadcastReceiver {
 
     @Override
     public void onReceive(Context context, Intent intent) {
         if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) {
-            if (!Build.MODEL.equals("rk3128")) {
+            if (!BuildConfig.flag.equals(Constant.DEV_Z_RK3128)) {
                 Log.d("wdBoot", "收到开机广播,启动app");
                 Intent startIntent = new Intent(context, WelcomeActivity.class);
                 startIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

+ 6 - 0
android_bed/src/main/java/com/wdkl/app/ncs/callingbed/di/CallingbedComponent.kt

@@ -33,6 +33,8 @@ interface CallingbedComponent {
 
     fun inject(fragment: DoctorsAdviceActivity)
 
+    fun inject(fragment: SetHintActivity)
+
     fun inject(fragment: MainFragment)
 
     fun inject(fragment: VoiceMsgFragment)
@@ -54,6 +56,10 @@ interface CallingbedComponent {
 
     fun inject(fragment: CallingFragment)
 
+    fun inject(fragment: SignGraphOfCurveFragment)
+
+    fun inject(fragment: SignDataTableFragment)
+
 
 
 }

+ 42 - 0
android_bed/src/main/java/com/wdkl/app/ncs/callingbed/dialog/ExitHuliDialogHelper.java

@@ -0,0 +1,42 @@
+package com.wdkl.app.ncs.callingbed.dialog;
+
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.Button;
+import android.widget.TextView;
+
+import com.wdkl.app.ncs.callingbed.R;
+
+
+/**
+ * 退出医护护理
+ * */
+public class ExitHuliDialogHelper {
+
+    private static AlertDialog alertDialog;
+
+    public static void showDialog(Activity activity,ClickListener clickListener) {
+
+        View contentView = LayoutInflater.from(activity).inflate(R.layout.nurse_exit_huli_dialog, null);
+        AlertDialog.Builder builder = new AlertDialog.Builder(activity);
+        builder.setView(contentView);
+        TextView hili_text = contentView.findViewById(R.id.exit_hili_text);
+        Button huli_confirm_button = contentView.findViewById(R.id.exit_huli_confirm_button);
+        huli_confirm_button.setOnClickListener(v -> {
+            if (alertDialog != null && alertDialog.isShowing()) {
+                alertDialog.dismiss();
+                clickListener.onClick();
+            }
+        });
+        alertDialog = builder.create();
+        alertDialog.setCanceledOnTouchOutside(true);
+        alertDialog.setCancelable(true);
+        alertDialog.show();
+
+    }
+    public interface ClickListener{
+        void onClick();
+    }
+}

+ 15 - 15
android_bed/src/main/java/com/wdkl/app/ncs/callingbed/fragment/CallRecordsFragment.kt

@@ -91,21 +91,21 @@ class CallRecordsFragment : BaseFragment<BedCallRecordsFragmentPresenter, MainCa
         main_call_r_l_rv_2.layoutManager = virtualLayoutManager
         main_call_r_l_rv_2.adapter = delegateAdapter
 
-        val animationSet = AnimationSet(true)
-        val translateAnimation = TranslateAnimation(
-            //X轴初始位置
-            Animation.RELATIVE_TO_SELF, 1.0f,
-            //X轴移动的结束位置
-            Animation.RELATIVE_TO_SELF, 0.0f,
-            //y轴开始位置
-            Animation.RELATIVE_TO_SELF, 0.0f,
-            //y轴移动后的结束位置
-            Animation.RELATIVE_TO_SELF, 0.0f
-        )
-        translateAnimation.duration = 800
-        animationSet.fillAfter = true
-        animationSet.addAnimation(translateAnimation)
-        ll_call_records.startAnimation(animationSet)
+//        val animationSet = AnimationSet(true)
+//        val translateAnimation = TranslateAnimation(
+//            //X轴初始位置
+//            Animation.RELATIVE_TO_SELF, 1.0f,
+//            //X轴移动的结束位置
+//            Animation.RELATIVE_TO_SELF, 0.0f,
+//            //y轴开始位置
+//            Animation.RELATIVE_TO_SELF, 0.0f,
+//            //y轴移动后的结束位置
+//            Animation.RELATIVE_TO_SELF, 0.0f
+//        )
+//        translateAnimation.duration = 800
+//        animationSet.fillAfter = true
+//        animationSet.addAnimation(translateAnimation)
+//        ll_call_records.startAnimation(animationSet)
     }
 
     override fun onResume() {

+ 57 - 5
android_bed/src/main/java/com/wdkl/app/ncs/callingbed/fragment/NurseFragment.kt

@@ -4,18 +4,27 @@ import android.content.Intent
 import com.enation.javashop.net.engine.model.NetState
 import com.wdkl.app.ncs.callingbed.R
 import com.wdkl.app.ncs.callingbed.activity.CallingbedActivity
+import com.wdkl.app.ncs.callingbed.activity.SetHintActivity
 import com.wdkl.app.ncs.callingbed.databinding.CallingbedNurseMainBinding
+import com.wdkl.app.ncs.callingbed.dialog.ExitHuliDialogHelper
 import com.wdkl.app.ncs.callingbed.dialog.HuliDialogHelper
 import com.wdkl.app.ncs.callingbed.dialog.PatrolDialogHelper
 import com.wdkl.app.ncs.callingbed.dialog.PositioningDialogHelper
 import com.wdkl.app.ncs.callingbed.launch.CallingbedLaunch
+import com.wdkl.app.ncs.callingbed.utils.SPUtils
 
 import com.wdkl.ncs.android.lib.base.BaseFragment
 import com.wdkl.ncs.android.lib.utils.showMessage
 import com.wdkl.ncs.android.lib.vo.filter
+import com.wdkl.ncs.android.middleware.common.Constant
+import com.wdkl.ncs.android.middleware.common.MessageEvent
 import com.wdkl.ncs.android.middleware.logic.contract.callingdoor.NurseFragmentContract
 import com.wdkl.ncs.android.middleware.logic.presenter.callingdoor.NurseFragmentPresenter
+import com.wdkl.ncs.android.middleware.tcp.channel.YhUtil
 import kotlinx.android.synthetic.main.callingbed_nurse_main.*
+import org.greenrobot.eventbus.EventBus
+import org.greenrobot.eventbus.Subscribe
+import org.greenrobot.eventbus.ThreadMode
 
 
 /**
@@ -26,6 +35,9 @@ class NurseFragment : BaseFragment<NurseFragmentPresenter, CallingbedNurseMainBi
     val TAG = "YhFragment"
     var isconfirm = true
 
+    var passno = ""
+    var yh_name = ""
+
     override fun getLayId(): Int {
         return R.layout.callingbed_nurse_main
     }
@@ -34,6 +46,10 @@ class NurseFragment : BaseFragment<NurseFragmentPresenter, CallingbedNurseMainBi
     }
     //数据绑定
     override fun init() {
+        passno = SPUtils.get(getActivity(), Constant.YH_NO, "") as String
+
+        yh_name = SPUtils.get(getActivity(), Constant.YH_NAME, "")as String
+
         showui()
 
     }
@@ -41,12 +57,14 @@ class NurseFragment : BaseFragment<NurseFragmentPresenter, CallingbedNurseMainBi
     override fun bindEvent() {
            //退出医护
         nurse_main_bt.setOnClickListener {
+            YhUtil.sendReinforceResponsed(Constant.DEVICE_ID, passno)
             (activity as CallingbedActivity).BackMain()
         }
         //定位
         nurse_main_1_ll.setOnClickListener {
             PositioningDialogHelper.showDialog(activity, object : PositioningDialogHelper.ClickListener {
                 override fun onClick() {
+                    YhUtil.sendPositioning(Constant.DEVICE_ID, passno)
                     nurse_main_1_ll.setBackgroundResource(R.drawable.shape_positioning_dialog_bt_bg)
                     nurse_main_1_img.setImageResource(R.mipmap.ding_y)
                     nurse_top_1_tx.setTextColor(resources.getColor(R.color.white))
@@ -59,6 +77,7 @@ class NurseFragment : BaseFragment<NurseFragmentPresenter, CallingbedNurseMainBi
         nurse_main_2_ll.setOnClickListener {
             PatrolDialogHelper.showDialog(activity, object : PatrolDialogHelper.ClickListener {
                 override fun onClick() {
+                    YhUtil.sendRoomCheck(Constant.DEVICE_ID, passno)
                     nurse_main_2_ll.setBackgroundResource(R.drawable.shape_reinforcements_dialog_bt_bg)
                     nurse_main_2_img.setImageResource(R.mipmap.xun_y)
                     nurse_top_2_tx.setTextColor(resources.getColor(R.color.white))
@@ -78,6 +97,8 @@ class NurseFragment : BaseFragment<NurseFragmentPresenter, CallingbedNurseMainBi
                         nurse_top_3_tx.setTextColor(resources.getColor(R.color.white))
                         nurse_top_3_tx.text="护理中"
                         nurse_main_3_tx.setTextColor(resources.getColor(R.color.white))
+                        (activity as CallingbedActivity).setHuli()
+                        YhUtil.sendReinforceResponsed(Constant.DEVICE_ID, passno)
                     }else{
                         nurse_main_3_ll.setBackgroundResource(R.drawable.shape_bed_bg)
                         nurse_main_3_img.setImageResource(R.mipmap.hu)
@@ -89,13 +110,18 @@ class NurseFragment : BaseFragment<NurseFragmentPresenter, CallingbedNurseMainBi
                 }
             })
         }
-
+        //设置提示语
+        nurse_main_4_ll.setOnClickListener {
+            val intent = Intent()
+            intent.setClass(activity, SetHintActivity::class.java)
+            activity.startActivity(intent)
+        }
 
 
     }
 
     private fun showui(){
-        nurse_main_tx_name.setText("张舒婷"+"护士")
+        nurse_main_tx_name.setText(yh_name)
         nurse_main_1_ll.setBackgroundResource(R.drawable.shape_bed_bg)
         nurse_main_1_img.setBackgroundResource(R.mipmap.ding)
         nurse_top_1_tx.setTextColor(resources.getColor(R.color.black))
@@ -106,9 +132,9 @@ class NurseFragment : BaseFragment<NurseFragmentPresenter, CallingbedNurseMainBi
         nurse_main_3_ll.setBackgroundResource(R.drawable.shape_bed_bg)
         nurse_main_3_img.setBackgroundResource(R.mipmap.hu)
         nurse_top_3_tx.setTextColor(resources.getColor(R.color.black))
-        nurse_main_1_tx.text="住院部402房"
-        nurse_main_2_tx.text="住院部402房"
-        nurse_main_3_tx.text="该房病床进入护理"
+        nurse_main_1_tx.text=Constant.BED_NAME
+        nurse_main_2_tx.text=Constant.BED_NAME
+        nurse_main_3_tx.text=Constant.BED_NAME+"进入护理"
     }
     /**执行其他销毁操作*/
     override fun destory() {
@@ -131,6 +157,19 @@ class NurseFragment : BaseFragment<NurseFragmentPresenter, CallingbedNurseMainBi
 
     }
 
+    override fun onStart() {
+        if (!EventBus.getDefault().isRegistered(this)) {
+            EventBus.getDefault().register(this);
+        }
+        super.onStart()
+    }
+
+    override fun onStop() {
+        if (EventBus.getDefault().isRegistered(this)) {
+            EventBus.getDefault().unregister(this);
+        }
+        super.onStop()
+    }
 
     override fun networkMonitor(state: NetState) {
         state.filter(onWifi = {
@@ -141,6 +180,19 @@ class NurseFragment : BaseFragment<NurseFragmentPresenter, CallingbedNurseMainBi
 
         })
     }
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    fun onMoonEvent(messageEvent: MessageEvent) {
+        when (messageEvent.getType()) {
+            Constant.EVENT_EXIT_YH ->{
+                ExitHuliDialogHelper.showDialog(activity,object : ExitHuliDialogHelper.ClickListener {
+                    override fun onClick() {
+                        YhUtil.sendReinforceResponsed(Constant.DEVICE_ID, passno)
+                        (activity as CallingbedActivity).BackMain()
+                    }
+                })
 
+            }
+        }
+    }
 
 }

+ 170 - 0
android_bed/src/main/java/com/wdkl/app/ncs/callingbed/fragment/SignDataTableFragment.kt

@@ -0,0 +1,170 @@
+package com.wdkl.app.ncs.callingbed.fragment
+
+
+import android.view.View
+import androidx.recyclerview.widget.LinearLayoutManager
+import com.enation.javashop.net.engine.model.NetState
+import com.wdkl.app.ncs.callingbed.R
+import com.wdkl.app.ncs.callingbed.adapter.SignDataAdapter
+import com.wdkl.app.ncs.callingbed.adapter.SignMianAdapter
+import com.wdkl.app.ncs.callingbed.databinding.SignDataTableFragmentLayBinding
+import com.wdkl.app.ncs.callingbed.launch.CallingbedLaunch
+import com.wdkl.ncs.android.lib.base.BaseFragment
+import com.wdkl.ncs.android.lib.utils.showMessage
+import com.wdkl.ncs.android.lib.vo.filter
+import com.wdkl.ncs.android.middleware.common.Constant
+import com.wdkl.ncs.android.middleware.common.MessageEvent
+import com.wdkl.ncs.android.middleware.logic.contract.callingbed.BedSignFragmentContract
+import com.wdkl.ncs.android.middleware.logic.presenter.callingbed.BedSignFragmentPresenter
+import com.wdkl.ncs.android.middleware.model.vo.CustomerFeeConfigVO
+import com.wdkl.ncs.android.middleware.model.vo.DeviceMenulist
+import com.wdkl.ncs.android.middleware.model.vo.SingDataBean
+import kotlinx.android.synthetic.main.activity_sign.*
+import kotlinx.android.synthetic.main.callingbed_nurse_msg.*
+import kotlinx.android.synthetic.main.cost_view_lay.*
+import kotlinx.android.synthetic.main.cost_view_lay.rv_cost_main_view
+import kotlinx.android.synthetic.main.sign_data_table_fragment_lay.*
+import org.greenrobot.eventbus.EventBus
+import org.greenrobot.eventbus.Subscribe
+import org.greenrobot.eventbus.ThreadMode
+
+/**
+ * 体征数据表格
+ * */
+class SignDataTableFragment : BaseFragment<BedSignFragmentPresenter, SignDataTableFragmentLayBinding>(), BedSignFragmentContract.View {
+
+
+    private val TAG = "SignDataTableFragment"
+    private lateinit var adapter: SignDataAdapter
+    private var allOrders = ArrayList<SingDataBean>()
+
+    var type:Int=0
+    var state :Int=0
+    override fun getLayId(): Int {
+        return R.layout.sign_data_table_fragment_lay
+    }
+
+    override fun bindDagger() {
+        CallingbedLaunch.component.inject(this)
+    }
+
+    override fun init() {
+        state = requireArguments().getInt("state")
+        adapter = SignDataAdapter(activity, ArrayList())
+        val layoutManager = LinearLayoutManager(activity, LinearLayoutManager.VERTICAL, false)
+        rv_sing_data_item_view.layoutManager = layoutManager
+        rv_sing_data_item_view.adapter = adapter
+
+        if (Constant.CUSTOM_ID != -1) {
+            presenter.loadSignsByPage(55375)
+//            presenter.loadSignsByPage(Constant.CUSTOM_ID)
+        } else {
+            showMessage("no custom id")
+        }
+    }
+
+    override fun bindEvent() {
+        //
+    }
+
+    override fun destory() {
+        //
+    }
+
+    override fun onStart() {
+        EventBus.getDefault().register(this)
+        super.onStart()
+    }
+
+    override fun onStop() {
+        EventBus.getDefault().unregister(this)
+        super.onStop()
+    }
+
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    fun onMoonEvent(messageEvent: MessageEvent) {
+        if (Constant.EVENT_SING_TYPE == messageEvent.type) {
+            type = messageEvent.message.hashCode()
+            if (allOrders != null) {
+                rv_sing_data_item_tx.text = allOrders.get(type).vital_signs_name+"数据列表"
+                if (allOrders.get(type).log_list!=null) {
+                    adapter.updateData(allOrders.get(type).log_list as ArrayList<SingDataBean.LogListBean>)
+                    emptyImageView.visibility= View.GONE
+                } else {
+                    adapter.updateData(ArrayList()) // 更新空的数据列表来刷新界面为空白
+                    emptyImageView.visibility= View.VISIBLE
+                }
+            }
+        }
+    }
+
+
+
+
+
+    override fun onError(message: String, type: Int) {
+        showMessage(message)
+    }
+
+    override fun showsigns(advices: ArrayList<SingDataBean>) {
+        if (advices!=null){
+                allOrders.clear()
+                allOrders=advices
+            if (state!=-1){
+                type =state
+                rv_sing_data_item_tx.text = allOrders.get(type).vital_signs_name+"数据列表"
+                if (allOrders.get(type).log_list!=null) {
+                    adapter.updateData(allOrders.get(type).log_list as ArrayList<SingDataBean.LogListBean>)
+                    emptyImageView.visibility= View.GONE
+                } else {
+                    adapter.updateData(ArrayList()) // 更新空的数据列表来刷新界面为空白
+                    emptyImageView.visibility= View.VISIBLE
+                }
+                return
+            }
+                if (allOrders.get(type).log_list !=null) {
+                    adapter.updateData(allOrders.get(type).log_list as ArrayList<SingDataBean.LogListBean>)
+                    emptyImageView.visibility= View.GONE
+                } else {
+                    adapter.updateData(ArrayList()) // 更新空的数据列表来刷新界面为空白
+                    emptyImageView.visibility= View.VISIBLE
+                }
+        }else{
+            showMessage("数据为空")
+        }
+
+    }
+
+    override fun onNoNet() {
+        showMessage("none network")
+    }
+
+    override fun complete(message: String, type: Int) {
+    }
+
+    override fun start() {
+    }
+//    override fun onDestroy() {
+//        if (allOrders!=null){
+//            allOrders.clear()
+//        }
+//        super.onDestroy()
+//    }
+//
+//    override fun onPause() {
+//        if (allOrders!=null){
+//            allOrders.clear()
+//        }
+//
+//        super.onPause()
+//    }
+    override fun networkMonitor(state: NetState) {
+        state.filter(onWifi = {
+
+        },onMobile = {
+
+        },offline = {
+
+        })
+    }
+}

+ 260 - 0
android_bed/src/main/java/com/wdkl/app/ncs/callingbed/fragment/SignGraphOfCurveFragment.kt

@@ -0,0 +1,260 @@
+package com.wdkl.app.ncs.callingbed.fragment
+
+import android.util.Log
+import android.view.View
+import com.enation.javashop.net.engine.model.NetState
+import com.github.mikephil.charting.data.Entry
+import com.wdkl.app.ncs.callingbed.R
+import com.wdkl.app.ncs.callingbed.databinding.SignGraphCurveFragmentLayBinding
+import com.wdkl.app.ncs.callingbed.launch.CallingbedLaunch
+import com.wdkl.app.ncs.callingbed.utils.LineChartUtils
+import com.wdkl.ncs.android.lib.base.BaseFragment
+import com.wdkl.ncs.android.lib.utils.TimeHandle
+import com.wdkl.ncs.android.lib.utils.showMessage
+import com.wdkl.ncs.android.lib.vo.filter
+import com.wdkl.ncs.android.middleware.common.Constant
+import com.wdkl.ncs.android.middleware.common.MessageEvent
+import com.wdkl.ncs.android.middleware.logic.contract.callingbed.BedSignFragmentContract
+import com.wdkl.ncs.android.middleware.logic.presenter.callingbed.BedSignFragmentPresenter
+import com.wdkl.ncs.android.middleware.model.vo.SingDataBean
+import kotlinx.android.synthetic.main.sign_graph_curve_fragment_lay.*
+import org.greenrobot.eventbus.EventBus
+import org.greenrobot.eventbus.Subscribe
+import org.greenrobot.eventbus.ThreadMode
+
+
+class SignGraphOfCurveFragment : BaseFragment<BedSignFragmentPresenter, SignGraphCurveFragmentLayBinding>(), BedSignFragmentContract.View {
+
+
+    private val TAG = "SignGraphOfCurveFragment"
+    private var allOrders = ArrayList<SingDataBean>()
+    var type:Int=0
+    var state :Int=0
+
+    private val xdata = ArrayList<String>()
+
+
+    private val list = ArrayList<Entry>() //数据集合
+
+    private val list1 =ArrayList<Entry>() //数据集合
+
+
+    private var lineChartUtils: LineChartUtils? = null
+
+
+    override fun getLayId(): Int {
+        return R.layout.sign_graph_curve_fragment_lay
+    }
+
+    override fun bindDagger() {
+        CallingbedLaunch.component.inject(this)
+    }
+
+    override fun init() {
+        state = requireArguments().getInt("state")
+        if (state!=-1){
+            type =state
+        }
+        if (Constant.CUSTOM_ID != -1) {
+            presenter.loadSignsByPage(55375)
+//            presenter.loadSignsByPage(Constant.CUSTOM_ID)
+        } else {
+            showMessage("no custom id")
+        }
+    }
+
+    private fun initView() {
+        if (allOrders!=null){
+            if (allOrders.get(0).log_list!=null){
+                for (i in 0 until allOrders.get(0).log_list.size) {
+                    list.add(Entry(i.toFloat(), (allOrders.get(0).log_list[i].vs_value).toFloat()))
+                    xdata.add(TimeHandle.getDateTime(allOrders.get(type).log_list[i].create_time * 1000L, "yyyy-MM-dd HH:mm"))
+                }
+            }
+
+        }
+//        //直接调用即可
+         lineChartUtils = LineChartUtils(
+                 list,
+                 list1,
+                 xdata,
+                 1,
+                 chart)
+    }
+
+    //设置顶部线条颜色
+    private fun setlinview(type: Int) {
+        sign_graph_curve_text_top.text = allOrders.get(type).vital_signs_name+"数据列表"
+        sign_graph_d.text = "单位:"+allOrders.get(type).unit
+        if (type==1){
+            sign_graph_curve_text1_top.text = "收缩压"
+            sign_graph_curve_text2_top.text = "舒张压"
+            sign_graph_curve_text2_top.visibility =View.VISIBLE
+            sign_graph_curve_view_2_top.visibility =View.VISIBLE
+        }else{
+            sign_graph_curve_text1_top.text =  allOrders.get(type).vital_signs_name
+            sign_graph_curve_text2_top.visibility =View.GONE
+            sign_graph_curve_view_2_top.visibility =View.GONE
+        }
+
+    }
+
+    //设置顶部线条颜色
+    private fun setlindata() {
+        list.clear()
+        list1.clear()
+        xdata.clear()
+        setlinview(type)
+        if (allOrders != null) {
+            if (allOrders.get(type).log_list!=null) {
+                sign_graph_emptyImageView.visibility= View.GONE
+                if (allOrders.get(type).vital_signs_name.equals("血压")){
+
+                    if (lineChartUtils==null){
+                        for (i in 0 until allOrders.get(type).log_list.size) {
+                            if (allOrders.get(type).log_list[i].param_id==16){
+                                list?.add(Entry(i.toFloat(), (allOrders.get(type).log_list[i].vs_value).toFloat()))
+                            }else{
+                                list1?.add(Entry(i.toFloat(), (allOrders.get(type).log_list[i].vs_value).toFloat()))
+                            }
+                            xdata.add(TimeHandle.getDateTime(allOrders.get(type).log_list[i].create_time * 1000L, "yyyy-MM-dd HH:mm"))
+                        }
+                        lineChartUtils = LineChartUtils(
+                                list,
+                                list1,
+                                xdata,
+                                2,
+                                chart)
+                    }else{
+                        lineChartUtils!!.createLineChartUtils();
+                        for (i in 0 until allOrders.get(type).log_list.size) {
+                            if (allOrders.get(type).log_list[i].param_id==16){
+                                list?.add(Entry(i.toFloat(), (allOrders.get(type).log_list[i].vs_value).toFloat()))
+                            }else{
+                                list1?.add(Entry(i.toFloat(), (allOrders.get(type).log_list[i].vs_value).toFloat()))
+                            }
+                            xdata.add(TimeHandle.getDateTime(allOrders.get(type).log_list[i].create_time * 1000L, "yyyy-MM-dd HH:mm"))
+                        }
+                        lineChartUtils!!.updateData(list,list1  ,xdata,type+1,chart)
+                    }
+                }else{
+                    if (lineChartUtils==null){
+                        for (i in 0 until allOrders.get(type).log_list.size) {
+                            list.add(Entry(i.toFloat(), (allOrders.get(type).log_list[i].vs_value).toFloat()))
+                            xdata.add(TimeHandle.getDateTime(allOrders.get(type).log_list[i].create_time * 1000L, "yyyy-MM-dd HH:mm"))
+                        }
+                        lineChartUtils = LineChartUtils(
+                                list,
+                                list1,
+                                xdata,
+                                type+1,
+                                chart)
+                    }else{
+                        lineChartUtils!!.createLineChartUtils();
+                        for (i in 0 until allOrders.get(type).log_list.size) {
+                            list.add(Entry(i.toFloat(), (allOrders.get(type).log_list[i].vs_value).toFloat()))
+                            xdata.add(TimeHandle.getDateTime(allOrders.get(type).log_list[i].create_time * 1000L, "yyyy-MM-dd HH:mm"))
+                        }
+                        Log.d("LineChartUtils", "xdata size: " + xdata.size);
+                        lineChartUtils!!.updateData(list,null  ,xdata,type+1,chart)
+                    }
+                }
+
+            } else {
+                lineChartUtils!!.createLineChartUtils();
+                sign_graph_emptyImageView.visibility= View.VISIBLE
+            }
+        }
+
+    }
+
+
+    override fun bindEvent() {
+        //
+    }
+
+    override fun destory() {
+        //
+    }
+
+    override fun onStart() {
+        EventBus.getDefault().register(this)
+        super.onStart()
+    }
+
+    override fun onStop() {
+        EventBus.getDefault().unregister(this)
+        super.onStop()
+    }
+
+
+
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    fun onMoonEvent(messageEvent: MessageEvent) {
+        if (Constant.EVENT_SING_TYPE == messageEvent.type) {
+            type = messageEvent.message.hashCode()
+            setlindata()
+        }
+    }
+
+
+
+
+
+    override fun onError(message: String, type: Int) {
+        showMessage(message)
+    }
+
+    override fun showsigns(advices: ArrayList<SingDataBean>) {
+        if (advices!=null){
+            allOrders.clear()
+            allOrders=advices
+            if (allOrders.get(type).log_list !=null) {
+                sign_graph_emptyImageView.visibility= View.GONE
+                setlindata()
+            } else {
+                sign_graph_emptyImageView.visibility= View.VISIBLE
+            }
+        }else{
+            showMessage("数据为空")
+        }
+
+    }
+
+    override fun onNoNet() {
+        showMessage("none network")
+    }
+
+    override fun complete(message: String, type: Int) {
+    }
+
+    override fun start() {
+    }
+
+//    override fun onDestroy() {
+//        if (allOrders!=null){
+//            allOrders.clear()
+//        }
+//        lineChartUtils!!.createLineChartUtils();
+//        super.onDestroy()
+//    }
+//
+//    override fun onPause() {
+//        if (allOrders!=null){
+//            allOrders.clear()
+//        }
+//        lineChartUtils!!.createLineChartUtils();
+//
+//        super.onPause()
+//    }
+
+    override fun networkMonitor(state: NetState) {
+        state.filter(onWifi = {
+
+        }, onMobile = {
+
+        }, offline = {
+
+        })
+    }
+}

+ 7 - 2
android_bed/src/main/java/com/wdkl/app/ncs/callingbed/fragment/SignMainFragment.kt

@@ -21,6 +21,7 @@ import com.wdkl.ncs.android.lib.base.BaseFragment
 import com.wdkl.ncs.android.middleware.common.Constant
 import com.wdkl.ncs.android.middleware.logic.contract.callingbed.BedSignFragmentContract
 import com.wdkl.ncs.android.middleware.logic.presenter.callingbed.BedSignFragmentPresenter
+import com.wdkl.ncs.android.middleware.model.vo.SingDataBean
 import kotlinx.android.synthetic.main.sign_fragment_lay.*
 
 /**
@@ -129,8 +130,12 @@ class SignMainFragment : BaseFragment<BedSignFragmentPresenter, SignFragmentLayB
         loadingDialog.dismiss()
     }
 
-    override fun setSignData() {
-        //
+    override fun showsigns(advices: ArrayList<SingDataBean>) {
+
+    }
+
+    override fun onNoNet() {
+
     }
 
     override fun onError(message: String, type: Int) {

+ 83 - 9
android_bed/src/main/java/com/wdkl/app/ncs/callingbed/fragment/YhFragment.kt

@@ -1,19 +1,28 @@
 package com.wdkl.app.ncs.callingdoor.fragment
 
 
-import android.os.Parcel
-import android.os.Parcelable
+import android.view.View
+import androidx.recyclerview.widget.GridLayoutManager
+import androidx.recyclerview.widget.LinearLayoutManager
 import com.enation.javashop.net.engine.model.NetState
 import com.wdkl.app.ncs.callingbed.R
 import com.wdkl.app.ncs.callingbed.activity.CallingbedActivity
+import com.wdkl.app.ncs.callingbed.adapter.SignMianAdapter
+import com.wdkl.app.ncs.callingbed.adapter.YhMianAdapter
 import com.wdkl.app.ncs.callingbed.databinding.CallingbedNurseBinding
 import com.wdkl.app.ncs.callingbed.launch.CallingbedLaunch
-
+import com.wdkl.app.ncs.callingbed.utils.SPUtils
 import com.wdkl.ncs.android.lib.base.BaseFragment
 import com.wdkl.ncs.android.lib.utils.showMessage
 import com.wdkl.ncs.android.lib.vo.filter
+import com.wdkl.ncs.android.middleware.common.Constant
 import com.wdkl.ncs.android.middleware.logic.contract.callingdoor.YhFragmentContract
 import com.wdkl.ncs.android.middleware.logic.presenter.callingdoor.YhFragmentPresenter
+import com.wdkl.ncs.android.middleware.model.vo.ClerkByVO
+import com.wdkl.ncs.android.middleware.model.vo.DeviceMenulist
+import com.wdkl.ncs.android.middleware.tcp.channel.OtherUtil
+import com.wdkl.ncs.android.middleware.tcp.channel.YhUtil
+import kotlinx.android.synthetic.main.activity_sign.*
 import kotlinx.android.synthetic.main.callingbed_nurse.*
 
 
@@ -21,32 +30,81 @@ import kotlinx.android.synthetic.main.callingbed_nurse.*
  * 医护界面
  */
 
-class  YhFragment : BaseFragment<YhFragmentPresenter, CallingbedNurseBinding>(), YhFragmentContract.View {
+class  YhFragment : BaseFragment<YhFragmentPresenter, CallingbedNurseBinding>(), YhFragmentContract.View , YhMianAdapter.OnItemClickListener {
 
     val TAG = "YhFragment"
+
+    var passno = ""
+    var yh_name = ""
+    private var allOrders = ArrayList<ClerkByVO>()
+    private lateinit var adapter: YhMianAdapter
+
+
     override fun getLayId(): Int {
         return R.layout.callingbed_nurse
     }
+
     override fun bindDagger() {
         CallingbedLaunch.component.inject(this)
     }
+
     //数据绑定
     override fun init() {
+        rv_nurse_main_ll.visibility = View.GONE
+        adapter = YhMianAdapter(activity, ArrayList())
+        val layoutManager = GridLayoutManager(activity, 4, LinearLayoutManager.VERTICAL, false)
+        rv_nurse_main_view.layoutManager = layoutManager
+        adapter.setOnItemClickListener(this)
+        rv_nurse_main_view.adapter = adapter
 
     }
+
     //点击事件
     override fun bindEvent() {
-       //医护
+        //医护
         nurse_bt.setOnClickListener {
-            (activity as CallingbedActivity).addNurseFragment()
+            val passwprd: String = nurse_login_nuber.getText().toString()
+            if (passwprd.equals("888")) {
+                if (Constant.PART_ID != -1) {
+                    presenter.loadclerkby(Constant.PART_ID)
+                } else {
+                    showMessage("no PART id")
+                }
+
+
+            }
+        }
+
+        nurse_bt_1.setOnClickListener {
+            if (!passno.equals("")){
+                YhUtil.sendLanding(Constant.DEVICE_ID, passno)
+                (activity as CallingbedActivity).addNurseFragment()
+                SPUtils.put(getActivity(), Constant.YH_NO, passno);
+                SPUtils.put(getActivity(), Constant.YH_NAME, yh_name);
+            }else{
+                showMessage("卡号不能为空,请重新选择")
+            }
+
         }
+
+
     }
+
     /**执行其他销毁操作*/
     override fun destory() {
 
     }
 
-    override fun setUrlString(url: String) {
+    override fun setdclerkby(advices: ArrayList<ClerkByVO>) {
+        if (advices != null) {
+            allOrders.clear()
+            allOrders = advices
+            rv_nurse_main_ll.visibility = View.VISIBLE
+            adapter.updateData(advices)
+        }
+    }
+
+    override fun onNoNet() {
 
     }
 
@@ -66,12 +124,28 @@ class  YhFragment : BaseFragment<YhFragmentPresenter, CallingbedNurseBinding>(),
     override fun networkMonitor(state: NetState) {
         state.filter(onWifi = {
 
-        },onMobile = {
+        }, onMobile = {
 
-        },offline = {
+        }, offline = {
 
         })
     }
 
+    override fun onItemClick(view: View, keyId: Int) {
+        if (allOrders.get(keyId).pass_no != null){
+            passno = allOrders.get(keyId).pass_no.toString()
+        }else{
+            passno = ""
+        }
+        if (allOrders.get(keyId).clerk_name != null){
+            yh_name = allOrders.get(keyId).clerk_name.toString()
+        }else{
+            yh_name = ""
+        }
+
+    }
+
+
+
 
 }

+ 1 - 1
android_bed/src/main/java/com/wdkl/app/ncs/callingbed/hardware/imp/A133HardTools.java

@@ -22,7 +22,7 @@ import kotlin.jvm.functions.Function0;
 import serialporttest.utils.SerialPortUtil;
 
 /**
- * W——KR主机硬件控制类
+ * W——A133主机硬件控制类
  *
  * */
 public class A133HardTools extends HardTools {

+ 395 - 0
android_bed/src/main/java/com/wdkl/app/ncs/callingbed/utils/LineChartUtils.java

@@ -0,0 +1,395 @@
+package com.wdkl.app.ncs.callingbed.utils;
+
+import android.graphics.Color;
+import android.util.Log;
+
+import com.github.mikephil.charting.charts.LineChart;
+import com.github.mikephil.charting.components.AxisBase;
+import com.github.mikephil.charting.components.Description;
+import com.github.mikephil.charting.components.XAxis;
+import com.github.mikephil.charting.components.YAxis;
+import com.github.mikephil.charting.data.Entry;
+import com.github.mikephil.charting.data.LineData;
+import com.github.mikephil.charting.data.LineDataSet;
+import com.github.mikephil.charting.formatter.IAxisValueFormatter;
+import com.github.mikephil.charting.interfaces.datasets.ILineDataSet;
+import com.wdkl.app.ncs.callingbed.R;
+
+import java.util.ArrayList;
+
+public class LineChartUtils {
+
+     //血糖
+     String[] xuetang ={"0","4","8","12","16","20"};
+    //血压
+    String[] xueya ={"40","64","88","112","136","160"};
+    //血氧
+    String[] xueyang ={"90","92","94","96","98","100"};
+    //脉搏
+    String[] mangbo ={"40","56","72","88","104","120"};
+    //体温
+    String[] tiwen ={"32","34","35","38","40","42"};
+    //hrv
+    String[] hrv ={"0","24","48","72","96","120"};
+    //xinlv
+    String[] xinlv ={"40","56","72","88","104","120"};
+    //黄亘
+    String[] xingen ={"0","4","8","12","16","20"};
+    //胎心
+    String[] taixin ={"40","56","72","88","104","120"};
+
+
+
+    private ArrayList<String> xdata = new ArrayList<>();
+    private String[] ydata={};
+
+    private ArrayList<Entry> list1 = new ArrayList<>();  //数据集合
+    private ArrayList<Entry> list2 = new ArrayList<>();  //数据集合
+
+    private  ArrayList<ILineDataSet> dataSets=new ArrayList<>();
+
+
+
+    LineChart lineChart;
+    private LineDataSet set;
+    private LineDataSet set1;
+    private LineDataSet set2;
+
+    public LineChartUtils(ArrayList<Entry> list_1, ArrayList<Entry> list_2 ,ArrayList<String>  xdata,int type,LineChart lineChart) {
+        this.list1=list_1;
+        this.list2=list_2;
+        this.xdata=xdata;
+        this.lineChart=lineChart;
+        setYdata(type);
+        setData(list1,list2);
+    }
+    private void setData(ArrayList<Entry> list1,ArrayList<Entry> list2) {
+        XwangGe();
+        if (list1!=null&& list1.size()>0){
+            set = new LineDataSet(list1, "");
+            setLine(set);
+            this.dataSets.add(set);
+        }
+        if (list2!=null && list2.size()>0){
+            set1 = new LineDataSet(list2, "");
+            setLine2(set1);
+            this.dataSets.add(set1);
+        }
+        //创建一个数据集
+        LineData data = new LineData(dataSets);
+        //设置数据
+        lineChart.setData(data);
+        lineChart.invalidate();
+//        lineChart.notifyDataSetChanged();
+
+        //隐藏图表右下角显示内容
+        Description description = new Description();
+        description.setEnabled(false);
+        lineChart.setDescription(description);
+    }
+
+    public void updateData(ArrayList<Entry> newList1, ArrayList<Entry> newList2 ,ArrayList<String>  x_data,int type,LineChart lineChart) {
+         Log.d("LineChartUtils", "xdata size: " + xdata.size());
+        Log.d("LineChartUtils", "x_data size: " + x_data.size());
+        this.list1=newList1;
+        this.list2=newList2;
+        this.xdata=x_data;
+        this.lineChart=lineChart;
+        setYdata(type);
+        setData(list1,list2);
+
+//        this.list1.clear();
+//        this.list2.clear();
+//        this.dataSets.clear();
+//        this.xdata.clear();
+//
+//        if (x_data!=null){
+//            this.xdata.addAll(x_data);
+//        }
+//        if (newList1!=null){
+//            this.list1.addAll(newList1);
+//            set = new LineDataSet(list1, "");
+//            setLine(set);
+//            this.dataSets.add(set);
+//
+//        }
+//        if (newList2!=null){
+//            this.list2.addAll(newList2);
+//            set1 = new LineDataSet(list2, "");
+//            setLine2(set1);
+//            this.dataSets.add(set1);
+//
+//        }
+//        setYdata(type);
+//        XwangGe();
+//
+//        LineData lineData = lineChart.getData();
+//        lineData = new LineData(dataSets);
+//        lineChart.setData(lineData);
+//
+//
+////        lineChart.setData(lineData);  // 更新数据
+////        lineData.notifyDataChanged();
+//        lineChart.notifyDataSetChanged();
+//        lineChart.invalidate();  // 通知图表数据已经改变,需要重绘
+    }
+    public void createLineChartUtils() {
+        if (list1!=null){
+            this.list1.clear();
+        }
+
+        if (list2!=null){
+            this.list2.clear();
+        }
+        this.dataSets.clear();
+        this.xdata.clear();
+        lineChart.invalidate();
+        lineChart.clear();
+
+
+    }
+    private void setYdata(int type) {
+        switch (type) {
+            case 1:
+                this.ydata=xuetang;
+                break;
+            case 2:
+                this.ydata=xueya;
+                break;
+            case 3:
+                this.ydata=xueyang;
+                break;
+            case 4:
+                this.ydata=mangbo;
+                break;
+            case 5:
+                this.ydata=tiwen;
+                break;
+            case 6:
+                this.ydata=hrv;
+                break;
+            case 7:
+                this.ydata=xinlv;
+                break;
+            case 8:
+                this.ydata=xingen;
+                break;
+            case 9:
+                this.ydata=taixin;
+                break;
+            default:
+                // 在这里处理其他情况
+                break;
+        }
+    }
+    private void setLine(LineDataSet set) {
+
+        //设置线条的颜色
+        set.setColor(Color.parseColor("#D4716E"));
+        //虚线模式下绘制直线
+        //set.enableDashedLine(20f, 5f, 0f);
+        //点击后高亮线的显示颜色
+        //set.enableDashedHighlightLine(50f, 15f, 0f);
+
+        //设置数据小圆点的颜色
+        set.setCircleColor(Color.parseColor("#D4716E"));
+        //设置圆点是否有空心
+        set.setDrawCircles(true);
+        //设置线条的宽度,最大10f,最小0.2f
+        set.setLineWidth(2f);
+        //设置小圆点的半径,最小1f,默认4f
+        set.setCircleRadius(4f);
+        //设置是否显示小圆点
+        set.setDrawCircles(true);
+        //设置字体颜色
+        set.setValueTextColor(Color.parseColor("#D4716E"));
+        //设置折线为圆滑折线(加在上面的setLine方法里)
+        set.setMode(LineDataSet.Mode.CUBIC_BEZIER);
+
+        //设置字体大小
+        set.setValueTextSize(10f);
+        set.setFillColor(Color.parseColor("#D4716E"));
+        //设置是否填充
+        set.setDrawFilled(false);
+
+
+    }
+    private void setLine2(LineDataSet set) {
+        //设置线条的颜色
+        set.setColor(Color.parseColor("#6D7C87"));
+        //虚线模式下绘制直线
+        //set.enableDashedLine(20f, 5f, 0f);
+        //点击后高亮线的显示颜色
+        //set.enableDashedHighlightLine(50f, 15f, 0f);
+        //设置折线为圆滑折线(加在上面的setLine方法里)
+        set.setMode(LineDataSet.Mode.CUBIC_BEZIER);
+
+        //设置数据小圆点的颜色
+        set.setCircleColor(Color.parseColor("#6D7C87"));
+        //设置圆点是否有空心
+        set.setDrawCircles(true);
+        //设置线条的宽度,最大10f,最小0.2f
+        set.setLineWidth(2f);
+        //设置小圆点的半径,最小1f,默认4f
+        set.setCircleRadius(4f);
+        //设置是否显示小圆点
+        set.setDrawCircles(true);
+        //设置字体颜色
+        set.setValueTextColor(Color.parseColor("#6D7C87"));
+        //设置字体大小
+        set.setValueTextSize(10f);
+        //设置是否填充
+        set.setDrawFilled(false);
+
+    }
+    private void setLine3(LineDataSet set) {
+        //设置线条的颜色
+        set.setColor(Color.parseColor("#90BCC2"));
+        //虚线模式下绘制直线
+        //set.enableDashedLine(20f, 5f, 0f);
+        //点击后高亮线的显示颜色
+        //set.enableDashedHighlightLine(50f, 15f, 0f);
+        //设置折线为圆滑折线(加在上面的setLine方法里)
+        //set.setMode(LineDataSet.Mode.CUBIC_BEZIER);
+
+        //设置数据小圆点的颜色
+        set.setCircleColor(Color.parseColor("#90BCC2"));
+        //设置圆点是否有空心
+        set.setDrawCircles(true);
+        //设置线条的宽度,最大10f,最小0.2f
+        set.setLineWidth(1f);
+        //设置小圆点的半径,最小1f,默认4f
+        set.setCircleRadius(2f);
+        //设置是否显示小圆点
+        set.setDrawCircles(true);
+        //设置字体颜色
+        set.setValueTextColor(Color.parseColor("#90BCC2"));
+        //设置字体大小
+        set.setValueTextSize(10f);
+        //设置是否填充
+        set.setDrawFilled(true);
+
+    }
+    private void XwangGe(){
+        //设置x轴网格线
+        XAxis xAxis=lineChart.getXAxis();
+        //以虚线模式画网格线
+        xAxis.enableGridDashedLine(0f,0f,0f);
+
+            IAxisValueFormatter formatter = new IAxisValueFormatter() {
+                @Override
+                public String getFormattedValue(float value, AxisBase axis) {
+                    // 在这里根据数值 value 返回对应的标签字符串
+                    // 这里简单起见,直接将 value 转为整数作为标签
+                    if (xdata!=null && xdata.size()>0) {
+                        int index = (int) value;
+                        if (index >= 0 && index < xdata.size()) {
+                            return xdata.get(index);
+                        }
+                    }
+                    return String.valueOf(value);
+                }
+            };
+
+            // 设置标签值的格式
+            xAxis.setValueFormatter(formatter);
+
+        // 创建一个实现了 IAxisValueFormatter 接口的自定义类
+
+        //设置x轴最大值
+//        xAxis.setAxisMaximum(200f);
+//        //设置x轴最小值
+//        xAxis.setAxisMinimum(0f);
+//
+//        //撤销设置的最大值,让轴自动计算
+//        xAxis.resetAxisMaximum();
+//        //撤销设置的最小值,让轴自动计算
+//        xAxis.resetAxisMinimum();
+        //设置x轴标签数,默认为6个
+        xAxis.setLabelCount(6);
+        //设置x轴标签数,若强制启用true,可能导致轴上的数字不均匀
+//        xAxis.setLabelCount(10,true);
+
+//        //设置x轴之间的最小间隔。用于在图表放大后标签不至于重合
+//        xAxis.setGranularity(1f);
+//        //设置x轴轴线的宽度
+//        xAxis.setAxisLineWidth(1f);
+        //设置轴线的颜色
+        xAxis.setAxisLineColor(Color.parseColor("#C3CAFA"));
+
+        //设置x轴显示位置在底部
+        xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
+
+        //关闭边框矩形
+        lineChart.setDrawBorders(false);
+
+        lineChart.getLegend().setEnabled(false);
+
+        lineChart.getAxisLeft().setDrawAxisLine(false);
+
+        //不绘制y轴左边的线
+        lineChart.getAxisLeft().setDrawAxisLine(false);
+        //不绘制y轴右边的线
+        lineChart.getAxisRight().setDrawAxisLine(false);
+
+        //禁用图表右边y轴
+        lineChart.getAxisRight().setEnabled(false);
+//        //禁用x轴
+//        lineChart.getXAxis().setEnabled(false);
+        //隐藏图表左边y轴标签
+//        lineChart.getAxisLeft().setDrawLabels(false);
+        //关闭x轴网格线./即竖线
+        lineChart.getXAxis().setDrawGridLines(false);
+
+        // 获取第一个值
+        float firstFloatValue = Float.parseFloat(xuetang[0]);
+
+         // 获取最后一个值
+        float lastValue =  Float.parseFloat(ydata[ydata.length - 1]);
+
+        YAxis yAxi1=lineChart.getAxisLeft();
+        yAxi1.setLabelCount(5);
+        yAxi1.setDrawAxisLine(false);
+//        yAxi1.setAxisMinimum(0);
+        yAxi1.setAxisMaxValue(lastValue);
+        yAxi1.setAxisMinValue(firstFloatValue);
+//        yAxi1.setAxisLineWidth(0f);
+        yAxi1.setPosition(YAxis.YAxisLabelPosition.OUTSIDE_CHART);
+        yAxi1.setAxisMinValue(0f);
+
+//        yAxi1.setAxisLineColor(Color.parseColor("#00000000")); // 设置Y轴坐标轴
+//
+//
+//        YAxis yAx2=lineChart.getAxisRight();
+//        yAx2.setEnabled(false);
+
+//        // 创建一个实现了 IAxisValueFormatter 接口的自定义类
+//        IAxisValueFormatter formatter1= new IAxisValueFormatter() {
+//            @Override
+//            public String getFormattedValue(float value, AxisBase axis) {
+//                // 在这里根据数值 value 返回对应的标签字符串
+//                // 这里简单起见,直接将 value 转为整数作为标签
+//                int index = Math.round(value);
+//                if (index >= 0 && index < ydata.length) {
+//                    return ydata[index];
+//                } else {
+//                    // 处理索引越界或无效值的情况,返回一个默认值或者空字符串
+//                    return "N/A";
+//                }
+//            }
+//        };
+
+//        //设置y轴网格线
+//
+//        yAxi1.setValueFormatter(formatter1);
+
+
+
+
+
+
+
+
+    }
+
+}

+ 14 - 0
android_bed/src/main/res/drawable/shape_screen_bg.xml

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#00FFFFFF"
+        />
+    <stroke
+        android:width="3dp"
+        android:color="#66FFFFFF" /> <!-- 边框颜色 -->
+    <corners
+        android:topLeftRadius="@dimen/d10"
+        android:topRightRadius="@dimen/d10"
+        android:bottomLeftRadius="@dimen/d10"
+        android:bottomRightRadius="@dimen/d10"
+        />
+</shape>

+ 14 - 0
android_bed/src/main/res/drawable/shape_screen_txt_bg.xml

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#00FFFFFF"
+        />
+    <stroke
+        android:width="3dp"
+        android:color="#ffffffff" /> <!-- 边框颜色 -->
+    <corners
+        android:topLeftRadius="@dimen/d10"
+        android:topRightRadius="@dimen/d10"
+        android:bottomLeftRadius="@dimen/d10"
+        android:bottomRightRadius="@dimen/d10"
+        />
+</shape>

+ 0 - 1
android_bed/src/main/res/layout/acivity_time_setting.xml

@@ -421,7 +421,6 @@
                     android:layout_height="@dimen/d33"
                     android:layout_marginTop="@dimen/d28"
                     android:text="添加倒计时"
-
                     android:textColor="@drawable/selector_bottom_btn_text_color"
                     android:gravity="center"
                     android:clickable="true"

+ 73 - 4
android_bed/src/main/res/layout/activity_sign.xml

@@ -1,20 +1,89 @@
 <?xml version="1.0" encoding="utf-8"?>
 <layout
     xmlns:android="http://schemas.android.com/apk/res/android">
-    <RelativeLayout
+    <LinearLayout
         android:layout_width="match_parent"
-        android:layout_height="match_parent">
+        android:layout_height="match_parent"
+        android:orientation="vertical"
+        android:background="#EAF2F9"
+        >
 
         <include
             android:id="@+id/activity_layout_title"
             layout="@layout/view_title_layout" />
 
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/d80"
+            android:layout_marginTop="@dimen/d23"
+            android:layout_marginLeft="@dimen/d20"
+            android:orientation="horizontal"
+            >
+            <LinearLayout
+                android:layout_width="0dp"
+                android:layout_height="72dp"
+                android:layout_weight="0.8"
+                android:orientation="horizontal"
+                android:background="@drawable/shape_bed_bg"
+                >
+                <androidx.recyclerview.widget.RecyclerView
+                    android:id="@+id/rv_sign_main_view"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:layout_marginLeft="@dimen/d6"
+                    android:layout_marginRight="@dimen/d6"
+                    android:layout_marginTop="@dimen/d15"
+                    android:layout_marginBottom="@dimen/d15"
+
+                   />
+            </LinearLayout>
+
+
+
+            <LinearLayout
+                android:layout_width="240dp"
+                android:layout_height="72dp"
+                android:orientation="horizontal"
+                android:layout_marginLeft="@dimen/d10"
+                android:layout_marginRight="@dimen/d10"
+                android:gravity="center"
+                android:background="@drawable/shape_bed_bg"
+                >
+                <Button
+                    android:id="@+id/sign_previous_button"
+                    android:layout_width="@dimen/d92"
+                    android:layout_height="@dimen/d35"
+                    android:gravity="center"
+                    android:background="@drawable/shape_main_hos_txt_bg"
+                    android:text="曲线图"
+                    android:textSize="16sp"
+                    android:textColor="@color/white"/>
+                <Button
+                    android:id="@+id/sign_next_button"
+                    android:layout_width="@dimen/d92"
+                    android:layout_height="@dimen/d35"
+                    android:gravity="center"
+                    android:text="数据列表"
+                    android:background="@android:color/transparent"
+                    android:textSize="16sp"
+                    android:layout_marginLeft="@dimen/d10"
+                    android:textColor="@color/black"/>
+
+            </LinearLayout>
+
+        </LinearLayout>
+
         <FrameLayout
             android:id="@+id/activity_sign"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
-            android:layout_below="@id/activity_layout_title"/>
+            android:layout_marginTop="@dimen/d15"
+            android:layout_marginLeft="@dimen/d20"
+            android:layout_marginRight="@dimen/d10"
+            android:layout_marginBottom="@dimen/d20"
+            android:background="@drawable/shape_bed_bg"
+            />
 
-    </RelativeLayout>
+    </LinearLayout>
 
 </layout>

+ 1 - 1
android_bed/src/main/res/layout/callingbed_main_new.xml

@@ -72,7 +72,7 @@
                 android:text="@string/str_medical_care"
                 android:textColor="@color/white"
                 android:textSize="18sp"
-                android:visibility="gone" />
+                />
 
             <TextView
                 android:id="@+id/menu_more"

+ 38 - 2
android_bed/src/main/res/layout/callingbed_nurse.xml

@@ -43,6 +43,40 @@
         android:layout_marginRight="@dimen/d24"
         android:layout_marginBottom="@dimen/d20"
         >
+        <LinearLayout
+            android:id="@+id/rv_nurse_main_ll"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_marginTop="@dimen/d28"
+            android:visibility="gone"
+            android:background="@drawable/shape_bed_bg"
+            android:orientation="vertical">
+
+            <androidx.recyclerview.widget.RecyclerView
+                android:id="@+id/rv_nurse_main_view"
+                android:layout_width="match_parent"
+                android:layout_height="@dimen/d250"
+                android:layout_marginLeft="@dimen/d6"
+                android:layout_marginRight="@dimen/d6"
+                android:layout_marginTop="@dimen/d15"
+                android:layout_marginBottom="@dimen/d15"
+                />
+
+            <TextView
+                android:id="@+id/nurse_bt_1"
+                android:layout_width="match_parent"
+                android:layout_height="@dimen/d50"
+                android:layout_marginLeft="@dimen/d40"
+                android:layout_marginRight="@dimen/d50"
+                android:layout_marginTop="@dimen/d20"
+                android:background="@drawable/selector_nuserlogin_btn"
+                android:gravity="center"
+                android:clickable="true"
+                android:text="进入医护"
+                android:textColor="@color/white"
+                android:textSize="@dimen/font_size_15" />
+
+        </LinearLayout>
 
         <LinearLayout
             android:layout_width="0dp"
@@ -61,7 +95,7 @@
             <TextView
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:layout_marginTop="@dimen/d17"
+                android:layout_marginTop="@dimen/d22"
                 android:text="输入您的工号进入医护"
                 android:textColor="@color/black"
                 android:textSize="@dimen/font_size_15"
@@ -79,6 +113,7 @@
                 android:layout_height="@dimen/d50"
                 android:layout_marginTop="@dimen/d16"
                 android:gravity="center_vertical"
+                android:visibility="gone"
                 android:orientation="horizontal">
 
                 <TextView
@@ -108,10 +143,11 @@
 
             </LinearLayout>
 
+
             <LinearLayout
                 android:layout_width="match_parent"
                 android:layout_height="@dimen/d50"
-                android:layout_marginTop="@dimen/d18"
+                android:layout_marginTop="@dimen/d28"
                 android:gravity="center_vertical"
                 android:orientation="horizontal">
 

+ 527 - 0
android_bed/src/main/res/layout/callingbed_nurse_msg.xml

@@ -0,0 +1,527 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout xmlns:android="http://schemas.android.com/apk/res/android">
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:orientation="vertical"
+        android:background="#F7F7F7">
+        <RelativeLayout
+            android:id="@+id/msg_ll"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:background="#3A78EF"
+            android:visibility="gone"
+            android:orientation="vertical">
+
+            <RelativeLayout
+                android:layout_width="match_parent"
+                android:layout_height="42dp"
+
+                >
+                <!--设备号-->
+                <LinearLayout
+                    android:id="@+id/msg_view_title_layout_return"
+                    android:layout_width="@dimen/d105"
+                    android:layout_height="@dimen/d30"
+                    android:layout_marginLeft="20dp"
+                    android:background="@drawable/shape_main_hos_txt_bg"
+                    android:clickable="true"
+                    android:gravity="center"
+                    android:layout_centerVertical="true"
+                    android:orientation="horizontal">
+
+                    <ImageView
+                        android:id="@+id/msg_view_title_layout_img"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_gravity="center_vertical"
+                        android:layout_marginRight="6dp"
+                        android:visibility="gone"
+                        android:background="@mipmap/return_w" />
+                    <!--医院名称-->
+                    <TextView
+                        android:id="@+id/msg_view_title_layout_tv_hospital_name"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="科室名称"
+                        android:textColor="@color/white"
+                        android:textSize="@dimen/font_size_14" />
+                </LinearLayout>
+                <TextView
+                    android:id="@+id/msg_view_title_layout_tv_no"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_centerVertical="true"
+                    android:layout_centerHorizontal="true"
+                    android:layout_marginRight="10dp"
+                    android:text="ID:"
+                    android:visibility="gone"
+                    android:textColor="@color/black"
+                    android:textSize="@dimen/font_size_18" />
+                <!--状态图标-->
+                <LinearLayout
+                    android:id="@+id/msg_view_title_layout_ll_right"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_alignParentRight="true"
+                    android:layout_centerVertical="true"
+                    android:layout_marginRight="10dp"
+                    android:orientation="horizontal">
+
+                    <ImageView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_gravity="center_vertical"
+                        android:layout_marginLeft="4dp"
+                        android:layout_marginRight="4dp"
+                        android:background="@mipmap/riqi" />
+                    <!--日期-->
+                    <TextClock
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_gravity="center_vertical"
+                        android:format12Hour="yyyy-MM-dd EEEE"
+                        android:format24Hour="yyyy-MM-dd EEEE"
+                        android:textColor="@color/black"
+                        android:textSize="@dimen/font_size_14"
+                        android:layout_marginLeft="@dimen/d5"
+                        android:text="16:08"/>
+
+                    <ImageView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_gravity="center_vertical"
+                        android:layout_marginLeft="@dimen/d23"
+                        android:layout_marginRight="4dp"
+                        android:background="@mipmap/shijian" />
+                    <!--时间-->
+                    <TextClock
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_gravity="center_vertical"
+                        android:format12Hour="HH:mm"
+                        android:format24Hour="HH:mm"
+                        android:textColor="@color/black"
+                        android:textSize="@dimen/font_size_14"
+                        android:layout_marginLeft="@dimen/d5"
+                        android:layout_marginRight="@dimen/d15"
+                        android:text="16:08"/>
+
+                    <!--SIP状态图标-->
+                    <TextView
+                        android:id="@+id/msg_view_title_layout_tv_point"
+                        android:layout_width="20dp"
+                        android:layout_height="20dp"
+                        android:layout_centerVertical="true"
+                        android:layout_marginLeft="4dp"
+                        android:layout_marginRight="4dp"
+                        android:visibility="gone"
+                        android:background="@mipmap/sip_b"/>
+
+                    <ImageView
+                        android:id="@+id/msg_view_title_layout_iv_bt"
+                        android:layout_width="20dp"
+                        android:layout_height="20dp"
+                        android:layout_gravity="center_vertical"
+                        android:layout_marginLeft="4dp"
+                        android:layout_marginRight="4dp"
+                        android:visibility="gone"/>
+                    <ImageView
+                        android:id="@+id/msg_view_title_layout_iv_wifi"
+                        android:layout_width="20dp"
+                        android:layout_height="20dp"
+                        android:layout_gravity="center_vertical"
+                        android:layout_marginLeft="4dp"
+                        android:layout_marginRight="4dp"
+                        android:visibility="gone"/>
+                    <ImageView
+                        android:id="@+id/msg_view_title_layout_iv_tcp"
+                        android:layout_width="20dp"
+                        android:layout_height="20dp"
+                        android:layout_gravity="center_vertical"
+                        android:layout_marginLeft="4dp"
+                        android:layout_marginRight="4dp"
+                        android:src="@mipmap/ic_tcp_fail"/>
+
+                    <ImageView
+                        android:id="@+id/msg_view_title_layout_iv_ethernet"
+                        android:layout_width="20dp"
+                        android:layout_height="20dp"
+                        android:layout_gravity="center_vertical"
+                        android:layout_marginLeft="4dp"
+                        android:layout_marginRight="4dp"
+                        android:visibility="gone"/>
+
+                    <ImageView
+                        android:id="@+id/msg_view_title_layout_iv_day_night"
+                        android:layout_width="20dp"
+                        android:layout_height="wrap_content"
+                        android:layout_gravity="center_vertical"
+                        android:layout_marginLeft="4dp"
+                        android:layout_marginRight="4dp"
+                        android:src="@mipmap/ic_daylight" />
+
+                </LinearLayout>
+
+            </RelativeLayout>
+
+            <ImageView
+                android:layout_width="600dp"
+                android:layout_height="600dp"
+                android:src="@mipmap/msg_bg"
+                android:layout_marginBottom="@dimen/d80"
+                android:layout_marginTop="@dimen/d21"
+                android:layout_centerInParent="true"
+                />
+            <LinearLayout
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_centerInParent="true"
+                android:padding="@dimen/d30"
+                android:background="@drawable/shape_screen_bg"
+                >
+                <TextView
+                    android:id="@+id/screensacver_text"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:text="请保持安静不要大声喧哗"
+                    android:textStyle="bold"
+                    android:textColor="@color/white"
+                    android:background="@drawable/shape_screen_txt_bg"
+                    android:textSize="80sp"
+                    android:padding="@dimen/d40"
+                    android:gravity="center" />
+            </LinearLayout>
+        </RelativeLayout>
+        <include
+            android:id="@+id/activity_calling_bed_layout_title"
+            layout="@layout/view_title_layout"
+            />
+
+        <RelativeLayout
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/d144"
+            android:background="@drawable/shape_bed_bg"
+            android:layout_marginTop="@dimen/d20"
+            android:layout_marginLeft="@dimen/d15"
+            android:layout_marginRight="@dimen/d24"
+            android:orientation="vertical"
+            >
+            <TextView
+                android:id="@+id/nurse_msg_tx_1"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="*"
+                android:textSize="@dimen/font_size_18"
+                android:textColor="@color/txt_number"
+                android:textStyle="bold"
+                android:layout_marginTop="@dimen/d24"
+                android:layout_marginLeft="@dimen/d28"
+                />
+
+            <TextView
+                android:id="@+id/nurse_msg_tx_2"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_toRightOf="@+id/nurse_msg_tx_1"
+                android:text="自定义输入"
+                android:textSize="@dimen/font_size_18"
+                android:textColor="@color/black"
+                android:textStyle="bold"
+                android:layout_marginTop="@dimen/d24"
+
+                />
+
+            <EditText
+                android:id="@+id/nurse_msg_ed"
+                android:layout_width="match_parent"
+                android:layout_height="@dimen/d50"
+                android:hint="请保持安静不要吵闹"
+                android:paddingLeft="@dimen/d26"
+                android:textSize="@dimen/font_size_18"
+                android:gravity="center_vertical"
+                android:layout_below="@+id/nurse_msg_tx_1"
+                android:textStyle="bold"
+                android:background="@drawable/shape_n_login_ed_bg2"
+                android:layout_marginTop="@dimen/d16"
+                android:layout_marginLeft="@dimen/d28"
+                android:layout_marginRight="@dimen/d48"
+                />
+
+
+        </RelativeLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal"
+            android:gravity="center_vertical"
+
+            >
+            <RelativeLayout
+                android:layout_width="@dimen/d600"
+                android:layout_height="@dimen/d265"
+                android:background="@drawable/shape_bed_bg"
+                android:layout_marginTop="@dimen/d20"
+                android:layout_marginLeft="@dimen/d24"
+                android:orientation="vertical"
+
+                >
+                <TextView
+                    android:id="@+id/nurse_msg_tx_3"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="*"
+                    android:textSize="@dimen/font_size_18"
+                    android:textColor="@color/txt_number"
+                    android:textStyle="bold"
+                    android:layout_marginTop="@dimen/d24"
+                    android:layout_marginLeft="@dimen/d28"
+                    />
+
+                <TextView
+                    android:id="@+id/nurse_msg_tx_4"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_toRightOf="@+id/nurse_msg_tx_3"
+                    android:text="快捷提示语"
+                    android:textSize="@dimen/font_size_18"
+                    android:textColor="@color/black"
+                    android:textStyle="bold"
+                    android:layout_marginTop="@dimen/d24"
+                    />
+
+                <RelativeLayout
+                    android:id="@+id/nurse_msg_tx_rl"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:layout_below="@+id/nurse_msg_tx_3"
+                    >
+                    <TextView
+                        android:id="@+id/nurse_msg_tx_5"
+                        android:layout_width="@dimen/d270"
+                        android:layout_height="@dimen/d48"
+                        android:gravity="center"
+                        android:text="保持安静"
+                        android:textSize="@dimen/font_size_16"
+                        android:textColor="@color/text_name_color"
+                        android:layout_marginTop="@dimen/d20"
+                        android:layout_marginLeft="@dimen/d28"
+                        android:background="@drawable/shape_time_f_bg"
+                        />
+                    <TextView
+                        android:id="@+id/nurse_msg_tx_6"
+                        android:layout_width="@dimen/d270"
+                        android:layout_height="@dimen/d48"
+                        android:layout_below="@+id/nurse_msg_tx_5"
+                        android:gravity="center"
+                        android:text="请勿大声喧哗"
+                        android:textSize="@dimen/font_size_16"
+                        android:textColor="@color/text_name_color"
+                        android:layout_marginTop="@dimen/d16"
+                        android:layout_marginLeft="@dimen/d28"
+                        android:background="@drawable/shape_time_f_bg"
+                        />
+                    <TextView
+                        android:id="@+id/nurse_msg_tx_7"
+                        android:layout_width="@dimen/d270"
+                        android:layout_height="@dimen/d48"
+                        android:layout_below="@+id/nurse_msg_tx_6"
+                        android:gravity="center"
+                        android:text="正在如厕请勿进入"
+                        android:textSize="@dimen/font_size_16"
+                        android:textColor="@color/text_name_color"
+                        android:layout_marginTop="@dimen/d16"
+                        android:layout_marginLeft="@dimen/d28"
+                        android:background="@drawable/shape_time_f_bg"
+                        />
+                    <TextView
+                        android:id="@+id/nurse_msg_tx_8"
+                        android:layout_width="@dimen/d270"
+                        android:layout_height="@dimen/d48"
+                        android:layout_toRightOf="@+id/nurse_msg_tx_5"
+                        android:gravity="center"
+                        android:text="正在护理请勿打扰"
+                        android:textSize="@dimen/font_size_16"
+                        android:textColor="@color/text_name_color"
+                        android:layout_marginTop="@dimen/d20"
+                        android:layout_marginLeft="@dimen/d10"
+                        android:background="@drawable/shape_time_f_bg"
+                        />
+                    <TextView
+                        android:id="@+id/nurse_msg_tx_9"
+                        android:layout_width="@dimen/d270"
+                        android:layout_height="@dimen/d48"
+                        android:layout_below="@+id/nurse_msg_tx_5"
+                        android:layout_toRightOf="@+id/nurse_msg_tx_6"
+                        android:gravity="center"
+                        android:text="请勿探视"
+                        android:textSize="@dimen/font_size_16"
+                        android:textColor="@color/text_name_color"
+                        android:layout_marginTop="@dimen/d16"
+                        android:layout_marginLeft="@dimen/d10"
+                        android:background="@drawable/shape_time_f_bg"
+                        />
+                    <TextView
+                        android:id="@+id/nurse_msg_tx_10"
+                        android:layout_width="@dimen/d270"
+                        android:layout_height="@dimen/d48"
+                        android:layout_below="@+id/nurse_msg_tx_6"
+                        android:layout_toRightOf="@+id/nurse_msg_tx_7"
+                        android:gravity="center"
+                        android:text="请不要过多人聚集"
+                        android:textSize="@dimen/font_size_16"
+                        android:textColor="@color/text_name_color"
+                        android:layout_marginTop="@dimen/d16"
+                        android:layout_marginLeft="@dimen/d10"
+                        android:background="@drawable/shape_time_f_bg"
+                        />
+
+                </RelativeLayout>
+
+                <androidx.recyclerview.widget.RecyclerView
+                    android:id="@+id/rv_tips_main_view"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:layout_below="@+id/nurse_msg_tx_3"
+                    android:layout_marginLeft="@dimen/d28"
+                    android:layout_marginRight="@dimen/d28"
+                    android:layout_marginTop="@dimen/d20"
+                    android:layout_marginBottom="@dimen/d15"
+                    android:visibility="gone"
+
+                    />
+
+            </RelativeLayout>
+            <RelativeLayout
+                android:layout_width="@dimen/d365"
+                android:layout_height="@dimen/d265"
+                android:background="@drawable/shape_bed_bg"
+                android:layout_marginTop="@dimen/d20"
+                android:layout_marginRight="@dimen/d28"
+                android:layout_marginLeft="@dimen/d15"
+                android:orientation="vertical"
+                >
+                <TextView
+                    android:id="@+id/nurse_msg_tx_11"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="*"
+                    android:textSize="@dimen/font_size_18"
+                    android:textColor="@color/txt_number"
+                    android:textStyle="bold"
+                    android:layout_marginTop="@dimen/d24"
+                    android:layout_marginLeft="@dimen/d28"
+                    />
+
+                <TextView
+                    android:id="@+id/nurse_msg_tx_12"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_toRightOf="@+id/nurse_msg_tx_11"
+                    android:text="设置提示时间"
+                    android:textSize="@dimen/font_size_18"
+                    android:textColor="@color/black"
+                    android:textStyle="bold"
+                    android:layout_marginTop="@dimen/d24"
+                    />
+
+                <TextView
+                    android:id="@+id/nurse_msg_tx_13"
+                    android:layout_width="@dimen/d150"
+                    android:layout_height="@dimen/d48"
+                    android:layout_below="@+id/nurse_msg_tx_11"
+                    android:gravity="center"
+                    android:text="10分钟"
+                    android:textSize="@dimen/font_size_16"
+                    android:textColor="@color/text_name_color"
+                    android:layout_marginTop="@dimen/d20"
+                    android:layout_marginLeft="@dimen/d28"
+                    android:background="@drawable/shape_time_f_bg"
+                    />
+                <TextView
+                    android:id="@+id/nurse_msg_tx_14"
+                    android:layout_width="@dimen/d150"
+                    android:layout_height="@dimen/d48"
+                    android:layout_below="@+id/nurse_msg_tx_13"
+                    android:gravity="center"
+                    android:text="30分钟"
+                    android:textSize="@dimen/font_size_16"
+                    android:textColor="@color/text_name_color"
+                    android:layout_marginTop="@dimen/d16"
+                    android:layout_marginLeft="@dimen/d28"
+                    android:background="@drawable/shape_time_f_bg"
+                    />
+                <TextView
+                    android:id="@+id/nurse_msg_tx_15"
+                    android:layout_width="@dimen/d150"
+                    android:layout_height="@dimen/d48"
+                    android:layout_below="@+id/nurse_msg_tx_14"
+                    android:gravity="center"
+                    android:text="90分钟"
+                    android:textSize="@dimen/font_size_16"
+                    android:textColor="@color/text_name_color"
+                    android:layout_marginTop="@dimen/d16"
+                    android:layout_marginLeft="@dimen/d28"
+                    android:background="@drawable/shape_time_f_bg"
+                    />
+                <TextView
+                    android:id="@+id/nurse_msg_tx_16"
+                    android:layout_width="@dimen/d150"
+                    android:layout_height="@dimen/d48"
+                    android:layout_below="@+id/nurse_msg_tx_11"
+                    android:layout_toRightOf="@+id/nurse_msg_tx_13"
+                    android:gravity="center"
+                    android:text="15分钟"
+                    android:textSize="@dimen/font_size_16"
+                    android:textColor="@color/text_name_color"
+                    android:layout_marginTop="@dimen/d20"
+                    android:layout_marginLeft="@dimen/d10"
+                    android:background="@drawable/shape_time_f_bg"
+                    />
+                <TextView
+                    android:id="@+id/nurse_msg_tx_17"
+                    android:layout_width="@dimen/d150"
+                    android:layout_height="@dimen/d48"
+                    android:layout_below="@+id/nurse_msg_tx_13"
+                    android:layout_toRightOf="@+id/nurse_msg_tx_14"
+                    android:gravity="center"
+                    android:text="60分钟"
+                    android:textSize="@dimen/font_size_16"
+                    android:textColor="@color/text_name_color"
+                    android:layout_marginTop="@dimen/d16"
+                    android:layout_marginLeft="@dimen/d10"
+                    android:background="@drawable/shape_time_f_bg"
+                    />
+                <TextView
+                    android:id="@+id/nurse_msg_tx_18"
+                    android:layout_width="@dimen/d150"
+                    android:layout_height="@dimen/d48"
+                    android:layout_below="@+id/nurse_msg_tx_14"
+                    android:layout_toRightOf="@+id/nurse_msg_tx_15"
+                    android:gravity="center"
+                    android:text="120分钟"
+                    android:textSize="@dimen/font_size_16"
+                    android:textColor="@color/text_name_color"
+                    android:layout_marginTop="@dimen/d16"
+                    android:layout_marginLeft="@dimen/d10"
+                    android:background="@drawable/shape_time_f_bg"
+                    />
+            </RelativeLayout>
+
+        </LinearLayout>
+
+        <TextView
+            android:id="@+id/nurse_msg_bt"
+            android:layout_width="@dimen/d420"
+            android:layout_height="@dimen/d60"
+            android:layout_gravity="center"
+            android:gravity="center"
+            android:text="开始提示"
+            android:textColor="@color/white"
+            android:background="@drawable/shape_main_hos_txt_bg"
+            android:layout_marginTop="@dimen/d26"
+            android:textSize="@dimen/font_size_20" />
+    </LinearLayout>
+
+</layout>

+ 42 - 0
android_bed/src/main/res/layout/nurse_exit_huli_dialog.xml

@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:gravity="center"
+    android:background="@android:color/transparent">
+    <LinearLayout
+        android:layout_width="481dp"
+        android:layout_height="@dimen/d330"
+        android:gravity="center"
+        android:orientation="vertical"
+        android:background="@color/white"
+        >
+    <ImageView
+        android:layout_width="@dimen/d77"
+        android:layout_height="@dimen/d77"
+        android:src="@mipmap/hu"
+        android:layout_marginTop="@dimen/d28" />
+
+    <TextView
+        android:id="@+id/exit_hili_text"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="20dp"
+        android:text="确认退出医护模块?"
+        android:textColor="#7D7D7D"
+        android:textSize="@dimen/font_size_18"
+        android:gravity="center" />
+    <Button
+        android:id="@+id/exit_huli_confirm_button"
+        android:layout_width="@dimen/d176"
+        android:layout_height="@dimen/d48"
+        android:layout_marginTop="@dimen/d24"
+        android:layout_marginBottom="@dimen/d35"
+        android:gravity="center"
+        android:background="@drawable/shape_huli_dialog_bt_bg"
+        android:text="退出医护"
+        android:textSize="16sp"
+        android:textColor="@drawable/selector_bottom_btn_text_color"/>
+
+    </LinearLayout>
+</LinearLayout>

+ 103 - 0
android_bed/src/main/res/layout/sign_data_table_fragment_lay.xml

@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout>
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    android:background="@drawable/shape_bed_bg"
+    android:padding="22dp">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:gravity="center_vertical"
+        android:background="@drawable/shape_bed_bg"
+        >
+        <ImageView
+            android:layout_width="40dp"
+            android:layout_height="40dp"
+            android:src="@mipmap/img_x"
+            />
+        <TextView
+            android:id="@+id/rv_sing_data_item_tx"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="血糖数据列表"
+            android:layout_marginLeft="@dimen/d20"
+            android:textSize="@dimen/font_size_18"
+            android:textColor="@color/black"
+            android:textStyle="bold"
+            />
+
+    </LinearLayout>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:gravity="center_vertical"
+        android:background="@drawable/shape_bed_bg"
+        android:layout_marginTop="@dimen/d28"
+        >
+        <TextView
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:text="序号"
+            android:textSize="@dimen/font_size_18"
+            android:textColor="@color/black"
+            android:textStyle="bold"
+            />
+        <TextView
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:text="参数"
+            android:textSize="@dimen/font_size_18"
+            android:gravity="center"
+            android:textColor="@color/black"
+            android:textStyle="bold"
+            />
+        <TextView
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:text="体征值"
+            android:textSize="@dimen/font_size_18"
+            android:gravity="center"
+            android:textColor="@color/black"
+            android:textStyle="bold"
+            />
+        <TextView
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:text="测量时间"
+            android:textSize="@dimen/font_size_18"
+            android:gravity="center"
+            android:textColor="@color/black"
+            android:textStyle="bold"
+            />
+
+    </LinearLayout>
+
+    <ImageView
+        android:id="@+id/emptyImageView"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:src="@mipmap/list"
+        android:layout_gravity="center"
+        android:visibility="gone"
+        />
+
+    <androidx.recyclerview.widget.RecyclerView
+        android:id="@+id/rv_sing_data_item_view"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_marginTop="@dimen/d20"
+        android:layout_marginBottom="10dp"/>
+
+
+
+</LinearLayout>
+</layout>

+ 121 - 0
android_bed/src/main/res/layout/sign_graph_curve_fragment_lay.xml

@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout>
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    android:background="@drawable/shape_bed_bg"
+    android:padding="22dp">
+
+    <RelativeLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:background="@drawable/shape_bed_bg"
+        >
+        <ImageView
+            android:id="@+id/sign_graph_curve_img_top"
+            android:layout_width="40dp"
+            android:layout_height="40dp"
+            android:layout_alignParentLeft="true"
+            android:src="@mipmap/img_x"
+            />
+        <TextView
+            android:id="@+id/sign_graph_curve_text_top"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="血糖数据列表"
+            android:layout_centerVertical="true"
+            android:layout_marginLeft="@dimen/d20"
+            android:layout_toRightOf="@+id/sign_graph_curve_img_top"
+            android:textSize="@dimen/font_size_18"
+            android:textColor="@color/black"
+            android:textStyle="bold"
+            />
+
+       <LinearLayout
+           android:layout_width="wrap_content"
+           android:layout_height="wrap_content"
+           android:orientation="horizontal"
+           android:layout_alignParentRight="true"
+           android:layout_centerVertical="true"
+           android:gravity="center"
+           >
+
+           <TextView
+               android:id="@+id/sign_graph_curve_text1_top"
+               android:layout_width="wrap_content"
+               android:layout_height="wrap_content"
+               android:text="血糖"
+               android:layout_centerVertical="true"
+               android:textSize="@dimen/font_size_12"
+               android:textColor="@color/text_black"
+               android:textStyle="bold"
+               />
+
+           <View
+               android:id="@+id/sign_graph_curve_view_1_top"
+               android:layout_width="@dimen/d25"
+               android:layout_height="@dimen/d2"
+               android:background="@color/main_color"
+               android:layout_marginLeft="@dimen/d10"
+               android:layout_marginRight="@dimen/d30"
+               android:layout_centerVertical="true"
+               />
+
+
+           <TextView
+               android:id="@+id/sign_graph_curve_text2_top"
+               android:layout_width="wrap_content"
+               android:layout_height="wrap_content"
+               android:text="餐后2小时"
+               android:layout_centerVertical="true"
+               android:textSize="@dimen/font_size_12"
+               android:textColor="@color/text_black"
+               android:textStyle="bold"
+               android:visibility="gone"
+               />
+
+           <View
+               android:id="@+id/sign_graph_curve_view_2_top"
+               android:layout_width="@dimen/d25"
+               android:layout_height="@dimen/d2"
+               android:background="@color/button_color"
+               android:layout_alignParentRight="true"
+               android:layout_marginLeft="@dimen/d10"
+               android:layout_centerVertical="true"
+               android:visibility="gone"
+               />
+       </LinearLayout>
+
+
+    </RelativeLayout>
+
+    <TextView
+        android:id="@+id/sign_graph_d"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="单位:mm/L"
+        android:layout_centerVertical="true"
+        android:layout_toLeftOf="@+id/sign_graph_curve_view_2_top"
+        android:textSize="@dimen/font_size_12"
+        android:layout_marginTop="@dimen/d30"
+        android:textColor="@color/text_black"
+        android:textStyle="bold"
+        />
+
+    <ImageView
+        android:id="@+id/sign_graph_emptyImageView"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:src="@mipmap/list"
+        android:layout_gravity="center"
+        android:visibility="gone"
+        />
+    <com.github.mikephil.charting.charts.LineChart
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:id="@+id/chart"/>
+</LinearLayout>
+
+</layout>

+ 22 - 0
android_bed/src/main/res/layout/sign_main_item_lay.xml

@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout>
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:orientation="vertical"
+    android:gravity="center_vertical"
+    android:layout_marginLeft="@dimen/d25"
+    >
+    <TextView
+        android:id="@+id/sign_main_item_name"
+        android:layout_width="@dimen/d70"
+        android:layout_height="@dimen/d40"
+        android:text="血糖"
+        android:background="@drawable/shape_main_hos_txt_bg"
+        android:textSize="24sp"
+        android:gravity="center"
+        android:textColor="@color/white"/>
+</LinearLayout>
+    
+</layout>

+ 61 - 0
android_bed/src/main/res/layout/sign_view_item_lay.xml

@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout>
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:orientation="vertical"
+    >
+
+
+    <LinearLayout
+        android:id="@+id/sign_view_ll_top"
+        android:layout_width="match_parent"
+        android:layout_height="50dp"
+        android:background="@color/white"
+        android:gravity="center_vertical">
+
+        <TextView
+            android:id="@+id/sign_item_name"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:text="01"
+            android:textSize="14sp"
+            android:layout_marginLeft="@dimen/d20"
+            android:gravity="center_vertical"
+            android:textColor="@color/black"/>
+        <TextView
+            android:id="@+id/sign_item_type"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:text="112"
+            android:textSize="14sp"
+            android:gravity="center"
+            android:textColor="@color/black"/>
+        <TextView
+            android:id="@+id/sign_item_money"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:text="256"
+            android:textSize="14sp"
+            android:gravity="center"
+            android:textColor="@color/black"/>
+        <TextView
+            android:id="@+id/sign_item_time"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:text="202-04-06 11:00"
+            android:textSize="14sp"
+            android:gravity="center"
+            android:textColor="@color/black"/>
+
+    </LinearLayout>
+
+    
+</LinearLayout>
+    
+</layout>

+ 29 - 0
android_bed/src/main/res/layout/yh_main_item_lay.xml

@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout>
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:orientation="vertical"
+    android:gravity="center_vertical"
+    android:layout_marginLeft="@dimen/d25"
+
+    >
+
+    <TextView
+        android:id="@+id/yh_main_item_name"
+        android:layout_width="@dimen/d150"
+        android:layout_height="@dimen/d60"
+        android:text="王医生"
+        android:background="@drawable/shape_time_f_bg"
+        android:paddingTop="@dimen/d10"
+        android:paddingBottom="@dimen/d10"
+        android:paddingLeft="@dimen/d20"
+        android:paddingRight="@dimen/d20"
+        android:layout_marginBottom="@dimen/d20"
+        android:textSize="24sp"
+        android:gravity="center"
+        android:textColor="@color/black"/>
+</LinearLayout>
+    
+</layout>

BIN
android_bed/src/main/res/mipmap-mdpi/img_x.png


BIN
android_bed/src/main/res/mipmap-xxxhdpi/msg_bg.png


+ 1 - 0
android_bed/src/main/res/values/colors.xml

@@ -11,6 +11,7 @@
     <color name="text_name_color">#B4B4B4</color>
 
     <color name="drawer_header_text">#2c2c2c</color>
+    <color name="sign_main_text">#737373</color>
     <color name="black">#000000</color>
     <color name="drawer_item_bg_p">#e8e8e8</color>
     <color name="drawer_item_bg_n">#fffff9</color>

+ 2 - 0
android_host/build.gradle

@@ -119,6 +119,8 @@ dependencies {
     //广播喊话组件
     compile project(':gstream')
 
+
+
 }
 
 /**

+ 0 - 2
android_host/src/main/java/com/wdkl/ncs/android/component/nursehome/activity/CallingHostActivationActivity.kt

@@ -67,8 +67,6 @@ class CallingHostActivationActivity  : BaseActivity<DevicePresenter, Callinghost
     //是否重启
     private var cancelRestart = false
 
-
-
     override fun getLayId(): Int {
        return R.layout.callinghost_activation
     }

+ 2 - 0
android_host/src/main/java/com/wdkl/ncs/android/component/nursehome/activity/HostbedinfoActivity.kt

@@ -278,9 +278,11 @@ class HostbedinfoActivity : BaseActivity<BedHospitalInfoActivityPresenter, Activ
     override fun networkMonitor(state: NetState) {
 
     }
+
     inline fun FragmentManager.inTransaction(func: FragmentTransaction.() -> FragmentTransaction) {
         beginTransaction().func().commitAllowingStateLoss()
     }
+
     @Subscribe(threadMode = ThreadMode.MAIN)
     fun onMoonEvent(messageEvent: MessageEvent) {
         if (Constant.EVENT_FINISHh == messageEvent.type) {

+ 2 - 1
android_host/src/main/java/com/wdkl/ncs/android/component/nursehome/adapter/FrameBedVosConfinementAdapter.kt

@@ -81,6 +81,7 @@ class FrameBedVosConfinementAdapter(var context: Context, val data: ArrayList<Fr
             if (itemData!=null){
                 binding.honmeBedNumber.text = itemData.frameRoom.fullName
                 val frameRoomVos =itemData.frameBedList
+                if (itemData.frameBedList==null) return
 //                if (frameRoomVos != null && frameRoomVos.size > 0) {
 //                    frameBedVO.clear()
 //                    for (bedVO in frameRoomVos) {
@@ -88,7 +89,7 @@ class FrameBedVosConfinementAdapter(var context: Context, val data: ArrayList<Fr
 //                    }
 //                }
                 Log.e("frameBedVOs", "frameBedVOs " + frameBedVO.size)
-                if(itemData.frameBedList.size>0) {
+                if( itemData.frameBedList.size>0) {
                     //病床
                     /**初始化LayoutMannager*/
                     virtualLayoutManager2 = OnegoGridLayoutManager(context, 1, GridLayoutManager.HORIZONTAL, false)

+ 0 - 1
android_host/src/main/java/com/wdkl/ncs/android/component/nursehome/fragment/CallRecordsFragment.kt

@@ -385,7 +385,6 @@ class CallRecordsFragment: BaseFragment<CallRecordsFragmentPresenter, FragmentCa
                                 RingPlayHelper.playRingTone(activity, R.raw.incoming_call, true)
                             }
                         }
-
                         //3.刷新呼叫列表
                         updateRecord()
                         val item = CallingItem(tcpModel.tid, System.currentTimeMillis(), interactionVO, tcpModel.action)

+ 0 - 1
app/src/main/code/com/wdkl/app/ncs/activity/SchemeActivity.kt

@@ -17,7 +17,6 @@ class SchemeActivity: AppCompatActivity() {
         val uri = intent.data
         JRouter.prepare().create(uri).seek(this,object:NavListener(){
             override fun onArrival(postcard: Postcard?) {
-
                 finish()
             }
         })

+ 2 - 3
build.gradle

@@ -47,10 +47,9 @@ buildscript {
     /**
      * 配置要打包的模块
      */
-    ext.callingdoor = true
-
-    ext.android_bed = false
+    ext.callingdoor = false
 
+    ext.android_bed = true
     ext.android_host = false
 
     if (callingdoor) {

+ 8 - 10
callingdoor/src/main/java/com/wdkl/app/ncs/callingdoor/adapter/DeviceMenuapter.kt

@@ -15,14 +15,12 @@ import com.wdkl.ncs.android.middleware.api.UrlManager
 import com.wdkl.ncs.android.middleware.model.ActionItem
 import com.wdkl.ncs.android.middleware.model.vo.DeviceMenulist
 
-class DeviceMenuapter : RecyclerView.Adapter<DeviceMenuapter.ViewHolder>{
+class DeviceMenuAdapter : RecyclerView.Adapter<DeviceMenuAdapter.ViewHolder>{
 
     private var context: Context
     private var data: ArrayList<DeviceMenulist>
     private lateinit var onItemClickListener: OnItemClickListener
 
-    private val urlManager = UrlManager.build()
-
     constructor(context: Context, data: ArrayList<DeviceMenulist>): super() {
         this.context = context
         this.data = data
@@ -38,23 +36,23 @@ class DeviceMenuapter : RecyclerView.Adapter<DeviceMenuapter.ViewHolder>{
     }
 
     override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
-        val view = LayoutInflater.from(parent?.context).inflate(R.layout.item_icon_lay, parent, false)
+        val view = LayoutInflater.from(parent.context).inflate(R.layout.item_icon_lay, parent, false)
         val viewHolder = ViewHolder(view)
 
         return viewHolder
     }
 
     override fun getItemCount(): Int {
-        return data?.size
+        return data.size
     }
 
     override fun onBindViewHolder(holder: ViewHolder, position: Int) {
-        if ( data?.get(position).name!=null){
-            holder.textView.text = data?.get(position).name
+        if ( data.get(position).name!=null){
+            holder.textView.text = data.get(position).name
         }
-        if (data?.get(position).icon_src!=null && !data?.get(position).icon_src.equals("")){
+        if (data.get(position).icon_src!=null && !data.get(position).icon_src.equals("")){
             Glide.with(holder.imageView.context)
-                    .load( data?.get(position).icon_src)
+                    .load( data.get(position).icon_src)
                     .diskCacheStrategy(DiskCacheStrategy.ALL)
                     .into(holder.imageView)
         }else{
@@ -62,7 +60,7 @@ class DeviceMenuapter : RecyclerView.Adapter<DeviceMenuapter.ViewHolder>{
         }
 //        holder.imageView1.visibility=View.VISIBLE
         holder.actionView.setOnClickListener {
-            onItemClickListener?.onItemClick(holder.itemView, position)
+            onItemClickListener.onItemClick(holder.itemView, position)
 //            onItemClickListener?.onItemClick(holder.itemView, data?.get(position).id)
         }
     }

+ 29 - 10
callingdoor/src/main/java/com/wdkl/app/ncs/callingdoor/fragment/NursingWorkFragment.kt

@@ -10,7 +10,7 @@ import androidx.recyclerview.widget.GridLayoutManager
 import com.enation.javashop.net.engine.model.NetState
 import com.wdkl.app.ncs.callingdoor.R
 import com.wdkl.app.ncs.callingdoor.activity.*
-import com.wdkl.app.ncs.callingdoor.adapter.DeviceMenuapter
+import com.wdkl.app.ncs.callingdoor.adapter.DeviceMenuAdapter
 import com.wdkl.app.ncs.callingdoor.databinding.NursingWorkLayBinding
 import com.wdkl.app.ncs.callingdoor.dialog.SystemDialogHelper
 import com.wdkl.app.ncs.callingdoor.launch.CallingdoorLaunch
@@ -30,7 +30,7 @@ import org.greenrobot.eventbus.ThreadMode
 import org.json.JSONObject
 
 
-class NursingWorkFragment : BaseFragment<NursingWorkFragmentPresenter, NursingWorkLayBinding>(), NursingWorkFragmentContract.View ,DeviceMenuapter.OnItemClickListener{
+class NursingWorkFragment : BaseFragment<NursingWorkFragmentPresenter, NursingWorkLayBinding>(), NursingWorkFragmentContract.View ,DeviceMenuAdapter.OnItemClickListener{
     val TAG = "QrCodeFragment"
     val pattern = "\\$([^#]*)#".toRegex()
     var id: String? = ""
@@ -39,7 +39,7 @@ class NursingWorkFragment : BaseFragment<NursingWorkFragmentPresenter, NursingWo
     var type: String? = ""
     var name: String? = ""
     private var allOrders = ArrayList<DeviceMenulist>()
-    private lateinit var deviceMenuapter : DeviceMenuapter
+    private lateinit var deviceMenuapter : DeviceMenuAdapter
     private lateinit var timer: CountDownTimer
 
     override fun getLayId(): Int {
@@ -57,14 +57,20 @@ class NursingWorkFragment : BaseFragment<NursingWorkFragmentPresenter, NursingWo
         if (orientation == Configuration.ORIENTATION_PORTRAIT) {
             // 竖屏模式
             val layoutManager = GridLayoutManager(getActivity(), 1)
-            recycler.setLayoutManager(layoutManager)
+            recycler.visibility = View.VISIBLE
+            recycler.layoutManager = layoutManager
+            deviceMenuapter = DeviceMenuAdapter(activity, allOrders)
+            deviceMenuapter.setOnItemClickListener(this)
+            recycler.adapter = deviceMenuapter
         } else if (orientation == Configuration.ORIENTATION_LANDSCAPE) {
             // 横屏模式
             val layoutManager = GridLayoutManager(getActivity(), 3)
-            recycler.setLayoutManager(layoutManager)
+            recycler.visibility = View.VISIBLE
+            recycler.layoutManager = layoutManager
+            deviceMenuapter = DeviceMenuAdapter(activity, allOrders)
+            deviceMenuapter.setOnItemClickListener(this)
+            recycler.adapter = deviceMenuapter
         }
-
-
         var part_id =Constant.DEVICE_REGISTER_ID
         if (part_id!=null){
             presenter.DeviceMenulist(part_id!!, )
@@ -97,16 +103,29 @@ class NursingWorkFragment : BaseFragment<NursingWorkFragmentPresenter, NursingWo
                     }
                 }
             }
-            deviceMenuapter = DeviceMenuapter(activity, allOrders)
-            deviceMenuapter.setOnItemClickListener(this)
-            recycler.adapter = deviceMenuapter
             deviceMenuapter.updateData(allOrders)
         }
 
     }
 
+    override fun onNoneNet() {
+        showMessage("None net")
+        showDefaultDeviceMenu()
+    }
+
+    private fun showDefaultDeviceMenu() {
+        //添加默认设备菜单
+        val deviceMenu = DeviceMenulist()
+        deviceMenu.name = "设备信息"
+        deviceMenu.type = "ACT"
+        deviceMenu.act_name = "SystemActivity"
+        deviceMenu.actived = 1
+        allOrders.add(deviceMenu)
+        deviceMenuapter.updateData(allOrders)
+    }
     override fun onError(message: String, type: Int) {
         showMessage(message)
+        showDefaultDeviceMenu()
     }
 
     override fun complete(message: String, type: Int) {

+ 7 - 1
callingdoor/src/main/java/com/wdkl/app/ncs/callingdoor/fragment/YhFragment.kt

@@ -13,6 +13,7 @@ import com.wdkl.ncs.android.lib.utils.showMessage
 import com.wdkl.ncs.android.lib.vo.filter
 import com.wdkl.ncs.android.middleware.logic.contract.callingdoor.YhFragmentContract
 import com.wdkl.ncs.android.middleware.logic.presenter.callingdoor.YhFragmentPresenter
+import com.wdkl.ncs.android.middleware.model.vo.ClerkByVO
 import kotlinx.android.synthetic.main.callingdoor_main_new.*
 import kotlinx.android.synthetic.main.callingdoor_main_new.menu_medical_care
 import kotlinx.android.synthetic.main.callingdoor_nurse.*
@@ -47,8 +48,13 @@ class  YhFragment : BaseFragment<YhFragmentPresenter, CallingdoorNurseBinding>()
 
     }
 
-    override fun setUrlString(url: String) {
 
+    override fun setdclerkby(advices: ArrayList<ClerkByVO>) {
+        TODO("Not yet implemented")
+    }
+
+    override fun onNoNet() {
+        TODO("Not yet implemented")
     }
 
     override fun onError(message: String, type: Int) {

+ 5 - 1
gstream/build.gradle

@@ -1,4 +1,8 @@
-apply plugin: 'com.android.library'
+if (rootProject.ext.android_host.toBoolean()) {
+    apply plugin: 'com.android.library'
+} else {
+    return
+}
 
 android {
     compileSdkVersion target_sdk_version

+ 9 - 0
middleware/src/main/code/com/wdkl/ncs/android/middleware/api/BedDeviceApi.kt

@@ -96,4 +96,13 @@ interface BedDeviceApi {
     @GET("/deviceBed/get_device_menu_detail_by_menu_id/{menu_id}")
     fun get_device_menu_detail_by_menu_id(@Path("menu_id") menu_id: String): Observable<ResponseBody>
 
+    //查询生命体征分组日志列表(不分页)
+    @POST("/deviceBed/get_vital_signs_group_log")
+    fun get_vital_signs_group_log(@Query("member_id")member_id:Int): Observable<ResponseBody>
+
+    //查询机构下的员工
+    @GET("/deviceRoom/get_clerk_by_part_id/{part_id}")
+    fun get_clerk_by_part_id(@Path("part_id") part_id:Int): Observable<ResponseBody>
+
+
 }

+ 9 - 0
middleware/src/main/code/com/wdkl/ncs/android/middleware/api/DoorDeviceApi.kt

@@ -39,8 +39,17 @@ interface DoorDeviceApi {
     //查询刷卡设备可用的功能组件
     @GET("/deviceBed/get_device_menu_list_by_mac/{mac}")
     fun get_device_menu_list(@Path("mac") mac: String): Observable<ResponseBody>
+
     //根据menu_id获取设备菜单详情 (医院介绍,科室介绍)
     @GET("/deviceRoom/get_device_menu_detail_by_menu_id/{menu_id}")
     fun get_device_menu_detail_by_menu_id(@Path("menu_id") menu_id: String): Observable<ResponseBody>
 
+    //查询机构下的员工
+    @GET("/deviceRoom/get_clerk_by_part_id/{part_id}")
+    fun get_clerk_by_part_id(@Path("part_id") part_id:Int): Observable<ResponseBody>
+
+    //获取科室屏幕提示语配置列表
+    @GET("/deviceRoom/getPartScreenTips/{part_id}")
+    fun getPartScreenTips(@Path("part_id") part_id:Int): Observable<ResponseBody>
+
 }

+ 15 - 1
middleware/src/main/code/com/wdkl/ncs/android/middleware/common/Constant.java

@@ -11,6 +11,10 @@ public class Constant {
     //是否激活
     public static String APP_ACTIVATION = "APP_ACTIVATION";
 
+    public static String YH_NO = "YH_NO";
+
+    public static String YH_NAME = "YH_NAME";
+
     public static final String PREFERENCE_USER = "USER_DATA";
     //设备区分
     public static final String DEV_Z_RK3128= "1";//自研rk3128
@@ -144,7 +148,7 @@ public class Constant {
     //房间名称
     public static String ROOM_NAME = "";
 
-    //户ID
+    //户ID
     public static Integer CUSTOM_ID = -1;
 
     public static Integer MEMBER_ID = -1;
@@ -328,6 +332,7 @@ public class Constant {
     public static final int EVENT_SERIAL_TEST = 0x11;
     public static final int EVENT_ACCEPT_CALL = 0x12;
     public static final int EVENT_UPDATE_BEDS = 0x13;
+
     public static final int EVENT_HOOK_OFF = 0x14;
     public static final int EVENT_TRANSFER_CALL = 0x15;
     public static final int EVENT_REMOVE_CALL = 0x16;
@@ -364,4 +369,13 @@ public class Constant {
     public static final int EVENT_Host_INFO = 0x112;
 
     public static final int EVENT_V_HOOK_OFF = 0x113;
+
+    /**
+     * 退出医护
+     * */
+    public static final int EVENT_EXIT_YH = 0x201;
+    /**
+     * 体征-类型
+     * */
+    public static final int EVENT_SING_TYPE = 0x202;
 }

+ 7 - 2
middleware/src/main/code/com/wdkl/ncs/android/middleware/logic/contract/callingbed/BedSignFragmentContract.kt

@@ -1,13 +1,18 @@
 package com.wdkl.ncs.android.middleware.logic.contract.callingbed
 
 import com.wdkl.ncs.android.lib.base.BaseContract
+import com.wdkl.ncs.android.middleware.model.vo.SingDataBean
 
 interface BedSignFragmentContract {
     interface View : BaseContract.BaseView {
-        fun setSignData()
+
+        fun showsigns(advices: ArrayList<SingDataBean>)
+
+        fun onNoNet()
     }
 
     interface Presenter : BaseContract.BasePresenter {
-        fun loadSignData()
+
+        fun loadSignsByPage(member_id: Int)
     }
 }

+ 1 - 0
middleware/src/main/code/com/wdkl/ncs/android/middleware/logic/contract/callingdoor/NurseFragmentContract.kt

@@ -3,6 +3,7 @@ package com.wdkl.ncs.android.middleware.logic.contract.callingdoor
 import com.wdkl.ncs.android.lib.base.BaseContract
 
 interface NurseFragmentContract {
+
     interface View : BaseContract.BaseView {
         fun setUrlString(url: String)
     }

+ 2 - 0
middleware/src/main/code/com/wdkl/ncs/android/middleware/logic/contract/callingdoor/NursingWorkFragmentContract.kt

@@ -8,6 +8,8 @@ interface NursingWorkFragmentContract {
         fun setlist(a:List<String>)
 
         fun setDeviceMenulist(MenuList:List<DeviceMenulist>)
+
+        fun onNoneNet()
     }
 
     interface Presenter : BaseContract.BasePresenter {

+ 7 - 0
middleware/src/main/code/com/wdkl/ncs/android/middleware/logic/contract/callingdoor/SetHintActivityContract.kt

@@ -2,14 +2,21 @@ package com.wdkl.ncs.android.middleware.logic.contract.callingdoor
 
 import com.wdkl.ncs.android.lib.base.BaseContract
 import com.wdkl.ncs.android.middleware.model.dos.AppVersionDO
+import com.wdkl.ncs.android.middleware.model.vo.SingDataBean
+import com.wdkl.ncs.android.middleware.model.vo.TipsVO
 
 interface SetHintActivityContract {
+
     interface View : BaseContract.BaseView {
 
+        fun showTips(advices: ArrayList<TipsVO>)
+
+        fun onNoNet()
 
     }
 
     interface Presenter : BaseContract.BasePresenter {
 
+        fun loadTips(part_id: Int)
     }
 }

+ 6 - 2
middleware/src/main/code/com/wdkl/ncs/android/middleware/logic/contract/callingdoor/YhFragmentContract.kt

@@ -1,13 +1,17 @@
 package com.wdkl.ncs.android.middleware.logic.contract.callingdoor
 
 import com.wdkl.ncs.android.lib.base.BaseContract
+import com.wdkl.ncs.android.middleware.model.vo.ClerkByVO
+import com.wdkl.ncs.android.middleware.model.vo.SingDataBean
 
 interface YhFragmentContract {
     interface View : BaseContract.BaseView {
-        fun setUrlString(url: String)
+        fun setdclerkby(advices: ArrayList<ClerkByVO>)
+
+        fun onNoNet()
     }
 
     interface Presenter : BaseContract.BasePresenter {
-        fun loadUrlString()
+        fun loadclerkby(partId: Int)
     }
 }

+ 53 - 2
middleware/src/main/code/com/wdkl/ncs/android/middleware/logic/presenter/callingbed/BedSignFragmentPresenter.kt

@@ -1,17 +1,68 @@
 package com.wdkl.ncs.android.middleware.logic.presenter.callingbed
 
+import com.enation.javashop.net.engine.plugin.connection.ConnectionQuality
+import com.enation.javashop.net.engine.plugin.exception.ExceptionHandle
+import com.enation.javashop.net.engine.utils.ThreadFromUtils
+import com.google.gson.FieldNamingPolicy
+import com.google.gson.GsonBuilder
+import com.google.gson.reflect.TypeToken
 import com.wdkl.ncs.android.lib.base.RxPresenter
+import com.wdkl.ncs.android.lib.utils.ConnectionObserver
+import com.wdkl.ncs.android.lib.utils.getJsonString
+import com.wdkl.ncs.android.middleware.api.BedDeviceApi
 import com.wdkl.ncs.android.middleware.di.MiddlewareDaggerComponent
 import com.wdkl.ncs.android.middleware.logic.contract.callingbed.BedSignFragmentContract
+import com.wdkl.ncs.android.middleware.model.dos.AdviceDO
+import com.wdkl.ncs.android.middleware.model.dos.EventDO
+import com.wdkl.ncs.android.middleware.model.vo.CustomerInfoVO
+import com.wdkl.ncs.android.middleware.model.vo.SingDataBean
+import io.reactivex.disposables.Disposable
 import javax.inject.Inject
 
 class BedSignFragmentPresenter @Inject constructor() : RxPresenter<BedSignFragmentContract.View>(), BedSignFragmentContract.Presenter {
 
+    @Inject
+    protected lateinit var bedDeviceApi : BedDeviceApi
+
     override fun bindDagger() {
         MiddlewareDaggerComponent.component.inject(this)
     }
 
-    override fun loadSignData() {
-        //
+    private val observer = object : ConnectionObserver<Any>() {
+        override fun onStartWithConnection() {
+            providerView().start()
+        }
+
+        override fun onNextWithConnection(result: Any, connectionQuality: ConnectionQuality) {
+            providerView().showsigns(result as ArrayList<SingDataBean>)
+        }
+
+        override fun onErrorWithConnection(error: ExceptionHandle.ResponeThrowable, connectionQuality: ConnectionQuality) {
+            providerView().onError(error.customMessage)
+        }
+
+        override fun attachSubscribe(var1: Disposable) {
+            addDisposable(var1)
+        }
+
+
+        override fun onNoneNet() {
+            super.onNoneNet()
+            providerView().onNoNet()
+        }
+    }
+
+    override fun loadSignsByPage(member_id: Int) {
+        bedDeviceApi.get_vital_signs_group_log(member_id)
+                .map {
+                    val gson = GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES).create()
+                    val itemType = object : TypeToken<ArrayList<SingDataBean>>(){}.type
+                    val eventList = gson.fromJson<ArrayList<EventDO>>(it.getJsonString(), itemType)
+
+                    return@map eventList
+
+                }
+                .compose(ThreadFromUtils.defaultSchedulers())
+                .subscribe(observer)
     }
 }

+ 5 - 0
middleware/src/main/code/com/wdkl/ncs/android/middleware/logic/presenter/callingdoor/NursingWorkFragmentPresenter.kt

@@ -56,6 +56,11 @@ class NursingWorkFragmentPresenter @Inject constructor() : RxPresenter<NursingWo
 
         }
 
+        override fun onNoneNet() {
+            super.onNoneNet()
+            providerView().onNoneNet()
+        }
+
     }
 
     private val communicationObserver = object : ConnectionObserver<Any>() {

+ 19 - 3
middleware/src/main/code/com/wdkl/ncs/android/middleware/logic/presenter/callingdoor/SetHintActivityPresenter.kt

@@ -5,6 +5,7 @@ import com.enation.javashop.net.engine.plugin.exception.ExceptionHandle
 import com.enation.javashop.net.engine.utils.ThreadFromUtils
 import com.google.gson.FieldNamingPolicy
 import com.google.gson.GsonBuilder
+import com.google.gson.reflect.TypeToken
 import com.wdkl.ncs.android.lib.base.RxPresenter
 import com.wdkl.ncs.android.lib.utils.ConnectionObserver
 import com.wdkl.ncs.android.lib.utils.getJsonString
@@ -16,9 +17,12 @@ import com.wdkl.ncs.android.middleware.logic.contract.callingdoor.SystemActivity
 import com.wdkl.ncs.android.middleware.logic.contract.callingdoor.TextActivityContract
 import com.wdkl.ncs.android.middleware.model.ServerInfo
 import com.wdkl.ncs.android.middleware.model.dos.AppVersionDO
+import com.wdkl.ncs.android.middleware.model.dos.EventDO
 import com.wdkl.ncs.android.middleware.model.dos.PartSettingDO
 import com.wdkl.ncs.android.middleware.model.dto.TcpSeverDTO
 import com.wdkl.ncs.android.middleware.model.vo.DeviceRoomInfoVO
+import com.wdkl.ncs.android.middleware.model.vo.SingDataBean
+import com.wdkl.ncs.android.middleware.model.vo.TipsVO
 import io.reactivex.disposables.Disposable
 import javax.inject.Inject
 
@@ -36,9 +40,7 @@ class SetHintActivityPresenter @Inject constructor() : RxPresenter<SetHintActivi
         }
 
         override fun onNextWithConnection(result: Any, connectionQuality: ConnectionQuality) {
-            when (result) {
-
-            }
+                providerView().showTips(result as ArrayList<TipsVO>)
         }
         override fun onErrorWithConnection(error: ExceptionHandle.ResponeThrowable, connectionQuality: ConnectionQuality) {
             providerView().onError(error.customMessage)
@@ -53,4 +55,18 @@ class SetHintActivityPresenter @Inject constructor() : RxPresenter<SetHintActivi
         }
     }
 
+    override fun loadTips(part_id: Int) {
+        doorDeviceApi.getPartScreenTips(part_id)
+                .map {
+                    val gson = GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES).create()
+                    val itemType = object : TypeToken<ArrayList<TipsVO>>(){}.type
+                    val eventList = gson.fromJson<ArrayList<EventDO>>(it.getJsonString(), itemType)
+
+                    return@map eventList
+
+                }
+                .compose(ThreadFromUtils.defaultSchedulers())
+                .subscribe(observer)
+    }
+
 }

+ 33 - 5
middleware/src/main/code/com/wdkl/ncs/android/middleware/logic/presenter/callingdoor/YhFragmentPresenter.kt

@@ -2,15 +2,27 @@ package com.wdkl.ncs.android.middleware.logic.presenter.callingdoor
 
 import com.enation.javashop.net.engine.plugin.connection.ConnectionQuality
 import com.enation.javashop.net.engine.plugin.exception.ExceptionHandle
+import com.enation.javashop.net.engine.utils.ThreadFromUtils
+import com.google.common.reflect.TypeToken
+import com.google.gson.FieldNamingPolicy
+import com.google.gson.GsonBuilder
 import com.wdkl.ncs.android.lib.base.RxPresenter
 import com.wdkl.ncs.android.lib.utils.ConnectionObserver
+import com.wdkl.ncs.android.lib.utils.getJsonString
+import com.wdkl.ncs.android.middleware.api.BedDeviceApi
 import com.wdkl.ncs.android.middleware.di.MiddlewareDaggerComponent
 import com.wdkl.ncs.android.middleware.logic.contract.callingdoor.YhFragmentContract
+import com.wdkl.ncs.android.middleware.model.dos.EventDO
+import com.wdkl.ncs.android.middleware.model.vo.ClerkByVO
+import com.wdkl.ncs.android.middleware.model.vo.SingDataBean
 import io.reactivex.disposables.Disposable
 import javax.inject.Inject
 
 class YhFragmentPresenter @Inject constructor() : RxPresenter<YhFragmentContract.View>(), YhFragmentContract.Presenter {
 
+    @Inject
+    protected lateinit var bedDeviceApi : BedDeviceApi
+
     override fun bindDagger() {
         MiddlewareDaggerComponent.component.inject(this)
     }
@@ -20,14 +32,14 @@ class YhFragmentPresenter @Inject constructor() : RxPresenter<YhFragmentContract
      * @Type  ConnectionObserver
      * @Note  数据监听者
      */
-    private val observer = object : ConnectionObserver<String>() {
+    private val observer = object : ConnectionObserver<Any>() {
         override fun onStartWithConnection() {
             providerView()
         }
 
-        override fun onNextWithConnection(result: String, connectionQuality: ConnectionQuality) {
+        override fun onNextWithConnection(result: Any, connectionQuality: ConnectionQuality) {
             providerView().complete()
-            providerView().setUrlString(result)
+            providerView().setdclerkby(result as ArrayList<ClerkByVO>)
         }
 
         override fun onErrorWithConnection(error: ExceptionHandle.ResponeThrowable, connectionQuality: ConnectionQuality) {
@@ -37,9 +49,25 @@ class YhFragmentPresenter @Inject constructor() : RxPresenter<YhFragmentContract
         override fun attachSubscribe(var1: Disposable) {
             addDisposable(var1)
         }
+
+        override fun onNoneNet() {
+            super.onNoneNet()
+            providerView().onNoNet()
+        }
     }
 
-    override fun loadUrlString() {
+    override fun loadclerkby(partId: Int) {
+        bedDeviceApi.get_clerk_by_part_id(partId)
+                .map {
+                    val data = it.getJsonString()
+                    val gson = GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES).create()
+                    val itemType = object : com.google.gson.reflect.TypeToken<ArrayList<ClerkByVO>>(){}.type
+                    val eventList = gson.fromJson<ArrayList<EventDO>>(it.getJsonString(), itemType)
+                    return@map eventList
 
+                }
+                .compose(ThreadFromUtils.defaultSchedulers())
+                .subscribe(observer)
     }
-}
+}
+

+ 3 - 0
middleware/src/main/code/com/wdkl/ncs/android/middleware/logic/presenter/welcome/WelcomePresenter.kt

@@ -1,5 +1,6 @@
 package com.wdkl.ncs.android.middleware.logic.presenter.welcome
 
+import android.util.Log
 import com.wdkl.ncs.android.lib.base.RxPresenter
 import com.wdkl.ncs.android.lib.utils.ConnectionObserver
 import com.wdkl.ncs.android.lib.utils.getEventCenter
@@ -56,6 +57,7 @@ class WelcomePresenter @Inject constructor() : RxPresenter<WelcomeContract.View>
         override fun onNextWithConnection(result: ArrayList<AdViewModel>, connectionQuality: ConnectionQuality) {
             /**当返回值的size为0时证明没有广告直接跳转首页,有广告的话展示广告*/
             if (result.size == 0){
+                Log.d("wdBoot", "进入欢迎页面 1")
                 providerView().toHome()
             }else{
                 providerView().showAd(result)
@@ -64,6 +66,7 @@ class WelcomePresenter @Inject constructor() : RxPresenter<WelcomeContract.View>
 
         override fun onErrorWithConnection(error: ExceptionHandle.ResponeThrowable, connectionQuality: ConnectionQuality) {
             providerView().onError(error.customMessage)
+            Log.d("wdBoot", "进入欢迎页面 2")
             providerView().toHome()
         }
 

+ 248 - 0
middleware/src/main/code/com/wdkl/ncs/android/middleware/model/vo/ClerkByVO.java

@@ -0,0 +1,248 @@
+package com.wdkl.ncs.android.middleware.model.vo;
+
+import java.io.Serializable;
+
+
+public class ClerkByVO implements Serializable {
+
+    /**
+     * clerk_id : 1
+     * member_id : 1
+     * clerk_name : 刘备
+     * founder : 1
+     * role_id : 1
+     * role_name : 管理员
+     * user_state : 0
+     * create_time : null
+     * shop_id : 2
+     * union_id : null
+     * update_time : null
+     * sync_time : null
+     * his_keyval : null
+     * his_part_keyval : null
+     * parent_id : null
+     * pass_no : null
+     * role_type : ADMINISTRATORS
+     * leader_role_id : null
+     * leader_id : 8
+     * leader_name : 王虹
+     * checked : false
+     */
+
+    private int clerk_id;
+    private int member_id;
+    private String clerk_name;
+    private int founder;
+    private int role_id;
+    private String role_name;
+    private int user_state;
+    private Object create_time;
+    private int shop_id;
+    private Object union_id;
+    private Object update_time;
+    private Object sync_time;
+    private Object his_keyval;
+    private Object his_part_keyval;
+    private Object parent_id;
+    private Object pass_no;
+    private String role_type;
+    private Object leader_role_id;
+    private int leader_id;
+    private String leader_name;
+    private boolean checked;
+
+    public int getClerk_id() {
+        return clerk_id;
+    }
+
+    public void setClerk_id(int clerk_id) {
+        this.clerk_id = clerk_id;
+    }
+
+    public int getMember_id() {
+        return member_id;
+    }
+
+    public void setMember_id(int member_id) {
+        this.member_id = member_id;
+    }
+
+    public String getClerk_name() {
+        return clerk_name;
+    }
+
+    public void setClerk_name(String clerk_name) {
+        this.clerk_name = clerk_name;
+    }
+
+    public int getFounder() {
+        return founder;
+    }
+
+    public void setFounder(int founder) {
+        this.founder = founder;
+    }
+
+    public int getRole_id() {
+        return role_id;
+    }
+
+    public void setRole_id(int role_id) {
+        this.role_id = role_id;
+    }
+
+    public String getRole_name() {
+        return role_name;
+    }
+
+    public void setRole_name(String role_name) {
+        this.role_name = role_name;
+    }
+
+    public int getUser_state() {
+        return user_state;
+    }
+
+    public void setUser_state(int user_state) {
+        this.user_state = user_state;
+    }
+
+    public Object getCreate_time() {
+        return create_time;
+    }
+
+    public void setCreate_time(Object create_time) {
+        this.create_time = create_time;
+    }
+
+    public int getShop_id() {
+        return shop_id;
+    }
+
+    public void setShop_id(int shop_id) {
+        this.shop_id = shop_id;
+    }
+
+    public Object getUnion_id() {
+        return union_id;
+    }
+
+    public void setUnion_id(Object union_id) {
+        this.union_id = union_id;
+    }
+
+    public Object getUpdate_time() {
+        return update_time;
+    }
+
+    public void setUpdate_time(Object update_time) {
+        this.update_time = update_time;
+    }
+
+    public Object getSync_time() {
+        return sync_time;
+    }
+
+    public void setSync_time(Object sync_time) {
+        this.sync_time = sync_time;
+    }
+
+    public Object getHis_keyval() {
+        return his_keyval;
+    }
+
+    public void setHis_keyval(Object his_keyval) {
+        this.his_keyval = his_keyval;
+    }
+
+    public Object getHis_part_keyval() {
+        return his_part_keyval;
+    }
+
+    public void setHis_part_keyval(Object his_part_keyval) {
+        this.his_part_keyval = his_part_keyval;
+    }
+
+    public Object getParent_id() {
+        return parent_id;
+    }
+
+    public void setParent_id(Object parent_id) {
+        this.parent_id = parent_id;
+    }
+
+    public Object getPass_no() {
+        return pass_no;
+    }
+
+    public void setPass_no(Object pass_no) {
+        this.pass_no = pass_no;
+    }
+
+    public String getRole_type() {
+        return role_type;
+    }
+
+    public void setRole_type(String role_type) {
+        this.role_type = role_type;
+    }
+
+    public Object getLeader_role_id() {
+        return leader_role_id;
+    }
+
+    public void setLeader_role_id(Object leader_role_id) {
+        this.leader_role_id = leader_role_id;
+    }
+
+    public int getLeader_id() {
+        return leader_id;
+    }
+
+    public void setLeader_id(int leader_id) {
+        this.leader_id = leader_id;
+    }
+
+    public String getLeader_name() {
+        return leader_name;
+    }
+
+    public void setLeader_name(String leader_name) {
+        this.leader_name = leader_name;
+    }
+
+    public boolean isChecked() {
+        return checked;
+    }
+
+    public void setChecked(boolean checked) {
+        this.checked = checked;
+    }
+
+    @Override
+    public String toString() {
+        return "ClerkByVO{" +
+                "clerk_id=" + clerk_id +
+                ", member_id=" + member_id +
+                ", clerk_name='" + clerk_name + '\'' +
+                ", founder=" + founder +
+                ", role_id=" + role_id +
+                ", role_name='" + role_name + '\'' +
+                ", user_state=" + user_state +
+                ", create_time=" + create_time +
+                ", shop_id=" + shop_id +
+                ", union_id=" + union_id +
+                ", update_time=" + update_time +
+                ", sync_time=" + sync_time +
+                ", his_keyval=" + his_keyval +
+                ", his_part_keyval=" + his_part_keyval +
+                ", parent_id=" + parent_id +
+                ", pass_no=" + pass_no +
+                ", role_type='" + role_type + '\'' +
+                ", leader_role_id=" + leader_role_id +
+                ", leader_id=" + leader_id +
+                ", leader_name='" + leader_name + '\'' +
+                ", checked=" + checked +
+                '}';
+    }
+}

+ 323 - 0
middleware/src/main/code/com/wdkl/ncs/android/middleware/model/vo/SingDataBean.java

@@ -0,0 +1,323 @@
+package com.wdkl.ncs.android.middleware.model.vo;
+
+import java.io.Serializable;
+import java.util.List;
+
+public class SingDataBean implements Serializable {
+
+
+    /**
+     * create_time : 0
+     * log_list : [{"alarm":false,"bool_read":0,"create_time":0,"device_id":"","device_type":"","group_id":0,"group_name":"","imei":"","log_group_id":"","log_time":0,"max_value":0,"member_id":0,"member_nickname":"","min_value":0,"param_id":0,"param_name":"","self_max_value":0,"self_min_value":0,"setting_id":0,"vs_value":0}]
+     * sort : 0
+     * unit :
+     * vital_signs_name :
+     */
+    private int id;
+    private int create_time;
+    private int sort;
+    private String unit;
+    private String vital_signs_name;
+    private List<LogListBean> log_list;
+
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    public int getCreate_time() {
+        return create_time;
+    }
+
+    public void setCreate_time(int create_time) {
+        this.create_time = create_time;
+    }
+
+    public int getSort() {
+        return sort;
+    }
+
+    public void setSort(int sort) {
+        this.sort = sort;
+    }
+
+    public String getUnit() {
+        return unit;
+    }
+
+    public void setUnit(String unit) {
+        this.unit = unit;
+    }
+
+    public String getVital_signs_name() {
+        return vital_signs_name;
+    }
+
+    public void setVital_signs_name(String vital_signs_name) {
+        this.vital_signs_name = vital_signs_name;
+    }
+
+    public List<LogListBean> getLog_list() {
+        return log_list;
+    }
+
+    public void setLog_list(List<LogListBean> log_list) {
+        this.log_list = log_list;
+    }
+
+    public static class LogListBean implements Serializable {
+        /**
+         * alarm : false
+         * bool_read : 0
+         * create_time : 0
+         * device_id :
+         * device_type :
+         * group_id : 0
+         * group_name :
+         * imei :
+         * log_group_id :
+         * log_time : 0
+         * max_value : 0
+         * member_id : 0
+         * member_nickname :
+         * min_value : 0
+         * param_id : 0
+         * param_name :
+         * self_max_value : 0
+         * self_min_value : 0
+         * setting_id : 0
+         * vs_value : 0
+         */
+
+        private boolean alarm;
+        private int bool_read;
+        private int create_time;
+        private String device_id;
+        private String device_type;
+        private int group_id;
+        private String group_name;
+        private String imei;
+        private String log_group_id;
+        private int log_time;
+        private double max_value;
+        private double member_id;
+        private String member_nickname;
+        private int min_value;
+        private int param_id;
+        private String param_name;
+        private int self_max_value;
+        private int self_min_value;
+        private int setting_id;
+        private double vs_value;
+        private int id;
+
+        public int getId() {
+            return id;
+        }
+
+        public void setId(int id) {
+            this.id = id;
+        }
+
+        public boolean isAlarm() {
+            return alarm;
+        }
+
+        public void setAlarm(boolean alarm) {
+            this.alarm = alarm;
+        }
+
+        public int getBool_read() {
+            return bool_read;
+        }
+
+        public void setBool_read(int bool_read) {
+            this.bool_read = bool_read;
+        }
+
+        public int getCreate_time() {
+            return create_time;
+        }
+
+        public void setCreate_time(int create_time) {
+            this.create_time = create_time;
+        }
+
+        public String getDevice_id() {
+            return device_id;
+        }
+
+        public void setDevice_id(String device_id) {
+            this.device_id = device_id;
+        }
+
+        public String getDevice_type() {
+            return device_type;
+        }
+
+        public void setDevice_type(String device_type) {
+            this.device_type = device_type;
+        }
+
+        public int getGroup_id() {
+            return group_id;
+        }
+
+        public void setGroup_id(int group_id) {
+            this.group_id = group_id;
+        }
+
+        public String getGroup_name() {
+            return group_name;
+        }
+
+        public void setGroup_name(String group_name) {
+            this.group_name = group_name;
+        }
+
+        public String getImei() {
+            return imei;
+        }
+
+        public void setImei(String imei) {
+            this.imei = imei;
+        }
+
+        public String getLog_group_id() {
+            return log_group_id;
+        }
+
+        public void setLog_group_id(String log_group_id) {
+            this.log_group_id = log_group_id;
+        }
+
+        public int getLog_time() {
+            return log_time;
+        }
+
+        public void setLog_time(int log_time) {
+            this.log_time = log_time;
+        }
+
+        public double getMax_value() {
+            return max_value;
+        }
+
+        public void setMax_value(double max_value) {
+            this.max_value = max_value;
+        }
+
+        public double getMember_id() {
+            return member_id;
+        }
+
+        public void setMember_id(double member_id) {
+            this.member_id = member_id;
+        }
+
+        public String getMember_nickname() {
+            return member_nickname;
+        }
+
+        public void setMember_nickname(String member_nickname) {
+            this.member_nickname = member_nickname;
+        }
+
+        public int getMin_value() {
+            return min_value;
+        }
+
+        public void setMin_value(int min_value) {
+            this.min_value = min_value;
+        }
+
+        public int getParam_id() {
+            return param_id;
+        }
+
+        public void setParam_id(int param_id) {
+            this.param_id = param_id;
+        }
+
+        public String getParam_name() {
+            return param_name;
+        }
+
+        public void setParam_name(String param_name) {
+            this.param_name = param_name;
+        }
+
+        public int getSelf_max_value() {
+            return self_max_value;
+        }
+
+        public void setSelf_max_value(int self_max_value) {
+            this.self_max_value = self_max_value;
+        }
+
+        public int getSelf_min_value() {
+            return self_min_value;
+        }
+
+        public void setSelf_min_value(int self_min_value) {
+            this.self_min_value = self_min_value;
+        }
+
+        public int getSetting_id() {
+            return setting_id;
+        }
+
+        public void setSetting_id(int setting_id) {
+            this.setting_id = setting_id;
+        }
+
+        public double getVs_value() {
+            return vs_value;
+        }
+
+        public void setVs_value(double vs_value) {
+            this.vs_value = vs_value;
+        }
+
+        @Override
+        public String toString() {
+            return "LogListBean{" +
+                    "alarm=" + alarm +
+                    ", bool_read=" + bool_read +
+                    ", create_time=" + create_time +
+                    ", device_id='" + device_id + '\'' +
+                    ", device_type='" + device_type + '\'' +
+                    ", group_id=" + group_id +
+                    ", group_name='" + group_name + '\'' +
+                    ", imei='" + imei + '\'' +
+                    ", log_group_id='" + log_group_id + '\'' +
+                    ", log_time=" + log_time +
+                    ", max_value=" + max_value +
+                    ", member_id=" + member_id +
+                    ", member_nickname='" + member_nickname + '\'' +
+                    ", min_value=" + min_value +
+                    ", param_id=" + param_id +
+                    ", param_name='" + param_name + '\'' +
+                    ", self_max_value=" + self_max_value +
+                    ", self_min_value=" + self_min_value +
+                    ", setting_id=" + setting_id +
+                    ", vs_value=" + vs_value +
+                    '}';
+        }
+    }
+
+    @Override
+    public String toString() {
+        return "SingDataBean{" +
+                "id=" + id +
+                ", create_time=" + create_time +
+                ", sort=" + sort +
+                ", unit='" + unit + '\'' +
+                ", vital_signs_name='" + vital_signs_name + '\'' +
+                ", log_list=" + log_list +
+                '}';
+    }
+}

+ 116 - 0
middleware/src/main/code/com/wdkl/ncs/android/middleware/model/vo/TipsVO.java

@@ -0,0 +1,116 @@
+package com.wdkl.ncs.android.middleware.model.vo;
+
+import java.io.Serializable;
+
+
+public class TipsVO implements Serializable {
+
+    /**
+     * id : 3
+     * part_id : 2
+     * show_text : 你好
+     * text_color : #FFFFFF
+     * text_size : 1444
+     * screen_bg_color : #409EFF
+     * display_minutes : 20
+     * bool_scroll : false
+     * scroll_direct : null
+     */
+
+    private int id;
+    private int part_id;
+    private String show_text;
+    private String text_color;
+    private int text_size;
+    private String screen_bg_color;
+    private int display_minutes;
+    private boolean bool_scroll;
+    private Object scroll_direct;
+
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    public int getPart_id() {
+        return part_id;
+    }
+
+    public void setPart_id(int part_id) {
+        this.part_id = part_id;
+    }
+
+    public String getShow_text() {
+        return show_text;
+    }
+
+    public void setShow_text(String show_text) {
+        this.show_text = show_text;
+    }
+
+    public String getText_color() {
+        return text_color;
+    }
+
+    public void setText_color(String text_color) {
+        this.text_color = text_color;
+    }
+
+    public int getText_size() {
+        return text_size;
+    }
+
+    public void setText_size(int text_size) {
+        this.text_size = text_size;
+    }
+
+    public String getScreen_bg_color() {
+        return screen_bg_color;
+    }
+
+    public void setScreen_bg_color(String screen_bg_color) {
+        this.screen_bg_color = screen_bg_color;
+    }
+
+    public int getDisplay_minutes() {
+        return display_minutes;
+    }
+
+    public void setDisplay_minutes(int display_minutes) {
+        this.display_minutes = display_minutes;
+    }
+
+    public boolean isBool_scroll() {
+        return bool_scroll;
+    }
+
+    public void setBool_scroll(boolean bool_scroll) {
+        this.bool_scroll = bool_scroll;
+    }
+
+    public Object getScroll_direct() {
+        return scroll_direct;
+    }
+
+    public void setScroll_direct(Object scroll_direct) {
+        this.scroll_direct = scroll_direct;
+    }
+
+    @Override
+    public String toString() {
+        return "TipsVO{" +
+                "id=" + id +
+                ", part_id=" + part_id +
+                ", show_text='" + show_text + '\'' +
+                ", text_color='" + text_color + '\'' +
+                ", text_size=" + text_size +
+                ", screen_bg_color='" + screen_bg_color + '\'' +
+                ", display_minutes=" + display_minutes +
+                ", bool_scroll=" + bool_scroll +
+                ", scroll_direct=" + scroll_direct +
+                '}';
+    }
+}

+ 151 - 0
middleware/src/main/code/com/wdkl/ncs/android/middleware/tcp/channel/YhUtil.java

@@ -0,0 +1,151 @@
+package com.wdkl.ncs.android.middleware.tcp.channel;
+
+import com.wdkl.ncs.android.middleware.tcp.TcpClient;
+import com.wdkl.ncs.android.middleware.tcp.dto.NfcTcpModeData;
+import com.wdkl.ncs.android.middleware.tcp.dto.TcpModel;
+import com.wdkl.ncs.android.middleware.tcp.enums.TcpAction;
+import com.wdkl.ncs.android.middleware.tcp.enums.TcpType;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class YhUtil {
+    //医护登陆--登陆
+    public static TcpModel Landing(Integer fromId, String passno  ){
+        TcpModel tcpModel = new TcpModel(null);
+        tcpModel.setType(TcpType.AUTH);
+        tcpModel.setAction(TcpAction.AuthAction.LOGIN);
+        tcpModel.setFromId(fromId);
+        tcpModel.setTid("t"+String.valueOf(System.currentTimeMillis()));
+        tcpModel.setData(new NfcTcpModeData(passno));
+        return tcpModel;
+    }
+
+    //医护登陆--退出登陆
+    public static TcpModel ExitLanding(Integer fromId,  String passno){
+        TcpModel tcpModel = new TcpModel(null);
+        tcpModel.setType(TcpType.AUTH);
+        tcpModel.setAction(TcpAction.AuthAction.LOGOUT);
+        tcpModel.setFromId(fromId);
+        tcpModel.setTid("t"+String.valueOf(System.currentTimeMillis()));
+        tcpModel.setData(new NfcTcpModeData(passno));
+        return tcpModel;
+    }
+
+    //医护定位--定位开始
+    public static TcpModel Positioning(Integer fromId, String passno  ){
+        TcpModel tcpModel = new TcpModel(null);
+        tcpModel.setType(TcpType.POSITION);
+        tcpModel.setAction(TcpAction.PositionAction.POSITION_START);
+        tcpModel.setFromId(fromId);
+        tcpModel.setTid("t"+String.valueOf(System.currentTimeMillis()));
+        tcpModel.setData(new NfcTcpModeData(passno));
+        return tcpModel;
+    }
+
+    //医护定位--定位结束
+    public static TcpModel ExitPositioning(Integer fromId,  String passno){
+        TcpModel tcpModel = new TcpModel(null);
+        tcpModel.setType(TcpType.POSITION);
+        tcpModel.setAction(TcpAction.PositionAction.POSITION_END);
+        tcpModel.setFromId(fromId);
+        tcpModel.setTid("t"+String.valueOf(System.currentTimeMillis()));
+        tcpModel.setData(new NfcTcpModeData(passno));
+        return tcpModel;
+    }
+
+    //医护巡房--巡房开始
+    public static TcpModel RoomCheck(Integer fromId, String passno  ){
+        TcpModel tcpModel = new TcpModel(null);
+        tcpModel.setType(TcpType.ROOMCHECK);
+        tcpModel.setAction(TcpAction.RoomCheckAction.START);
+        tcpModel.setFromId(fromId);
+        tcpModel.setTid("t"+String.valueOf(System.currentTimeMillis()));
+        tcpModel.setData(new NfcTcpModeData(passno));
+        return tcpModel;
+    }
+
+    //医护巡房--巡房结束
+    public static TcpModel ExitRoomCheck(Integer fromId,  String passno){
+        TcpModel tcpModel = new TcpModel(null);
+        tcpModel.setType(TcpType.ROOMCHECK);
+        tcpModel.setAction(TcpAction.RoomCheckAction.END);
+        tcpModel.setFromId(fromId);
+        tcpModel.setTid("t"+String.valueOf(System.currentTimeMillis()));
+        tcpModel.setData(new NfcTcpModeData(passno));
+        return tcpModel;
+    }
+
+    //医护提示语-开始
+    public static TcpModel ScreenTip(Integer fromId, String passno ,String tips ,String seconds){
+        TcpModel tcpModel = new TcpModel(null);
+        tcpModel.setType(TcpType.SCREEN_TIP);
+        tcpModel.setAction(TcpAction.ScreenTipAction.START);
+        tcpModel.setFromId(fromId);
+        tcpModel.setTid("t"+String.valueOf(System.currentTimeMillis()));
+        Map map = new HashMap();
+        map.put("tips", tips);
+        map.put("seconds", seconds);
+        tcpModel.setData(new NfcTcpModeData(passno,map));
+        return tcpModel;
+    }
+
+    //医护提示语--结束
+    public static TcpModel ExitScreenTip(Integer fromId,  String passno,String tips ,String seconds){
+        TcpModel tcpModel = new TcpModel(null);
+        tcpModel.setType(TcpType.SCREEN_TIP);
+        tcpModel.setAction(TcpAction.ScreenTipAction.QUIT);
+        tcpModel.setFromId(fromId);
+        tcpModel.setTid("t"+String.valueOf(System.currentTimeMillis()));
+        Map map = new HashMap();
+        map.put("tips", tips);
+        map.put("seconds", seconds);
+        tcpModel.setData(new NfcTcpModeData(passno,map));
+        return tcpModel;
+    }
+
+    //登陆
+    public static void sendLanding( Integer fromId, String passno) {
+        TcpModel tcpModel = Landing( fromId, passno);
+        TcpClient.getInstance().sendMsg(tcpModel.toJson());
+    }
+
+    public static void sendReinforceResponsed(Integer fromId,   String passno) {
+        TcpModel tcpModel = ExitLanding(fromId,  passno);
+        TcpClient.getInstance().sendMsg(tcpModel.toJson());
+    }
+    //定位
+    public static void sendPositioning( Integer fromId, String passno) {
+        TcpModel tcpModel = Positioning( fromId, passno);
+        TcpClient.getInstance().sendMsg(tcpModel.toJson());
+    }
+
+    public static void sendExitPositioning(Integer fromId,   String passno) {
+        TcpModel tcpModel = ExitPositioning(fromId,  passno);
+        TcpClient.getInstance().sendMsg(tcpModel.toJson());
+    }
+
+    //巡防
+    public static void sendRoomCheck( Integer fromId, String passno) {
+        TcpModel tcpModel = RoomCheck( fromId, passno);
+        TcpClient.getInstance().sendMsg(tcpModel.toJson());
+    }
+
+    public static void sendExitRoomCheck(Integer fromId,   String passno) {
+        TcpModel tcpModel = ExitRoomCheck(fromId,  passno);
+        TcpClient.getInstance().sendMsg(tcpModel.toJson());
+    }
+
+    //提示语
+    public static void sendScreenTip( Integer fromId, String passno,String tips ,String seconds) {
+        TcpModel tcpModel = ScreenTip(fromId, passno,tips, seconds);
+        TcpClient.getInstance().sendMsg(tcpModel.toJson());
+    }
+
+    public static void sendExitScreenTip(Integer fromId,   String passno,String tips ,String seconds) {
+        TcpModel tcpModel = ExitScreenTip(fromId, passno,tips, seconds);
+        TcpClient.getInstance().sendMsg(tcpModel.toJson());
+    }
+
+
+}

+ 15 - 0
middleware/src/main/code/com/wdkl/ncs/android/middleware/tcp/dto/TcpModel.java

@@ -169,6 +169,21 @@ public class TcpModel implements Serializable {
             case REINFORCE:
                 tcpAction = TcpAction.ReinforceAction.fromString(action);
                 break;
+            case AUTH:
+                tcpAction = TcpAction.AuthAction.fromString(action);
+                break;
+            case POSITION:
+                tcpAction = TcpAction.PositionAction.fromString(action);
+                break;
+            case COUNTDOWN:
+                tcpAction = TcpAction.CountdownAction.fromString(action);
+                break;
+            case SCREEN_TIP:
+                tcpAction = TcpAction.ScreenTipAction.fromString(action);
+                break;
+            case ROOMCHECK:
+                tcpAction = TcpAction.RoomCheckAction.fromString(action);
+                break;
         }
 
         tcpModel.setTid(tid);

+ 141 - 0
middleware/src/main/code/com/wdkl/ncs/android/middleware/tcp/enums/TcpAction.java

@@ -685,4 +685,145 @@ public interface TcpAction {
             return positionAction;
         }
     }
+    enum BlueCodeAction implements TcpAction{
+        CALL("呼叫"),
+        SUCCESS("成功"),
+        RESPONSE("响应"),
+        RESPONDED("已响应");
+        private final String description;
+        BlueCodeAction(String description){
+            this.description = description;
+        }
+        public String getDescription() {
+            return description;
+        }
+        public String getName(){
+            return this.name();
+        }
+
+        private final static Map<String , BlueCodeAction> ENUM_MAP = new HashMap<String, BlueCodeAction>();
+        static {
+            for(BlueCodeAction v : values()) {
+                ENUM_MAP.put(v.toString() , v);
+            }
+        }
+        public static BlueCodeAction fromString(String v) {
+            return ENUM_MAP.get(v);
+        }
+    }
+
+    enum CountdownAction implements TcpAction {
+        START("倒计时开始"),
+        END("倒计时结束"),
+        CANCEL("倒计时取消"),
+        ;
+
+        private final String description;
+        CountdownAction(String description){
+            this.description = description;
+        }
+        public String getDescription() {
+            return description;
+        }
+
+        public String getName(){
+            return this.name();
+        }
+
+        private final static Map<String , CountdownAction> ENUM_MAP = new HashMap<String, CountdownAction>();
+        static {
+            for(CountdownAction v : values()) {
+                ENUM_MAP.put(v.toString() , v);
+            }
+        }
+        public static CountdownAction fromString(String v) {
+            return ENUM_MAP.get(v);
+        }
+    }
+
+    enum RoomCheckAction implements TcpAction {
+        START("巡房开始"),
+        END("巡房结束"),
+        ;
+
+        private final String description;
+        RoomCheckAction(String description){
+            this.description = description;
+        }
+        public String getDescription() {
+            return description;
+        }
+
+        public String getName(){
+            return this.name();
+        }
+
+        private final static Map<String , RoomCheckAction> ENUM_MAP = new HashMap<String, RoomCheckAction>();
+        static {
+            for(RoomCheckAction v : values()) {
+                ENUM_MAP.put(v.toString() , v);
+            }
+        }
+        public static RoomCheckAction fromString(String v) {
+            return ENUM_MAP.get(v);
+        }
+    }
+
+    enum ScreenTipAction implements TcpAction {
+        START("提示语开始"),
+        QUIT("提示语退出")
+        ;
+
+        private final String description;
+        ScreenTipAction(String description){
+            this.description = description;
+        }
+        public String getDescription() {
+            return description;
+        }
+
+        public String getName(){
+            return this.name();
+        }
+
+        private final static Map<String , ScreenTipAction> ENUM_MAP = new HashMap<String, ScreenTipAction>();
+        static {
+            for(ScreenTipAction v : values()) {
+                ENUM_MAP.put(v.toString() , v);
+            }
+        }
+        public static ScreenTipAction fromString(String v) {
+            return ENUM_MAP.get(v);
+        }
+    }
+
+    enum AuthAction implements TcpAction {
+        LOGIN("登录"),
+        LOGOUT("退出"),
+        ;
+
+        private final String description;
+        AuthAction(String description){
+            this.description = description;
+        }
+        public String getDescription() {
+            return description;
+        }
+
+        public String getName(){
+            return this.name();
+        }
+
+        private final static Map<String , AuthAction> ENUM_MAP = new HashMap<String, AuthAction>();
+        static {
+            for(AuthAction v : values()) {
+                ENUM_MAP.put(v.toString() , v);
+            }
+        }
+        public static AuthAction fromString(String v) {
+            return ENUM_MAP.get(v);
+        }
+    }
+
+
 }

+ 3 - 1
middleware/src/main/code/com/wdkl/ncs/android/middleware/tcp/enums/TcpType.java

@@ -29,7 +29,9 @@ public enum TcpType {
     POSITION("床旁交互定位"),
     COUNTDOWN("床旁交互倒计时"),
     ROOMCHECK("床旁交互巡房"),
-    SCREEN_TIP("设置门口机提示语");
+    SCREEN_TIP("设置门口机提示语"),
+    AUTH("认证"),
+    BLUE_CODE("blue code");
 
 
     private String description;

BIN
resource/src/main/res/mipmap-xxxhdpi/list.png


+ 16 - 15
welcome/src/main/code/com/wdkl/ncs/android/component/welcome/activity/WelcomeActivity.kt

@@ -3,21 +3,22 @@ package com.wdkl.ncs.android.component.welcome.activity
 import android.Manifest
 import android.graphics.Color
 import android.os.Build
-import com.wdkl.ncs.android.component.welcome.launch.WelcomeLaunch
+import android.util.Log
 import com.enation.javashop.android.jrouter.external.annotation.Router
 import com.enation.javashop.android.welcome.BuildConfig
-import com.wdkl.ncs.android.lib.base.BaseActivity
-import com.wdkl.ncs.android.lib.utils.*
-import com.wdkl.ncs.android.middleware.logic.contract.welcome.WelcomeContract
-import com.wdkl.ncs.android.middleware.logic.presenter.welcome.WelcomePresenter
-import com.wdkl.ncs.android.lib.vo.filter
-import com.wdkl.ncs.android.middleware.model.AdViewModel
 import com.enation.javashop.android.welcome.R
 import com.enation.javashop.android.welcome.databinding.ActivityWelcomeBinding
 import com.enation.javashop.net.engine.model.NetState
 import com.enation.javashop.net.engine.plugin.permission.RxPermissions
 import com.enation.javashop.utils.base.tool.CommonTool
+import com.wdkl.ncs.android.component.welcome.launch.WelcomeLaunch
+import com.wdkl.ncs.android.lib.base.BaseActivity
+import com.wdkl.ncs.android.lib.utils.*
+import com.wdkl.ncs.android.lib.vo.filter
 import com.wdkl.ncs.android.middleware.common.MessageEvent
+import com.wdkl.ncs.android.middleware.logic.contract.welcome.WelcomeContract
+import com.wdkl.ncs.android.middleware.logic.presenter.welcome.WelcomePresenter
+import com.wdkl.ncs.android.middleware.model.AdViewModel
 import io.reactivex.Observable
 import org.greenrobot.eventbus.Subscribe
 import org.greenrobot.eventbus.ThreadMode
@@ -67,8 +68,8 @@ class WelcomeActivity :BaseActivity<WelcomePresenter, ActivityWelcomeBinding>(),
      * @Note   初始化
      */
     override fun init() {
-        AppTool.SystemUI.showNavigationBar(this,false)
-        AppTool.SystemUI.ImmersiveWithBottomBarColor(this,Color.BLACK)
+        AppTool.SystemUI.showNavigationBar(this, false)
+        AppTool.SystemUI.ImmersiveWithBottomBarColor(this, Color.BLACK)
         requestPermissions()
         //toHome()
     }
@@ -220,7 +221,7 @@ class WelcomeActivity :BaseActivity<WelcomePresenter, ActivityWelcomeBinding>(),
      * @Note   页面销毁时调用
      */
     override fun destory() {
-        debugLog("WelcomeActivity","Destory")
+        debugLog("WelcomeActivity", "Destory")
     }
 
     /**
@@ -232,10 +233,10 @@ class WelcomeActivity :BaseActivity<WelcomePresenter, ActivityWelcomeBinding>(),
      */
     override fun networkMonitor(state: NetState) {
         state.filter(onMobile = {
-            debugLog("Welcome","mobile")
-        },onWifi = {
-            debugLog("Welcome","wifi")
-        },offline = {
+            debugLog("Welcome", "mobile")
+        }, onWifi = {
+            debugLog("Welcome", "wifi")
+        }, offline = {
             noneNetDo()
         })
     }
@@ -247,7 +248,7 @@ class WelcomeActivity :BaseActivity<WelcomePresenter, ActivityWelcomeBinding>(),
      * @Note   没有网时,执行以下操作
      */
     private fun noneNetDo(){
-        CommonTool.createVerifyDialog("无网络","退出程序","设置网络",activity,object : CommonTool.DialogInterface {
+        CommonTool.createVerifyDialog("无网络", "退出程序", "设置网络", activity, object : CommonTool.DialogInterface {
             override fun yes() {
                 AppTool.Time.delay(300) {
                     AppTool.Setting.systemNetSetting(this@WelcomeActivity)