瀏覽代碼

修改责任医生和责任护士title可以通过服务端配置显示,修改呼叫护士和进入护理按钮可通过服务端配置显示。修改呼叫失败挂断崩溃问题。

weizhengliang 3 年之前
父節點
當前提交
731a209eb9

+ 60 - 20
callingdoor/src/main/java/com/wdkl/app/ncs/callingdoor/activity/CallingdoorActivity.kt

@@ -266,7 +266,7 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
                 if ("rk3128".equals(Build.MODEL) || "rk3368".equals(Build.MODEL)) {
                     SerialPortHelper.setDoorLight(1, "111") //白色
                 }
-                room_action_nurse.text = "进入护理"
+                //room_action_nurse.text = "进入护理"
                 room_action_nurse.setBackgroundResource(R.mipmap.bg_bottom_btn)
                 tv_room_name.text = Constant.ROOM_NAME
                 tv_room_name.setTextColor(resources.getColor(R.color.main_color))
@@ -278,9 +278,13 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
                 if ("rk3128".equals(Build.MODEL) || "rk3368".equals(Build.MODEL)) {
                     SerialPortHelper.setDoorLight(1, "010") //绿色
                 }
-                room_action_nurse.text = "退出护理"
+                //room_action_nurse.text = "退出护理"
                 room_action_nurse.setBackgroundResource(R.mipmap.ic_bottom_btn_bg)
-                tv_room_name.text = Constant.ROOM_NAME + " 正在护理中..."
+                if (TextUtils.isEmpty(Constant.NursingTitle)) {
+                    tv_room_name.text = Constant.ROOM_NAME + " 正在护理中..."
+                } else {
+                    tv_room_name.text = Constant.ROOM_NAME + " " + Constant.NursingTitle + "..."
+                }
                 tv_room_name.setTextColor(resources.getColor(R.color.nursing_color))
                 if (Constant.DEVICE_ID != -1) {
                     OtherUtil.sendNursing(Constant.DEVICE_ID)
@@ -456,8 +460,11 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
             EventBus.getDefault().unregister(this)
         }
         MediaPlayHelper.getInstance().stopMusic()
-        SerialPortUtil.getInstance().closeHeart()
-        SerialPortUtil.getInstance().closeSerialPort()
+
+        if ("rk3128".equals(Build.MODEL) || "rk3368".equals(Build.MODEL)) {
+            SerialPortUtil.getInstance().closeHeart()
+            SerialPortUtil.getInstance().closeSerialPort()
+        }
     }
 
     //数据加载错误
@@ -557,7 +564,7 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
 
         if (deviceInfo.frameId != null) {
             Constant.FRAME_ID = deviceInfo.frameId
-            EventBus.getDefault().post(MessageEvent("updateCustom", Constant.EVENT_UPDATE_CUSTOM))
+            //EventBus.getDefault().post(MessageEvent("updateCustom", Constant.EVENT_UPDATE_CUSTOM))
         }
 
         presenter.loadPartSettings(Constant.PART_ID)
@@ -569,27 +576,60 @@ class CallingdoorActivity :BaseActivity<CallingdoorActivityPresenter, Callingdoo
     }
 
     override fun setPartSettings(partSetting: PartSettingDO) {
-        //设置白昼起止时间
-        SettingConfig.setInitialDayTime(this, partSetting.dayStart.substring(0,5))
-        SettingConfig.setEndOfDay(this,partSetting.nightStart.substring(0,5))
+        try {
+            //设置白昼起止时间
+            SettingConfig.setInitialDayTime(this, partSetting.dayStart.substring(0, 5))
+            SettingConfig.setEndOfDay(this, partSetting.nightStart.substring(0, 5))
+
+            //白天夜晚背光亮度
+            SettingConfig.setDaytimeBrightness(this, partSetting.dayLight)
+            SettingConfig.setNightBrightness(this, partSetting.nightLight)
 
-        //白天夜晚背光亮度
-        SettingConfig.setDaytimeBrightness(this, partSetting.dayLight)
-        SettingConfig.setNightBrightness(this, partSetting.nightLight)
+            //白天夜晚系统音量
+            SettingConfig.setDoorDaytimeSystemVolume(this, partSetting.dayDoorVol)
+            SettingConfig.setDoorNightSystemVolume(this, partSetting.nightDoorVol)
 
-        //白天夜晚系统音量
-        SettingConfig.setDoorDaytimeSystemVolume(this, partSetting.dayDoorVol)
-        SettingConfig.setDoorNightSystemVolume(this, partSetting.nightDoorVol)
+            //通话音量  没做白昼区分
+            SettingConfig.setExtensionCallVolume(this, partSetting.dayDoorVol)
 
-        //通话音量  没做白昼区分
-        SettingConfig.setExtensionCallVolume(this, partSetting.dayDoorVol)
+            SettingConfig.setSipOverTime(this, partSetting.sipOvertime)
+            SettingConfig.setSleepTime(this, partSetting.sleepSecondsDoor)
 
-        SettingConfig.setSipOverTime(this, partSetting.sipOvertime)
-        SettingConfig.setSleepTime(this, partSetting.sleepSecondsDoor)
+            VoiceManagerUtil.setCallVoice(activity, partSetting.dayDoorVol)
 
-        VoiceManagerUtil.setCallVoice(activity, partSetting.dayDoorVol)
+            Constant.doctorTitle = partSetting.doctorTitle
+            Constant.nurseTitle = partSetting.nurseTitle
+            if (partSetting.doctorValid != null) {
+                Constant.doctorValid = partSetting.doctorValid
+            }
+            if (partSetting.nurseValid != null) {
+                Constant.nurseValid = partSetting.nurseValid
+            }
+
+            //按钮名称显示
+            if (!TextUtils.isEmpty(partSetting.doorNurseTitle)) {
+                room_action_call.visibility = View.VISIBLE
+                room_action_call.text = partSetting.doorNurseTitle
+            }
+            if (partSetting.doorNurseValid != null && partSetting.doorNurseValid == 0) {
+                room_action_call.visibility = View.GONE
+            }
+
+            if (!TextUtils.isEmpty(partSetting.doorNursingTitle)) {
+                room_action_nurse.visibility = View.VISIBLE
+                room_action_nurse.text = partSetting.doorNursingTitle
+                Constant.NursingTitle = partSetting.doorNursingTitle
+            }
+            if (partSetting.doorNursingValid != null && partSetting.doorNursingValid == 0) {
+                room_action_nurse.visibility = View.GONE
+            }
+        } catch (ex: Exception) {
+            ex.printStackTrace()
+        }
 
         updateSettings(true)
+
+        EventBus.getDefault().post(MessageEvent("updateCustom", Constant.EVENT_UPDATE_CUSTOM))
     }
 
     override fun loadAppVersion(appInfo: AppVersionDO) {

+ 63 - 12
callingdoor/src/main/java/com/wdkl/app/ncs/callingdoor/adapter/FrameRoomAdapter.kt

@@ -14,6 +14,7 @@ import android.widget.ImageView
 import android.widget.LinearLayout
 import android.widget.TextView
 import com.wdkl.app.ncs.callingdoor.R
+import com.wdkl.ncs.android.middleware.common.Constant
 import com.wdkl.ncs.android.middleware.model.dto.NurseConfigDto
 import com.wdkl.ncs.android.middleware.model.vo.FrameBedVO
 
@@ -140,12 +141,37 @@ class FrameRoomAdapter : RecyclerView.Adapter<FrameRoomAdapter.BedViewHolder> {
             holder.doctorName.text = bedVO.doctorName
             holder.nurseName.text = bedVO.nurseName
 
-            holder.doctorIcon.visibility = View.VISIBLE
-            holder.doctorTitle.visibility = View.VISIBLE
-            holder.doctorName.visibility = View.VISIBLE
-            holder.nurseIcon.visibility = View.VISIBLE
-            holder.nurseTitle.visibility = View.VISIBLE
-            holder.nurseName.visibility = View.VISIBLE
+            if (!TextUtils.isEmpty(Constant.doctorTitle)) {
+                holder.doctorTitle.text = Constant.doctorTitle
+            } else {
+                holder.doctorTitle.text = "责任医生"
+            }
+
+            if (!TextUtils.isEmpty(Constant.nurseTitle)) {
+                holder.nurseTitle.text = Constant.nurseTitle
+            } else {
+                holder.nurseTitle.text = "责任护士"
+            }
+
+            if (Constant.doctorValid == 1) {
+                holder.doctorIcon.visibility = View.VISIBLE
+                holder.doctorTitle.visibility = View.VISIBLE
+                holder.doctorName.visibility = View.VISIBLE
+            } else {
+                holder.doctorIcon.visibility = View.GONE
+                holder.doctorTitle.visibility = View.GONE
+                holder.doctorName.visibility = View.GONE
+            }
+
+            if (Constant.nurseValid == 1) {
+                holder.nurseIcon.visibility = View.VISIBLE
+                holder.nurseTitle.visibility = View.VISIBLE
+                holder.nurseName.visibility = View.VISIBLE
+            } else {
+                holder.nurseIcon.visibility = View.GONE
+                holder.nurseTitle.visibility = View.GONE
+                holder.nurseName.visibility = View.GONE
+            }
 
             val nursingConfigs = bedVO.nurseConfigDtos
             if (nursingConfigs != null && nursingConfigs.size > 0) {
@@ -204,12 +230,37 @@ class FrameRoomAdapter : RecyclerView.Adapter<FrameRoomAdapter.BedViewHolder> {
             holder.doctorName.text = bedVO.doctorName
             holder.nurseName.text = bedVO.nurseName
 
-            holder.doctorIcon.visibility = View.VISIBLE
-            holder.doctorTitle.visibility = View.VISIBLE
-            holder.doctorName.visibility = View.VISIBLE
-            holder.nurseIcon.visibility = View.VISIBLE
-            holder.nurseTitle.visibility = View.VISIBLE
-            holder.nurseName.visibility = View.VISIBLE
+            if (!TextUtils.isEmpty(Constant.doctorTitle)) {
+                holder.doctorTitle.text = Constant.doctorTitle
+            } else {
+                holder.doctorTitle.text = "责任医生"
+            }
+
+            if (!TextUtils.isEmpty(Constant.nurseTitle)) {
+                holder.nurseTitle.text = Constant.nurseTitle
+            } else {
+                holder.nurseTitle.text = "责任护士"
+            }
+
+            if (Constant.doctorValid == 1) {
+                holder.doctorIcon.visibility = View.VISIBLE
+                holder.doctorTitle.visibility = View.VISIBLE
+                holder.doctorName.visibility = View.VISIBLE
+            } else {
+                holder.doctorIcon.visibility = View.GONE
+                holder.doctorTitle.visibility = View.GONE
+                holder.doctorName.visibility = View.GONE
+            }
+
+            if (Constant.nurseValid == 1) {
+                holder.nurseIcon.visibility = View.VISIBLE
+                holder.nurseTitle.visibility = View.VISIBLE
+                holder.nurseName.visibility = View.VISIBLE
+            } else {
+                holder.nurseIcon.visibility = View.GONE
+                holder.nurseTitle.visibility = View.GONE
+                holder.nurseName.visibility = View.GONE
+            }
 
             val nursingConfigs = bedVO.nurseConfigDtos
             if (nursingConfigs != null && nursingConfigs.size > 0) {

+ 6 - 2
callingdoor/src/main/java/com/wdkl/app/ncs/callingdoor/fragment/SkyCallFragment.kt

@@ -125,7 +125,9 @@ class SkyCallFragment: BaseCallFragment(), CallSessionCallback {
             if (Constant.CALL_STATE == Constant.CALL_CALLING) {
                 //结束sip通话
                 Constant.CALL_STATE = Constant.CALL_STANDBY
-                sky_voice_call_timer.stop()
+                if (sky_voice_call_timer != null) {
+                    sky_voice_call_timer.stop()
+                }
                 callEnd()
             } else {
                 Constant.CALL_STATE = Constant.CALL_STANDBY
@@ -234,7 +236,9 @@ class SkyCallFragment: BaseCallFragment(), CallSessionCallback {
     private fun cancelCall() {
         cancelTimer()
         Constant.CALL_STATE = Constant.CALL_STANDBY
-        sky_voice_call_timer.stop()
+        if (sky_voice_call_timer != null) {
+            sky_voice_call_timer.stop()
+        }
         callEnd()
     }
 

+ 7 - 0
middleware/src/main/code/com/wdkl/ncs/android/middleware/common/Constant.java

@@ -111,6 +111,13 @@ public class Constant {
     //MCU版本
     public static String MCU_VERSION_NUMBER = "";
 
+    public static String doctorTitle = "责任医生";
+    public static Integer doctorValid = 1;
+    public static String nurseTitle = "责任护士";
+    public static Integer nurseValid = 1;
+
+    public static String NursingTitle = "进入护理";
+
     //是否护理状态
     public static boolean inNursing = false;
 

+ 216 - 2
middleware/src/main/code/com/wdkl/ncs/android/middleware/model/dos/PartSettingDO.java

@@ -7,11 +7,11 @@ import com.wdkl.ncs.android.middleware.model.annotation.Id;
 import com.wdkl.ncs.android.middleware.model.annotation.PrimaryKeyField;
 import com.wdkl.ncs.android.middleware.model.annotation.Table;
 
+import java.io.Serializable;
+
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
-import java.io.Serializable;
-
 @Table(name = "ncs_part_setting")
 @ApiModel
 @JsonNaming(value = PropertyNamingStrategy.SnakeCaseStrategy.class)
@@ -209,6 +209,92 @@ public class PartSettingDO implements Serializable {
     private Integer transferDurationLeader;
 
 
+    /**
+     * 分机通讯模式
+     */
+    @Column(name = "communication_mode_bed")
+    @ApiModelProperty(value = "分机通讯模式(分机通话模式:1-网络电话,2-移动电话,3-座机号)", required = true)
+    private Integer communicationModeBed;
+
+
+    /**
+     * 护士主机通讯模式
+     */
+    @Column(name = "communication_mode_nurse")
+    @ApiModelProperty(value = "护士主机通讯模式(分机通话模式:1-网络电话,2-移动电话,3-座机号)", required = true)
+    private Integer communicationModeNurse;
+
+    /**
+     * 移动端(手机)通讯模式
+     */
+    @Column(name = "communication_mode_mobile")
+    @ApiModelProperty(value = "护士主机通讯模式(分机通话模式:1-网络电话,2-移动电话,3-座机号)", required = true)
+    private Integer communicationModeMobile;
+
+
+    /**
+     * 分机自定义呼叫角色按钮1
+     */
+    @Column(name = "customize_role_call_first")
+    @ApiModelProperty(value = "分机自定义呼叫角色按钮1要呼叫的角色ID", required = true)
+    private Integer customizeRoleCallFirst;
+
+    /**
+     * 分机自定义呼叫角色按钮2
+     */
+    @Column(name = "customize_role_call_second")
+    @ApiModelProperty(value = "分机自定义呼叫角色按钮2要呼叫的角色ID", required = true)
+    private Integer customizeRoleCallSecond;
+
+    @Column(name = "doctor_title")
+    @ApiModelProperty(value = "模拟分机医生标题", required = true)
+    private String doctorTitle;
+
+    @Column(name = "doctor_valid")
+    @ApiModelProperty(value = "是否显示模拟分机医生标题", required = true)
+    private Integer doctorValid;
+
+    @Column(name = "nurse_title")
+    @ApiModelProperty(value = "模拟分机护士标题", required = true)
+    private String nurseTitle;
+
+    @Column(name = "nurse_valid")
+    @ApiModelProperty(value = "是否显示模拟分机护士标题", required = true)
+    private Integer nurseValid;
+    /**
+     *	门口机呼叫护士的标题
+     */	@Column(name = "door_nurse_title" )
+    @ApiModelProperty(value="门口机呼叫护士的标题",required=false)
+    private String doorNurseTitle;
+    /**
+     *	是否显示门口机呼叫护士的标题
+     */	@Column(name = "door_nurse_valid" )
+    @ApiModelProperty(value="是否显示门口机呼叫护士的标题",required=false)
+    private Integer doorNurseValid;
+    /**
+     *	门口机进入护理的标题
+     */	@Column(name = "door_nursing_title" )
+    @ApiModelProperty(value="门口机进入护理的标题",required=false)
+    private String doorNursingTitle;
+    /**
+     *	是否显示进入护理的标题
+     */	@Column(name = "door_nursing_valid" )
+    @ApiModelProperty(value="是否显示进入护理的标题",required=false)
+    private Integer doorNursingValid;
+
+    @Column(name = "up_seconds")
+    @ApiModelProperty(value = "腕表上传定位时间间隔", required = true)
+    private Integer upSeconds;
+
+    @Column(name = "auto_accept")
+    @ApiModelProperty(value = "分机是否自动接听,0就是不开启,1就是开启", required = true)
+    private Integer autoAccept;
+
+    @Column(name = "board_show_empty_bed")
+    @ApiModelProperty(value = "信息看板显示空床位", required = true)
+    private Boolean boardShowEmptyBed;
+
+
     @PrimaryKeyField
     public Integer getId() {
         return id;
@@ -463,4 +549,132 @@ public class PartSettingDO implements Serializable {
     public void setTransferDurationLeader(Integer transferDurationLeader) {
         this.transferDurationLeader = transferDurationLeader;
     }
+
+    public Integer getCommunicationModeBed() {
+        return communicationModeBed;
+    }
+
+    public void setCommunicationModeBed(Integer communicationModeBed) {
+        this.communicationModeBed = communicationModeBed;
+    }
+
+    public Integer getCommunicationModeNurse() {
+        return communicationModeNurse;
+    }
+
+    public void setCommunicationModeNurse(Integer communicationModeNurse) {
+        this.communicationModeNurse = communicationModeNurse;
+    }
+
+    public Integer getCommunicationModeMobile() {
+        return communicationModeMobile;
+    }
+
+    public void setCommunicationModeMobile(Integer communicationModeMobile) {
+        this.communicationModeMobile = communicationModeMobile;
+    }
+
+    public Integer getCustomizeRoleCallFirst() {
+        return customizeRoleCallFirst;
+    }
+
+    public void setCustomizeRoleCallFirst(Integer customizeRoleCallFirst) {
+        this.customizeRoleCallFirst = customizeRoleCallFirst;
+    }
+
+    public Integer getCustomizeRoleCallSecond() {
+        return customizeRoleCallSecond;
+    }
+
+    public void setCustomizeRoleCallSecond(Integer customizeRoleCallSecond) {
+        this.customizeRoleCallSecond = customizeRoleCallSecond;
+    }
+
+    public String getDoctorTitle() {
+        return doctorTitle;
+    }
+
+    public void setDoctorTitle(String doctorTitle) {
+        this.doctorTitle = doctorTitle;
+    }
+
+    public Integer getDoctorValid() {
+        return doctorValid;
+    }
+
+    public void setDoctorValid(Integer doctorValid) {
+        this.doctorValid = doctorValid;
+    }
+
+    public String getNurseTitle() {
+        return nurseTitle;
+    }
+
+    public void setNurseTitle(String nurseTitle) {
+        this.nurseTitle = nurseTitle;
+    }
+
+    public Integer getNurseValid() {
+        return nurseValid;
+    }
+
+    public void setNurseValid(Integer nurseValid) {
+        this.nurseValid = nurseValid;
+    }
+
+    public String getDoorNurseTitle() {
+        return doorNurseTitle;
+    }
+
+    public void setDoorNurseTitle(String doorNurseTitle) {
+        this.doorNurseTitle = doorNurseTitle;
+    }
+
+    public Integer getDoorNurseValid() {
+        return doorNurseValid;
+    }
+
+    public void setDoorNurseValid(Integer doorNurseValid) {
+        this.doorNurseValid = doorNurseValid;
+    }
+
+    public String getDoorNursingTitle() {
+        return doorNursingTitle;
+    }
+
+    public void setDoorNursingTitle(String doorNursingTitle) {
+        this.doorNursingTitle = doorNursingTitle;
+    }
+
+    public Integer getDoorNursingValid() {
+        return doorNursingValid;
+    }
+
+    public void setDoorNursingValid(Integer doorNursingValid) {
+        this.doorNursingValid = doorNursingValid;
+    }
+
+    public Integer getUpSeconds() {
+        return upSeconds;
+    }
+
+    public void setUpSeconds(Integer upSeconds) {
+        this.upSeconds = upSeconds;
+    }
+
+    public Integer getAutoAccept() {
+        return autoAccept;
+    }
+
+    public void setAutoAccept(Integer autoAccept) {
+        this.autoAccept = autoAccept;
+    }
+
+    public Boolean getBoardShowEmptyBed() {
+        return boardShowEmptyBed;
+    }
+
+    public void setBoardShowEmptyBed(Boolean boardShowEmptyBed) {
+        this.boardShowEmptyBed = boardShowEmptyBed;
+    }
 }