소스 검색

<增加入住人员基础信息,费用,检验等信息显示>

weizhengliang 4 년 전
부모
커밋
01f1a46442
25개의 변경된 파일1636개의 추가작업 그리고 79개의 파일을 삭제
  1. 3 0
      middleware/src/main/code/com/wdkl/ncs/android/middleware/api/FrameApi.kt
  2. 6 0
      middleware/src/main/code/com/wdkl/ncs/android/middleware/logic/contract/nursehome/FramePartContract.kt
  3. 24 1
      middleware/src/main/code/com/wdkl/ncs/android/middleware/logic/presenter/nursehome/FramePartPresenter.kt
  4. 57 0
      middleware/src/main/code/com/wdkl/ncs/android/middleware/model/dto/ExaminationConfigByGroupNameDto.java
  5. 155 0
      middleware/src/main/code/com/wdkl/ncs/android/middleware/model/dto/ExaminationConfigDto.java
  6. 69 0
      middleware/src/main/code/com/wdkl/ncs/android/middleware/model/dto/FeeConfigByGroupNameDto.java
  7. 170 0
      middleware/src/main/code/com/wdkl/ncs/android/middleware/model/dto/FeeConfigDto.java
  8. 73 0
      middleware/src/main/code/com/wdkl/ncs/android/middleware/model/dto/NurseConfigDto.java
  9. 413 0
      middleware/src/main/code/com/wdkl/ncs/android/middleware/model/vo/CustomerInfoVO.java
  10. 7 7
      nursehome/src/main/java/com/wdkl/ncs/android/component/nursehome/activity/NurseHomeActivity.kt
  11. 2 2
      nursehome/src/main/java/com/wdkl/ncs/android/component/nursehome/adapter/CallRecordsItemAdapter.kt
  12. 100 0
      nursehome/src/main/java/com/wdkl/ncs/android/component/nursehome/adapter/CostItemAdapter.kt
  13. 100 0
      nursehome/src/main/java/com/wdkl/ncs/android/component/nursehome/adapter/ExamAdapter.kt
  14. 4 4
      nursehome/src/main/java/com/wdkl/ncs/android/component/nursehome/adapter/FrameBedVosConfinementAdapter.kt
  15. 99 20
      nursehome/src/main/java/com/wdkl/ncs/android/component/nursehome/fragment/FramePartFragment.kt
  16. 1 1
      nursehome/src/main/java/com/wdkl/ncs/android/component/nursehome/util/TimeTransition.kt
  17. 2 2
      nursehome/src/main/res/drawable/selt_call_records_icon.xml
  18. 5 0
      nursehome/src/main/res/drawable/selt_call_records_text.xml
  19. 2 2
      nursehome/src/main/res/layout/adapter_hospital_frame_part.xml
  20. 6 6
      nursehome/src/main/res/layout/fragment_call_records.xml
  21. 39 0
      nursehome/src/main/res/layout/item_cost_detail.xml
  22. 38 0
      nursehome/src/main/res/layout/item_cost_main_view.xml
  23. 38 0
      nursehome/src/main/res/layout/item_exam_detail.xml
  24. 29 0
      nursehome/src/main/res/layout/item_exam_main_view.xml
  25. 194 34
      nursehome/src/main/res/layout/right_basic_information.xml

+ 3 - 0
middleware/src/main/code/com/wdkl/ncs/android/middleware/api/FrameApi.kt

@@ -12,4 +12,7 @@ interface FrameApi{
 
     @GET("/deviceNurse/getFramePart/{partId}")
     fun getFramePartVO(@Path("partId") partId:Int): Observable<ResponseBody>
+
+    @GET("/deviceNurse/getCustomerInfo/{customerId}")
+    fun getCustomerInfo(@Path("customerId") customerId:Int) : Observable<ResponseBody>
 }

+ 6 - 0
middleware/src/main/code/com/wdkl/ncs/android/middleware/logic/contract/nursehome/FramePartContract.kt

@@ -3,6 +3,7 @@ package com.wdkl.ncs.android.middleware.logic.contract.nursehome
 import com.wdkl.ncs.android.lib.base.BaseContract
 import com.wdkl.ncs.android.middleware.model.FloorViewModel
 import com.wdkl.ncs.android.middleware.model.RecommendGoodsViewModel
+import com.wdkl.ncs.android.middleware.model.vo.CustomerInfoVO
 import com.wdkl.ncs.android.middleware.model.vo.FramePartVO
 import org.json.JSONArray
 
@@ -15,6 +16,8 @@ interface FramePartContract {
      */
     interface View : BaseContract.BaseView{
         fun showData(data : FramePartVO)
+
+        fun showCustomerInfo(data: CustomerInfoVO)
     }
 
     /**
@@ -22,5 +25,8 @@ interface FramePartContract {
      */
     interface Presenter : BaseContract.BasePresenter{
         fun loadData(partId: Int)
+
+        //床位入住人员数据
+        fun loadCustomerInfo(customId: Int)
     }
 }

+ 24 - 1
middleware/src/main/code/com/wdkl/ncs/android/middleware/logic/presenter/nursehome/FramePartPresenter.kt

@@ -10,6 +10,7 @@ import com.google.gson.FieldNamingPolicy
 import com.google.gson.GsonBuilder
 import com.wdkl.ncs.android.middleware.api.FrameApi
 import com.wdkl.ncs.android.middleware.logic.contract.nursehome.FramePartContract
+import com.wdkl.ncs.android.middleware.model.vo.CustomerInfoVO
 import com.wdkl.ncs.android.middleware.model.vo.FramePartVO
 import io.reactivex.disposables.Disposable
 import javax.inject.Inject
@@ -42,7 +43,16 @@ class FramePartPresenter @Inject constructor() :RxPresenter<FramePartContract.Vi
 
         override fun onNextWithConnection(result: Any, connectionQuality: ConnectionQuality) {
             providerView().complete()
-            providerView().showData(result as FramePartVO)
+            when (result) {
+                is FramePartVO -> {
+                    providerView().showData(result)
+                }
+
+                is CustomerInfoVO -> {
+                    providerView().showCustomerInfo(result)
+                }
+            }
+
         }
 
         override fun onErrorWithConnection(error: ExceptionHandle.ResponeThrowable, connectionQuality: ConnectionQuality) {
@@ -79,4 +89,17 @@ class FramePartPresenter @Inject constructor() :RxPresenter<FramePartContract.Vi
 
     }
 
+    override fun loadCustomerInfo(customId: Int) {
+        frameApi.getCustomerInfo(customId)
+                .map {
+                    var customerInfo = CustomerInfoVO()
+                    var gson = GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES).create()
+                    customerInfo = gson.fromJson(it.getJsonString(),CustomerInfoVO::class.java)
+
+                    return@map customerInfo
+                }
+                .compose(ThreadFromUtils.defaultSchedulers())
+                .subscribe(observer)
+    }
+
 }

+ 57 - 0
middleware/src/main/code/com/wdkl/ncs/android/middleware/model/dto/ExaminationConfigByGroupNameDto.java

@@ -0,0 +1,57 @@
+package com.wdkl.ncs.android.middleware.model.dto;
+
+import com.wdkl.ncs.android.middleware.model.annotation.Column;
+
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.List;
+
+/**
+ * @author
+ * @title: ExaminationConfigByGroupNameDto
+ * @projectName nc
+ * @description: TODO
+ * @date 2021/4/2911:09
+ */
+public class ExaminationConfigByGroupNameDto {
+
+    /**
+     * 费用项组名
+     */
+    @Column(name = "examination_group_name")
+    @ApiModelProperty(value = "体检项组名", required = false)
+    private String examinationGroupName;
+    /**
+     * null
+     */
+    @Column(name = "examination_number")
+    @ApiModelProperty(value = "体检批次", required = false)
+    private Integer examinationNumber;
+
+    private List<ExaminationConfigDto> examinationConfigList;
+
+
+    public String getExaminationGroupName() {
+        return examinationGroupName;
+    }
+
+    public void setExaminationGroupName(String examinationGroupName) {
+        this.examinationGroupName = examinationGroupName;
+    }
+
+    public Integer getExaminationNumber() {
+        return examinationNumber;
+    }
+
+    public void setExaminationNumber(Integer examinationNumber) {
+        this.examinationNumber = examinationNumber;
+    }
+
+    public List<ExaminationConfigDto> getExaminationConfigList() {
+        return examinationConfigList;
+    }
+
+    public void setExaminationConfigList(List<ExaminationConfigDto> examinationConfigList) {
+        this.examinationConfigList = examinationConfigList;
+    }
+}

+ 155 - 0
middleware/src/main/code/com/wdkl/ncs/android/middleware/model/dto/ExaminationConfigDto.java

@@ -0,0 +1,155 @@
+package com.wdkl.ncs.android.middleware.model.dto;
+
+import com.wdkl.ncs.android.middleware.model.annotation.Column;
+
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * @author
+ * @title: ExaminationConfigDto
+ * @projectName nc
+ * @description: TODO
+ * @date 2021/4/2817:53
+ */
+public class ExaminationConfigDto {
+    /**
+     * null
+     */
+    @Column(name = "examination_config_id")
+    @ApiModelProperty(value = "关联体检配置项", required = false)
+    private Integer examinationConfigId;
+    /**
+     * null
+     */
+    @Column(name = "examination_name")
+    @ApiModelProperty(value = "体检名称", required = false)
+    private String examinationName;
+    /**
+     * null
+     */
+    @Column(name = "examination_value")
+    @ApiModelProperty(value = "具体费用", required = false)
+    private String examinationValue;
+    /**
+     * null
+     */
+    @Column(name = "examination_number")
+    @ApiModelProperty(value = "体检批次", required = false)
+    private Integer examinationNumber;
+    /**
+     * null
+     */
+    @Column(name = "examination_time")
+    @ApiModelProperty(value = "体检时间", required = false)
+    private Long examinationTime;
+    /**
+     * 体检项组名
+     */
+    @Column(name = "examination_group_name")
+    @ApiModelProperty(value = "体检项组名", required = false)
+    private String examinationGroupName;
+    /**
+     * 体检编码
+     */
+    @Column(name = "examination_key_code")
+    @ApiModelProperty(value = "体检编码", required = false)
+    private String examinationKeyCode;
+    /**
+     * 单位
+     */
+    @Column(name = "examination_unit")
+    @ApiModelProperty(value = "单位", required = false)
+    private String examinationUnit;
+    /**
+     * 描述
+     */
+    @Column(name = "examination_description")
+    @ApiModelProperty(value = "描述", required = false)
+    private String examinationDescription;
+    /**
+     * 参数类型
+     */
+    @Column(name = "examination_key_type")
+    @ApiModelProperty(value = "参数类型", required = false)
+    private String examinationKeyType;
+
+    public Integer getExaminationConfigId() {
+        return examinationConfigId;
+    }
+
+    public void setExaminationConfigId(Integer examinationConfigId) {
+        this.examinationConfigId = examinationConfigId;
+    }
+
+    public String getExaminationName() {
+        return examinationName;
+    }
+
+    public void setExaminationName(String examinationName) {
+        this.examinationName = examinationName;
+    }
+
+    public String getExaminationValue() {
+        return examinationValue;
+    }
+
+    public void setExaminationValue(String examinationValue) {
+        this.examinationValue = examinationValue;
+    }
+
+    public Integer getExaminationNumber() {
+        return examinationNumber;
+    }
+
+    public void setExaminationNumber(Integer examinationNumber) {
+        this.examinationNumber = examinationNumber;
+    }
+
+    public Long getExaminationTime() {
+        return examinationTime;
+    }
+
+    public void setExaminationTime(Long examinationTime) {
+        this.examinationTime = examinationTime;
+    }
+
+    public String getExaminationGroupName() {
+        return examinationGroupName;
+    }
+
+    public void setExaminationGroupName(String examinationGroupName) {
+        this.examinationGroupName = examinationGroupName;
+    }
+
+    public String getExaminationKeyCode() {
+        return examinationKeyCode;
+    }
+
+    public void setExaminationKeyCode(String examinationKeyCode) {
+        this.examinationKeyCode = examinationKeyCode;
+    }
+
+    public String getExaminationUnit() {
+        return examinationUnit;
+    }
+
+    public void setExaminationUnit(String examinationUnit) {
+        this.examinationUnit = examinationUnit;
+    }
+
+    public String getExaminationDescription() {
+        return examinationDescription;
+    }
+
+    public void setExaminationDescription(String examinationDescription) {
+        this.examinationDescription = examinationDescription;
+    }
+
+    public String getExaminationKeyType() {
+        return examinationKeyType;
+    }
+
+    public void setExaminationKeyType(String examinationKeyType) {
+        this.examinationKeyType = examinationKeyType;
+    }
+}

+ 69 - 0
middleware/src/main/code/com/wdkl/ncs/android/middleware/model/dto/FeeConfigByGroupNameDto.java

@@ -0,0 +1,69 @@
+package com.wdkl.ncs.android.middleware.model.dto;
+
+import com.wdkl.ncs.android.middleware.model.annotation.Column;
+
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.List;
+
+/**
+ * @author
+ * @title: FeeConfigByGroupNameDto
+ * @projectName nc
+ * @description: TODO
+ * @date 2021/4/2911:10
+ */
+public class FeeConfigByGroupNameDto {
+    /**
+     * 费用项组名
+     */
+    @Column(name = "fee_group_name")
+    @ApiModelProperty(value = "费用项组名", required = false)
+    private String feeGroupName;
+    /**
+     * null
+     */
+    @Column(name = "fee_number")
+    @ApiModelProperty(value = "费用批次", required = false)
+    private Integer feeNumber;
+    /**
+     * 费用项组名
+     */
+    @Column(name = "subtotal")
+    @ApiModelProperty(value = "小计", required = false)
+    private Double subtotal;
+
+    private List<FeeConfigDto> feeConfigList;
+
+    public String getFeeGroupName() {
+        return feeGroupName;
+    }
+
+    public void setFeeGroupName(String feeGroupName) {
+        this.feeGroupName = feeGroupName;
+    }
+
+    public Integer getFeeNumber() {
+        return feeNumber;
+    }
+
+    public void setFeeNumber(Integer feeNumber) {
+        this.feeNumber = feeNumber;
+    }
+
+    public Double getSubtotal() {
+        return subtotal;
+    }
+
+    public void setSubtotal(Double subtotal) {
+        this.subtotal = subtotal;
+    }
+
+    public List<FeeConfigDto> getFeeConfigList() {
+        return feeConfigList;
+    }
+
+    public void setFeeConfigList(List<FeeConfigDto> feeConfigList) {
+        this.feeConfigList = feeConfigList;
+    }
+}

+ 170 - 0
middleware/src/main/code/com/wdkl/ncs/android/middleware/model/dto/FeeConfigDto.java

@@ -0,0 +1,170 @@
+package com.wdkl.ncs.android.middleware.model.dto;
+
+import com.wdkl.ncs.android.middleware.model.annotation.Column;
+
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * @author
+ * @title: FeeConfigDto
+ * @projectName nc
+ * @description: TODO
+ * @date 2021/4/2817:53
+ */
+public class FeeConfigDto {
+    /**
+     * 关联费用配置项
+     */
+    @Column(name = "fee_config_id")
+    @ApiModelProperty(value = "关联费用配置项", required = false)
+    private Integer feeConfigId;
+    /**
+     * 不使用费用配置表时使用此字段
+     */
+    @Column(name = "fee_name")
+    @ApiModelProperty(value = "费用名称", required = false)
+    private String feeName;
+    /**
+     * null
+     */
+    @Column(name = "fee_value")
+    @ApiModelProperty(value = "具体费用", required = false)
+    private Double feeValue;
+    /**
+     * null
+     */
+    @Column(name = "fee_number")
+    @ApiModelProperty(value = "费用批次", required = false)
+    private Integer feeNumber;
+    /**
+     * null
+     */
+    @Column(name = "fee_time")
+    @ApiModelProperty(value = "费用产生的时间", required = false)
+    private Long feeTime;
+    /**
+     * 费用项组名
+     */
+    @Column(name = "fee_group_name")
+    @ApiModelProperty(value = "费用项组名", required = false)
+    private String feeGroupName;
+    /**
+     * 费用编码
+     */
+    @Column(name = "fee_key_code")
+    @ApiModelProperty(value = "费用编码", required = false)
+    private String feeKeyCode;
+    /**
+     * 单位
+     */
+    @Column(name = "fee_unit")
+    @ApiModelProperty(value = "单位", required = false)
+    private String feeUnit;
+    /**
+     * 描述
+     */
+    @Column(name = "fee_description")
+    @ApiModelProperty(value = "描述", required = false)
+    private String feeDescription;
+    /**
+     * 参数类型
+     */
+    @Column(name = "fee_key_type")
+    @ApiModelProperty(value = "参数类型", required = false)
+    private String feeKeyType;
+    /**
+     * null
+     */
+    @Column(name = "fee_index")
+    @ApiModelProperty(value = "null", required = false)
+    private Integer feeIndex;
+
+
+    public Integer getFeeConfigId() {
+        return feeConfigId;
+    }
+
+    public void setFeeConfigId(Integer feeConfigId) {
+        this.feeConfigId = feeConfigId;
+    }
+
+    public String getFeeName() {
+        return feeName;
+    }
+
+    public void setFeeName(String feeName) {
+        this.feeName = feeName;
+    }
+
+    public Double getFeeValue() {
+        return feeValue;
+    }
+
+    public void setFeeValue(Double feeValue) {
+        this.feeValue = feeValue;
+    }
+
+    public Integer getFeeNumber() {
+        return feeNumber;
+    }
+
+    public void setFeeNumber(Integer feeNumber) {
+        this.feeNumber = feeNumber;
+    }
+
+    public Long getFeeTime() {
+        return feeTime;
+    }
+
+    public void setFeeTime(Long feeTime) {
+        this.feeTime = feeTime;
+    }
+
+    public String getFeeGroupName() {
+        return feeGroupName;
+    }
+
+    public void setFeeGroupName(String feeGroupName) {
+        this.feeGroupName = feeGroupName;
+    }
+
+    public String getFeeKeyCode() {
+        return feeKeyCode;
+    }
+
+    public void setFeeKeyCode(String feeKeyCode) {
+        this.feeKeyCode = feeKeyCode;
+    }
+
+    public String getFeeUnit() {
+        return feeUnit;
+    }
+
+    public void setFeeUnit(String feeUnit) {
+        this.feeUnit = feeUnit;
+    }
+
+    public String getFeeDescription() {
+        return feeDescription;
+    }
+
+    public void setFeeDescription(String feeDescription) {
+        this.feeDescription = feeDescription;
+    }
+
+    public String getFeeKeyType() {
+        return feeKeyType;
+    }
+
+    public void setFeeKeyType(String feeKeyType) {
+        this.feeKeyType = feeKeyType;
+    }
+
+    public Integer getFeeIndex() {
+        return feeIndex;
+    }
+
+    public void setFeeIndex(Integer feeIndex) {
+        this.feeIndex = feeIndex;
+    }
+}

+ 73 - 0
middleware/src/main/code/com/wdkl/ncs/android/middleware/model/dto/NurseConfigDto.java

@@ -0,0 +1,73 @@
+package com.wdkl.ncs.android.middleware.model.dto;
+
+public class NurseConfigDto {
+    private Integer id;
+
+    private Integer nurseLevel;
+
+    private Integer nurseConfig;
+
+    private String nurseOptionAndConfigName;
+
+    private String nurseOptionName;
+
+    private String nurseColorRbg;
+
+    private String nurseConfigName;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getNurseLevel() {
+        return nurseLevel;
+    }
+
+    public void setNurseLevel(Integer nurseLevel) {
+        this.nurseLevel = nurseLevel;
+    }
+
+    public Integer getNurseConfig() {
+        return nurseConfig;
+    }
+
+    public void setNurseConfig(Integer nurseConfig) {
+        this.nurseConfig = nurseConfig;
+    }
+
+    public String getNurseOptionAndConfigName() {
+        return nurseOptionAndConfigName;
+    }
+
+    public void setNurseOptionAndConfigName(String nurseOptionAndConfigName) {
+        this.nurseOptionAndConfigName = nurseOptionAndConfigName;
+    }
+
+    public String getNurseOptionName() {
+        return nurseOptionName;
+    }
+
+    public void setNurseOptionName(String nurseOptionName) {
+        this.nurseOptionName = nurseOptionName;
+    }
+
+    public String getNurseColorRbg() {
+        return nurseColorRbg;
+    }
+
+    public void setNurseColorRbg(String nurseColorRbg) {
+        this.nurseColorRbg = nurseColorRbg;
+    }
+
+    public String getNurseConfigName() {
+        return nurseConfigName;
+    }
+
+    public void setNurseConfigName(String nurseConfigName) {
+        this.nurseConfigName = nurseConfigName;
+    }
+}

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

@@ -0,0 +1,413 @@
+package com.wdkl.ncs.android.middleware.model.vo;
+
+import com.wdkl.ncs.android.middleware.model.annotation.Column;
+import com.wdkl.ncs.android.middleware.model.annotation.Id;
+import com.wdkl.ncs.android.middleware.model.dto.ExaminationConfigByGroupNameDto;
+import com.wdkl.ncs.android.middleware.model.dto.FeeConfigByGroupNameDto;
+import com.wdkl.ncs.android.middleware.model.dto.NurseConfigDto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @program nc
+ * @description: 病人信息集合
+ * @author: Vothin
+ * @create: 2021/03/04 15:37
+ */
+
+public class CustomerInfoVO implements Serializable {
+    /**
+     * customerId
+     */
+    @Column(name = "id")
+    @ApiModelProperty(value = "customerId", required = false)
+    @Id(name = "id")
+    private Integer id;
+    /**
+     * memberId
+     */
+    @Column(name = "member_id")
+    @ApiModelProperty(name = "memberId")
+    private Integer memberId;
+    /**
+     * null
+     */
+    @Column(name = "part_id")
+    @ApiModelProperty(value = "null", required = false)
+    private Integer partId;
+    /**
+     * 病人的名字
+     */
+    @Column(name = "named")
+    @ApiModelProperty(name = "病人的名字")
+    private String named;
+    /**
+     * 病人的年龄
+     */
+    @Column(name = "age")
+    @ApiModelProperty(name = "病人的年龄")
+    private Integer age;
+    /**
+     * 年龄单位。岁、月、天
+     */
+    @Column(name = "age_unit")
+    @ApiModelProperty(value = "年龄单位。岁、月、天", required = false)
+    private String ageUnit;
+    /**
+     * 身份证件类型。身份证、护照、军人证
+     */
+    @Column(name = "id_type")
+    @ApiModelProperty(value = "身份证件类型。身份证、护照、军人证", required = false)
+    private String idType;
+    /**
+     * 身份证号
+     */
+    @Column(name = "id_no")
+    @ApiModelProperty(value = "身份证号", required = false)
+    private String idNo;
+    /**
+     * 病人编号
+     */
+    @Column(name = "card_no")
+    @ApiModelProperty(value = "病人编号", required = false)
+    private String cardNo;
+    /**
+     * 状态。
+     */
+    @Column(name = "status")
+    @ApiModelProperty(value = "状态。", required = false)
+    private Integer status;
+    /**
+     * 入院时间
+     */
+    @Column(name = "in_date")
+    @ApiModelProperty(value = "入院时间", required = false)
+    private Long inDate;
+    /**
+     * 出院时间
+     */
+    @Column(name = "out_date")
+    @ApiModelProperty(value = "出院时间", required = false)
+    private Long outDate;
+    /**
+     * 病情描述
+     */
+    @Column(name = "illness_desc")
+    @ApiModelProperty(value = "病情描述", required = false)
+    private String illnessDesc;
+    /**
+     * null
+     */
+    @Column(name = "frame_id")
+    @ApiModelProperty(value = "null", required = false)
+    private Integer frameId;
+    /**
+     *	医嘱
+     */	@Column(name = "advice" )
+    @ApiModelProperty(value="医嘱",required=false)
+    private String advice;
+
+    private Integer sex;
+
+
+    private String roleName;
+
+    private String nurseConfigName;
+
+    private Integer doctorMappingId;
+
+    private Integer nurseMappingId;
+
+    private Integer workerMappingId;
+
+    private Integer doctorId;
+
+    private Integer nurseId;
+
+    private Integer workerId;
+
+    private String doctorName;
+
+    private String nurseName;
+
+    private String workerName;
+
+    private String doctorFace;
+
+    private String nurseFace;
+
+    private String workerFace;
+
+    private List<NurseConfigDto> list;
+
+    private List<ExaminationConfigByGroupNameDto> examinationConfigByGroupNameList;
+
+    private List<FeeConfigByGroupNameDto> feeConfigByGroupNameList;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getNamed() {
+        return named;
+    }
+
+    public void setNamed(String named) {
+        this.named = named;
+    }
+
+    public Integer getAge() {
+        return age;
+    }
+
+    public void setAge(Integer age) {
+        this.age = age;
+    }
+
+    public String getAgeUnit() {
+        return ageUnit;
+    }
+
+    public void setAgeUnit(String ageUnit) {
+        this.ageUnit = ageUnit;
+    }
+
+    public String getIdType() {
+        return idType;
+    }
+
+    public void setIdType(String idType) {
+        this.idType = idType;
+    }
+
+    public String getIdNo() {
+        return idNo;
+    }
+
+    public void setIdNo(String idNo) {
+        this.idNo = idNo;
+    }
+
+    public String getCardNo() {
+        return cardNo;
+    }
+
+    public void setCardNo(String cardNo) {
+        this.cardNo = cardNo;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public Long getInDate() {
+        return inDate;
+    }
+
+    public void setInDate(Long inDate) {
+        this.inDate = inDate;
+    }
+
+    public Long getOutDate() {
+        return outDate;
+    }
+
+    public void setOutDate(Long outDate) {
+        this.outDate = outDate;
+    }
+
+    public String getIllnessDesc() {
+        return illnessDesc;
+    }
+
+    public void setIllnessDesc(String illnessDesc) {
+        this.illnessDesc = illnessDesc;
+    }
+
+    public Integer getPartId() {
+        return partId;
+    }
+
+    public void setPartId(Integer partId) {
+        this.partId = partId;
+    }
+
+    public Integer getSex() {
+        return sex;
+    }
+
+    public void setSex(Integer sex) {
+        this.sex = sex;
+    }
+
+    public Integer getFrameId() {
+        return frameId;
+    }
+
+    public void setFrameId(Integer frameId) {
+        this.frameId = frameId;
+    }
+
+    public String getAdvice() {
+        return advice;
+    }
+
+    public void setAdvice(String advice) {
+        this.advice = advice;
+    }
+
+    public String getDoctorName() {
+        return doctorName;
+    }
+
+    public void setDoctorName(String doctorName) {
+        this.doctorName = doctorName;
+    }
+
+    public String getNurseName() {
+        return nurseName;
+    }
+
+    public void setNurseName(String nurseName) {
+        this.nurseName = nurseName;
+    }
+
+    public String getWorkerName() {
+        return workerName;
+    }
+
+    public void setWorkerName(String workerName) {
+        this.workerName = workerName;
+    }
+
+    public String getDoctorFace() {
+        return doctorFace;
+    }
+
+    public void setDoctorFace(String doctorFace) {
+        this.doctorFace = doctorFace;
+    }
+
+    public String getNurseFace() {
+        return nurseFace;
+    }
+
+    public void setNurseFace(String nurseFace) {
+        this.nurseFace = nurseFace;
+    }
+
+    public String getWorkerFace() {
+        return workerFace;
+    }
+
+    public void setWorkerFace(String workerFace) {
+        this.workerFace = workerFace;
+    }
+
+    public String getRoleName() {
+        return roleName;
+    }
+
+    public void setRoleName(String roleName) {
+        this.roleName = roleName;
+    }
+
+    public String getNurseConfigName() {
+        return nurseConfigName;
+    }
+
+    public void setNurseConfigName(String nurseConfigName) {
+        this.nurseConfigName = nurseConfigName;
+    }
+
+    public Integer getDoctorMappingId() {
+        return doctorMappingId;
+    }
+
+    public void setDoctorMappingId(Integer doctorMappingId) {
+        this.doctorMappingId = doctorMappingId;
+    }
+
+    public Integer getNurseMappingId() {
+        return nurseMappingId;
+    }
+
+    public void setNurseMappingId(Integer nurseMappingId) {
+        this.nurseMappingId = nurseMappingId;
+    }
+
+    public Integer getWorkerMappingId() {
+        return workerMappingId;
+    }
+
+    public void setWorkerMappingId(Integer workerMappingId) {
+        this.workerMappingId = workerMappingId;
+    }
+
+    public List<NurseConfigDto> getList() {
+        return list;
+    }
+
+    public void setList(List<NurseConfigDto> list) {
+        this.list = list;
+    }
+
+    public Integer getDoctorId() {
+        return doctorId;
+    }
+
+    public void setDoctorId(Integer doctorId) {
+        this.doctorId = doctorId;
+    }
+
+    public Integer getNurseId() {
+        return nurseId;
+    }
+
+    public void setNurseId(Integer nurseId) {
+        this.nurseId = nurseId;
+    }
+
+    public Integer getWorkerId() {
+        return workerId;
+    }
+
+    public void setWorkerId(Integer workerId) {
+        this.workerId = workerId;
+    }
+
+    public Integer getMemberId() {
+        return memberId;
+    }
+
+    public void setMemberId(Integer memberId) {
+        this.memberId = memberId;
+    }
+
+    public List<ExaminationConfigByGroupNameDto> getExaminationConfigByGroupNameList() {
+        return examinationConfigByGroupNameList;
+    }
+
+    public void setExaminationConfigByGroupNameList(List<ExaminationConfigByGroupNameDto> examinationConfigByGroupNameList) {
+        this.examinationConfigByGroupNameList = examinationConfigByGroupNameList;
+    }
+
+    public List<FeeConfigByGroupNameDto> getFeeConfigByGroupNameList() {
+        return feeConfigByGroupNameList;
+    }
+
+    public void setFeeConfigByGroupNameList(List<FeeConfigByGroupNameDto> feeConfigByGroupNameList) {
+        this.feeConfigByGroupNameList = feeConfigByGroupNameList;
+    }
+}

+ 7 - 7
nursehome/src/main/java/com/wdkl/ncs/android/component/nursehome/activity/NurseHomeActivity.kt

@@ -152,7 +152,7 @@ class NurseHomeActivity  : BaseActivity<NurseHomeActivityPresenter, ActivityNurs
             }
         }).start()
         regReceiver()//注册时间广播
-        time_tv.text = TimeTransition().getDateTime("yyyy-MM-dd HH:mm E")
+        time_tv.text = TimeTransition.getDateTime("yyyy-MM-dd HH:mm E")
         if(Constants.hospital_name!=null&& !Constants.hospital_name.equals("")){
             name_of_organization_tv.text = Constants.hospital_name+ Constants.part_name
             Log.e(TAG, Constants.hospital_name+ Constants.part_name)
@@ -648,17 +648,17 @@ fun call(tyte:Int){
     }
 
     private fun updateTime() {
-        time_tv.text = TimeTransition().getDateTime("yyyy-MM-dd HH:mm E")
+        time_tv.text = TimeTransition.getDateTime("yyyy-MM-dd HH:mm E")
         //根据时间判断白昼进行相关的配置设置
-        var currentTime = TimeTransition().getDateTime("yyyy-MM-dd HH:mm:ss")
+        var currentTime = TimeTransition.getDateTime("yyyy-MM-dd HH:mm:ss")
         //转时间戳
-        var  currentTimestamp = TimeTransition().dateToStamp(currentTime)
+        var  currentTimestamp = TimeTransition.dateToStamp(currentTime)
 
         //白天起始时间戳
-        var date = TimeTransition().getDateTime("yyyy-MM-dd")
-        var dayStartTimeStamp = TimeTransition().dateToStamp(date+" "+SettingConfig.getInitialDayTime(this)+":00")
+        var date = TimeTransition.getDateTime("yyyy-MM-dd")
+        var dayStartTimeStamp = TimeTransition.dateToStamp(date+" "+SettingConfig.getInitialDayTime(this)+":00")
         //白天结束时间戳
-        var endOfDayTimeStamp = TimeTransition().dateToStamp(date+" "+SettingConfig.getEndOfDay(this)+":00")
+        var endOfDayTimeStamp = TimeTransition.dateToStamp(date+" "+SettingConfig.getEndOfDay(this)+":00")
 
         Log.e(TAG,"dayStartTimeStamp "+dayStartTimeStamp+" "+"endOfDayTimeStamp"+endOfDayTimeStamp)
 

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

@@ -66,12 +66,12 @@ class CallRecordsItemAdapter(val data:ArrayList<InteractionVO>) : BaseDelegateAd
             val itemData = getItem(position)
 
             if (itemData.createDate != null) {
-                binding.processingTimeTv.text = TimeTransition().stampToDateTime(itemData.createDate * 1000)
+                binding.processingTimeTv.text = TimeTransition.stampToDateTime(itemData.createDate * 1000)
             }
 
             //是否已处理
             if (itemData.actionEnd != null) {
-                binding.processingTimeTv.text = TimeTransition().stampToDateTime(itemData.actionEnd * 1000)
+                binding.processingTimeTv.text = TimeTransition.stampToDateTime(itemData.actionEnd * 1000)
 
                 if (TcpType.SOS.name == itemData.actionType) {
                     //紧急呼叫已处理: 因为紧急按钮是连接在某个分机上,所以收到的紧急呼叫信息会携带该分机的信息,实际需要显示的是该房间的信息

+ 100 - 0
nursehome/src/main/java/com/wdkl/ncs/android/component/nursehome/adapter/CostItemAdapter.kt

@@ -0,0 +1,100 @@
+package com.wdkl.ncs.android.component.nursehome.adapter
+
+import android.content.Context
+import android.support.v7.widget.LinearLayoutManager
+import android.support.v7.widget.RecyclerView
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.TextView
+import com.wdkl.ncs.android.component.nursehome.R
+import com.wdkl.ncs.android.middleware.model.dto.FeeConfigByGroupNameDto
+import com.wdkl.ncs.android.middleware.model.dto.FeeConfigDto
+
+class CostItemAdapter : RecyclerView.Adapter<CostItemAdapter.ParentViewHolder> {
+
+    private var context: Context
+    private var mainData: ArrayList<FeeConfigByGroupNameDto>
+
+    constructor(context: Context, data: ArrayList<FeeConfigByGroupNameDto>) {
+        this.context = context
+        this.mainData = data
+    }
+
+    override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): ParentViewHolder {
+        val view = LayoutInflater.from(parent?.context).inflate(R.layout.item_cost_main_view, parent, false)
+        val viewHolder = ParentViewHolder(view)
+
+        return viewHolder
+    }
+
+    override fun onBindViewHolder(holder: ParentViewHolder?, position: Int) {
+        holder?.costGroupName?.text = mainData.get(position).feeGroupName
+        holder?.costGroupTotal?.text = "小计: ¥" + mainData.get(position).subtotal
+
+        val layoutManager = LinearLayoutManager(context)
+        holder?.costDetail?.layoutManager = layoutManager
+        holder?.costDetail?.adapter = CostDetailAdapter(mainData.get(position).feeConfigList)
+    }
+
+    override fun getItemCount(): Int {
+        return mainData.size
+    }
+
+    fun updateData(data: ArrayList<FeeConfigByGroupNameDto>) {
+        mainData = data
+        notifyDataSetChanged()
+    }
+
+    class ParentViewHolder : RecyclerView.ViewHolder {
+        var costGroupName : TextView
+        var costGroupTotal : TextView
+        var costDetail : RecyclerView
+
+        constructor(itemView: View): super(itemView) {
+            costGroupName = itemView.findViewById(R.id.tv_cost_group_name)
+            costGroupTotal = itemView.findViewById(R.id.tv_cost_group_total)
+            costDetail = itemView.findViewById(R.id.rv_cost_detail)
+        }
+    }
+
+    class CostDetailAdapter : RecyclerView.Adapter<CostDetailAdapter.ChildViewHolder> {
+        private var costData: List<FeeConfigDto>
+
+        constructor(data: List<FeeConfigDto>) {
+            costData = data
+        }
+
+        override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): ChildViewHolder {
+            val view = LayoutInflater.from(parent?.context).inflate(R.layout.item_cost_detail, parent, false)
+            val viewHolder = ChildViewHolder(view)
+
+            return viewHolder
+        }
+
+        override fun onBindViewHolder(holder: ChildViewHolder?, position: Int) {
+            holder?.costName?.text = costData.get(position).feeName
+            holder?.costValue?.text = "¥" + costData.get(position).feeValue
+            holder?.costId?.text = costData.get(position).feeKeyCode
+            holder?.costUnit?.text = costData.get(position).feeUnit
+        }
+
+        override fun getItemCount(): Int {
+            return costData.size
+        }
+
+        class ChildViewHolder : RecyclerView.ViewHolder {
+            var costName : TextView
+            var costValue : TextView
+            var costId : TextView
+            var costUnit : TextView
+
+            constructor(item : View) : super(item) {
+                costName = item.findViewById(R.id.tv_item_cost_name)
+                costValue = item.findViewById(R.id.tv_item_cost_value)
+                costId = item.findViewById(R.id.tv_item_cost_id)
+                costUnit = item.findViewById(R.id.tv_item_cost_unit)
+            }
+        }
+    }
+}

+ 100 - 0
nursehome/src/main/java/com/wdkl/ncs/android/component/nursehome/adapter/ExamAdapter.kt

@@ -0,0 +1,100 @@
+package com.wdkl.ncs.android.component.nursehome.adapter
+
+import android.content.Context
+import android.support.v7.widget.LinearLayoutManager
+import android.support.v7.widget.RecyclerView
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.TextView
+import com.wdkl.ncs.android.component.nursehome.R
+import com.wdkl.ncs.android.component.nursehome.util.TimeTransition
+import com.wdkl.ncs.android.middleware.model.dto.ExaminationConfigByGroupNameDto
+import com.wdkl.ncs.android.middleware.model.dto.ExaminationConfigDto
+
+class ExamAdapter :RecyclerView.Adapter<ExamAdapter.ParentViewHolder>{
+
+    private var context: Context
+    private var data: ArrayList<ExaminationConfigByGroupNameDto>
+
+    constructor(context: Context, data: ArrayList<ExaminationConfigByGroupNameDto>) {
+        this.context = context
+        this.data = data
+    }
+
+    override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): ParentViewHolder {
+        val view = LayoutInflater.from(parent?.context).inflate(R.layout.item_exam_main_view, parent, false)
+        val viewHolder = ParentViewHolder(view)
+
+        return viewHolder
+    }
+
+    override fun onBindViewHolder(holder: ParentViewHolder?, position: Int) {
+        holder?.examGroupName?.text = this.data.get(position).examinationGroupName
+
+        val layoutManager = LinearLayoutManager(context)
+        holder?.examDetail?.layoutManager = layoutManager
+        holder?.examDetail?.adapter = ExamDetailAdapter(this.data.get(position).examinationConfigList)
+    }
+
+    override fun getItemCount(): Int {
+        return this.data.size
+    }
+
+    fun updateData(data: ArrayList<ExaminationConfigByGroupNameDto>) {
+        this.data = data
+        notifyDataSetChanged()
+    }
+
+    class ParentViewHolder : RecyclerView.ViewHolder {
+        var examGroupName : TextView
+        var examDetail : RecyclerView
+
+        constructor(itemView: View): super(itemView) {
+            examGroupName = itemView.findViewById(R.id.tv_exam_group_name)
+            examDetail = itemView.findViewById(R.id.rv_exam_detail)
+        }
+    }
+
+
+    //子项
+    class ExamDetailAdapter : RecyclerView.Adapter<ExamDetailAdapter.ChildViewHolder> {
+        private var examData: List<ExaminationConfigDto>
+
+        constructor(data: List<ExaminationConfigDto>) {
+            examData = data
+        }
+
+        override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): ChildViewHolder {
+            val view = LayoutInflater.from(parent?.context).inflate(R.layout.item_exam_detail, parent, false)
+            val viewHolder = ChildViewHolder(view)
+
+            return viewHolder
+        }
+
+        override fun onBindViewHolder(holder: ChildViewHolder?, position: Int) {
+            holder?.examName?.text = examData.get(position).examinationName
+            holder?.examValue?.text = examData.get(position).examinationValue
+            holder?.examDesc?.text = "描述: " + examData.get(position).examinationDescription
+            holder?.examTime?.text = "检验时间: " + TimeTransition.stampToDateTime(examData.get(position).examinationTime * 1000)
+        }
+
+        override fun getItemCount(): Int {
+            return examData.size
+        }
+
+        class ChildViewHolder : RecyclerView.ViewHolder {
+            var examName : TextView
+            var examValue : TextView
+            var examDesc : TextView
+            var examTime : TextView
+
+            constructor(item : View) : super(item) {
+                examName = item.findViewById(R.id.tv_item_exam_name)
+                examValue = item.findViewById(R.id.tv_item_exam_value)
+                examDesc = item.findViewById(R.id.tv_item_exam_desc)
+                examTime = item.findViewById(R.id.tv_item_exam_time)
+            }
+        }
+    }
+}

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

@@ -86,12 +86,12 @@ class FrameBedVosConfinementAdapter(val data: ArrayList<FrameBedVO>) : BaseDeleg
             } else {
                 binding.patientAgeTv.text = "--"
             }
-            binding.tvNurseName.text = itemData.nurseConfigName
+            binding.tvNurseConfigName.text = itemData.nurseConfigName
             if (!TextUtils.isEmpty(itemData.nurseColorRgb)) {
-                binding.tvNurseColor.visibility = View.VISIBLE
-                binding.tvNurseColor.setBackgroundColor(Color.parseColor("#" + itemData.nurseColorRgb))
+                binding.tvNurseConfigColor.visibility = View.VISIBLE
+                binding.tvNurseConfigColor.setBackgroundColor(Color.parseColor("#" + itemData.nurseColorRgb))
             } else {
-                binding.tvNurseColor.visibility = View.INVISIBLE
+                binding.tvNurseConfigColor.visibility = View.INVISIBLE
             }
             if (itemData.customerSex != null) {
                 if (itemData.customerSex == 1) {

+ 99 - 20
nursehome/src/main/java/com/wdkl/ncs/android/component/nursehome/fragment/FramePartFragment.kt

@@ -2,6 +2,8 @@ package com.wdkl.ncs.android.component.nursehome.fragment
 
 import android.graphics.Color
 import android.hardware.Camera
+import android.support.v7.widget.LinearLayoutManager
+import android.text.method.ScrollingMovementMethod
 import android.util.Log
 import android.view.View
 import com.alibaba.android.vlayout.DelegateAdapter
@@ -12,9 +14,7 @@ import com.scwang.smartrefresh.layout.footer.ClassicsFooter
 import com.wdkl.core.voip.CallSingleActivity
 import com.wdkl.ncs.android.component.nursehome.R
 import com.wdkl.ncs.android.component.nursehome.activity.NurseHomeActivity
-import com.wdkl.ncs.android.component.nursehome.adapter.FrameBedVosAdapter
-import com.wdkl.ncs.android.component.nursehome.adapter.FrameBedVosConfinementAdapter
-import com.wdkl.ncs.android.component.nursehome.adapter.FramePartItemAdapter
+import com.wdkl.ncs.android.component.nursehome.adapter.*
 import com.wdkl.ncs.android.component.nursehome.common.Constants
 import com.wdkl.ncs.android.component.nursehome.databinding.FragmentFramePartBinding
 import com.wdkl.ncs.android.component.nursehome.launch.NurseHomeLaunch
@@ -27,10 +27,9 @@ import com.wdkl.ncs.android.lib.utils.showMessage
 import com.wdkl.ncs.android.lib.vo.filter
 import com.wdkl.ncs.android.middleware.logic.contract.nursehome.FramePartContract
 import com.wdkl.ncs.android.middleware.logic.presenter.nursehome.FramePartPresenter
-import com.wdkl.ncs.android.middleware.model.vo.FrameBedVO
-import com.wdkl.ncs.android.middleware.model.vo.FramePartVO
-import com.wdkl.ncs.android.middleware.model.vo.FrameRoomVO
-import com.wdkl.ncs.android.middleware.model.vo.InteractionVO
+import com.wdkl.ncs.android.middleware.model.dto.ExaminationConfigByGroupNameDto
+import com.wdkl.ncs.android.middleware.model.dto.FeeConfigByGroupNameDto
+import com.wdkl.ncs.android.middleware.model.vo.*
 import com.wdkl.ncs.android.middleware.tcp.channel.VoiceUtil
 import com.wdkl.ncs.android.middleware.tcp.dto.TcpModel
 import com.wdkl.ncs.android.middleware.tcp.enums.TcpAction
@@ -45,14 +44,18 @@ import org.greenrobot.eventbus.ThreadMode
  * 首页病房病床Fragment
  */
 class FramePartFragment: BaseFragment<FramePartPresenter, FragmentFramePartBinding>(), FramePartContract.View {
-     var TAG = FramePartFragment::class.java.getSimpleName()
+    var TAG = FramePartFragment::class.java.getSimpleName()
 
-//    private val adapter = FramePartItemAdapter(FramePartFragment,ArrayList())
-    private val frameBedVosAdapter = FrameBedVosAdapter(ArrayList())
+    //private val adapter = FramePartItemAdapter(FramePartFragment,ArrayList())
+    //private val frameBedVosAdapter = FrameBedVosAdapter(ArrayList())
 
     private var adapter: FrameBedVosConfinementAdapter? = null
 
-    var fragment = FrameBedVO()
+    private var feeAdapter: CostItemAdapter? = null
+
+    private var examAdapter: ExamAdapter? = null
+
+    var frame = FrameBedVO()
 
     /**
      * @Name  virtualLayoutManager
@@ -114,6 +117,22 @@ class FramePartFragment: BaseFragment<FramePartPresenter, FragmentFramePartBindi
         listView.layoutManager = virtualLayoutManager
         listView.adapter = delegateAdapter
 
+        //滚动显示
+        tv_advice_info.movementMethod = ScrollingMovementMethod.getInstance()
+        tv_illness_info.movementMethod = ScrollingMovementMethod.getInstance()
+
+        //费用
+        feeAdapter = CostItemAdapter(activity, ArrayList())
+        val layoutManager = LinearLayoutManager(this.activity)
+        rv_fee_config.layoutManager = layoutManager
+        rv_fee_config.adapter = feeAdapter
+
+        //检验
+        examAdapter = ExamAdapter(activity, ArrayList())
+        val layoutManager2 = VirtualLayoutManager(this.activity)
+        rv_exam_config.layoutManager = layoutManager2
+        rv_exam_config.adapter = examAdapter
+
         presenter.loadData(Constants.part_id)
 
     }
@@ -125,11 +144,12 @@ class FramePartFragment: BaseFragment<FramePartPresenter, FragmentFramePartBindi
      */
     override fun bindEvent() {
         adapter?.setOnItemClickListener { data, position ->
-            fragment = data
+            frame = data
+            basic_radio.isChecked = true
+
             if (data.customerName != null) {
                 name_tv.text = data.customerName
-                age_tv.text = "" + data.customerAge
-                //roomNumber.text = data.frameBed.name + "床"
+                age_tv.text = "" + data.customerAge + data.customerAgeUnit
                 roomNumber.text = data.frameBed.fullName
                 if (data.customerSex != null) {
                     if (data.customerSex == 1) {
@@ -143,24 +163,37 @@ class FramePartFragment: BaseFragment<FramePartPresenter, FragmentFramePartBindi
                     gender_imagev.visibility = View.GONE
                     head_portrait_imagev.setImageResource(R.drawable.kong_chuang)
                 }
-                time_tv.text = TimeTransition().stampToDate(data.frameBed.createTime * 1000)
+                time_tv.text = TimeTransition.stampToDate(data.frameBed.createTime * 1000)
 
             } else {
                 name_tv.text = "空床位"
                 age_tv.text = "无"
-                roomNumber.text = "无"
+                roomNumber.text = data.frameBed.fullName
                 gender_imagev.visibility = View.GONE
                 time_tv.text = "无"
                 mobile_tv.text = "无"
                 head_portrait_imagev.setImageResource(R.drawable.kong_chuang)
             }
 
+            //默认
+            tv_doctor_name.text = "无"
+            tv_nurse_name.text = "无"
+            tv_nurse_config.text = "无"
+            tv_advice_info.text = "无"
+            tv_illness_info.text = "无"
+            feeAdapter?.updateData(ArrayList())
+            examAdapter?.updateData(ArrayList())
+
+            //加载对应床位人员数据
+            if (data.customerId != null) {
+                presenter.loadCustomerInfo(data.customerId)
+            }
         }
 
         call_the_voice_tv.setOnClickListener {
             //语音呼叫
-            if (fragment.customerName != null) {
-                VoiceUtil.startAudioCall(Integer.parseInt(Constants.ids), fragment.bedDeviceId)
+            if (frame.customerName != null) {
+                VoiceUtil.startAudioCall(Integer.parseInt(Constants.ids), frame.bedDeviceId)
                 Constants.call_type = 0
             } else {
                 showMessage("床位未入住,无法通话")
@@ -171,19 +204,65 @@ class FramePartFragment: BaseFragment<FramePartPresenter, FragmentFramePartBindi
             call_the_video_tv.isEnabled = false
             call_the_video_tv.setTextColor(Color.parseColor("#e8e8e8"))
         }
+
         call_the_video_tv.setOnClickListener {
             //视频呼叫
-            if (fragment.customerName != null) {
-                VoiceUtil.startAudioCall(Integer.parseInt(Constants.ids), fragment.bedDeviceId)
+            if (frame.customerName != null) {
+                VoiceUtil.startAudioCall(Integer.parseInt(Constants.ids), frame.bedDeviceId)
                 Constants.call_type = 1
             } else {
                 showMessage("床位未入住,无法通话")
             }
         }
 
+        group_custom_info.setOnCheckedChangeListener { group, checkedId ->
+            if (checkedId == R.id.basic_radio) {
+                rl_basic_info.visibility = View.VISIBLE
+                ll_fee_config.visibility = View.GONE
+                ll_exam_config.visibility = View.GONE
+            } else if (checkedId == R.id.fee_radio) {
+                rl_basic_info.visibility = View.GONE
+                ll_fee_config.visibility = View.VISIBLE
+                ll_exam_config.visibility = View.GONE
+            } else if (checkedId == R.id.exam_radio) {
+                rl_basic_info.visibility = View.GONE
+                ll_fee_config.visibility = View.GONE
+                ll_exam_config.visibility = View.VISIBLE
+            }
+        }
+
         configRefresh()
     }
 
+    override fun showCustomerInfo(data: CustomerInfoVO) {
+        //基本信息
+        tv_doctor_name.text = data.doctorName
+        tv_nurse_name.text = data.nurseName
+        var nurseConfigs = ""
+        if (data.list != null) {
+            for (e in data.list) {
+                nurseConfigs = nurseConfigs + e.nurseOptionAndConfigName + "\n"
+            }
+        }
+        tv_nurse_config.text = nurseConfigs
+        tv_advice_info.text = data.advice
+        tv_illness_info.text = data.illnessDesc
+
+        //费用信息
+        if (data.feeConfigByGroupNameList != null) {
+            var feeList = ArrayList<FeeConfigByGroupNameDto>()
+            feeList.addAll(data.feeConfigByGroupNameList)
+            feeAdapter?.updateData(feeList)
+        }
+
+        //检验信息
+        if (data.examinationConfigByGroupNameList != null) {
+            var examList = ArrayList<ExaminationConfigByGroupNameDto>()
+            examList.addAll(data.examinationConfigByGroupNameList)
+            examAdapter?.updateData(examList)
+        }
+    }
+
     fun isCameraSupport() : Boolean {
         val num = Camera.getNumberOfCameras()
         if (num > 0) {

+ 1 - 1
nursehome/src/main/java/com/wdkl/ncs/android/component/nursehome/util/TimeTransition.kt

@@ -5,7 +5,7 @@ import java.text.SimpleDateFormat
 import java.util.*
 
 
-class TimeTransition {
+object TimeTransition {
 
     fun stampToDate(s:Long):String{
 //        return TimeStampToTime(s,"yyyy-MM-dd HH:mm:ss")

+ 2 - 2
nursehome/src/main/res/drawable/selt_call_records_icon.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
-<item  android:drawable="@drawable/xia_hua_xian_wei_xuan_zhog" android:state_checked="false" />
-<item android:drawable="@drawable/xia_hua_xian" android:state_checked="true" />
+    <item  android:drawable="@drawable/xia_hua_xian_wei_xuan_zhog" android:state_checked="false" />
+    <item android:drawable="@color/main_color" android:state_checked="true" />
 </selector>

+ 5 - 0
nursehome/src/main/res/drawable/selt_call_records_text.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:color="@color/main_color" android:state_checked="true"/>
+    <item android:color="@color/text_name_color"/>
+</selector>

+ 2 - 2
nursehome/src/main/res/layout/adapter_hospital_frame_part.xml

@@ -13,7 +13,7 @@
             android:layout_height="16dp"
             android:layout_alignParentBottom="true">
             <TextView
-                android:id="@+id/tv_nurse_name"
+                android:id="@+id/tv_nurse_config_name"
                 android:layout_width="0dp"
                 android:layout_height="match_parent"
                 android:layout_weight="2"
@@ -22,7 +22,7 @@
                 android:textSize="16px"/>
 
             <TextView
-                android:id="@+id/tv_nurse_color"
+                android:id="@+id/tv_nurse_config_color"
                 android:layout_width="0dp"
                 android:layout_height="match_parent"
                 android:layout_weight="1"

+ 6 - 6
nursehome/src/main/res/layout/fragment_call_records.xml

@@ -31,10 +31,10 @@
                     android:textSize="14px" />
                 <ImageView
                     android:id="@+id/no_answer_calls_imagev"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
+                    android:layout_width="12dp"
+                    android:layout_height="4dp"
                     android:layout_marginTop="2px"
-                    android:src="@drawable/xia_hua_xian"/>
+                    android:src="@color/main_color"/>
 
             </LinearLayout>
 
@@ -54,11 +54,11 @@
                     android:textSize="14px" />
                 <ImageView
                     android:id="@+id/call_records_imagev"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
+                    android:layout_width="12dp"
+                    android:layout_height="4dp"
                     android:layout_marginTop="2px"
                     android:visibility="gone"
-                    android:src="@drawable/xia_hua_xian"/>
+                    android:src="@color/main_color"/>
 
             </LinearLayout>
 

+ 39 - 0
nursehome/src/main/res/layout/item_cost_detail.xml

@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:layout_marginTop="10dp">
+
+    <TextView
+        android:id="@+id/tv_item_cost_name"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:textSize="12sp"
+        android:textColor="@color/black"/>
+    <TextView
+        android:id="@+id/tv_item_cost_value"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentRight="true"
+        android:textSize="12sp"
+        android:textColor="@color/black"/>
+    <TextView
+        android:id="@+id/tv_item_cost_id"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_below="@id/tv_item_cost_name"
+        android:layout_marginTop="4dp"
+        android:textSize="12sp"
+        android:textColor="#A4A4A4"/>
+    <TextView
+        android:id="@+id/tv_item_cost_unit"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentRight="true"
+        android:layout_below="@id/tv_item_cost_value"
+        android:layout_marginTop="4dp"
+        android:textSize="12sp"
+        android:textColor="#A4A4A4"/>
+
+</RelativeLayout>

+ 38 - 0
nursehome/src/main/res/layout/item_cost_main_view.xml

@@ -0,0 +1,38 @@
+<?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="wrap_content"
+    android:padding="6dp"
+    android:layout_marginBottom="6dp"
+    android:orientation="vertical"
+    android:background="@color/white">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content">
+        <TextView
+            android:id="@+id/tv_cost_group_name"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:text=""
+            android:textColor="@color/main_color"
+            android:textSize="14sp"/>
+        <TextView
+            android:id="@+id/tv_cost_group_total"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:gravity="right"
+            android:text=""
+            android:textColor="@color/main_color"
+            android:textSize="14sp"/>
+    </LinearLayout>
+
+    <android.support.v7.widget.RecyclerView
+        android:id="@+id/rv_cost_detail"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"/>
+
+</LinearLayout>

+ 38 - 0
nursehome/src/main/res/layout/item_exam_detail.xml

@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:layout_marginTop="10dp">
+
+    <TextView
+        android:id="@+id/tv_item_exam_name"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:textSize="12sp"
+        android:textColor="@color/black"/>
+    <TextView
+        android:id="@+id/tv_item_exam_value"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentRight="true"
+        android:textSize="12sp"
+        android:textColor="@color/black"/>
+    <TextView
+        android:id="@+id/tv_item_exam_desc"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_below="@id/tv_item_exam_name"
+        android:layout_marginTop="4dp"
+        android:textSize="12sp"
+        android:textColor="@color/black"/>
+    <TextView
+        android:id="@+id/tv_item_exam_time"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_below="@id/tv_item_exam_desc"
+        android:layout_marginTop="4dp"
+        android:textSize="12sp"
+        android:textColor="#A4A4A4"/>
+
+</RelativeLayout>

+ 29 - 0
nursehome/src/main/res/layout/item_exam_main_view.xml

@@ -0,0 +1,29 @@
+<?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="wrap_content"
+    android:padding="6dp"
+    android:layout_marginBottom="6dp"
+    android:orientation="vertical"
+    android:background="@color/white">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content">
+        <TextView
+            android:id="@+id/tv_exam_group_name"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:text=""
+            android:textColor="@color/main_color"
+            android:textSize="14sp"/>
+    </LinearLayout>
+
+    <android.support.v7.widget.RecyclerView
+        android:id="@+id/rv_exam_detail"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"/>
+
+</LinearLayout>

+ 194 - 34
nursehome/src/main/res/layout/right_basic_information.xml

@@ -11,10 +11,11 @@
             android:layout_width="match_parent"
             android:layout_height="46px"
             android:layout_alignParentBottom="true"
+            android:layout_marginRight="10px"
             android:gravity="center"
             android:orientation="horizontal"
             android:layout_marginBottom="6px"
-            android:background="#ffffff">
+            android:background="#F3F9FE">
 
             <TextView
                 android:id="@+id/call_the_voice_tv"
@@ -50,15 +51,15 @@
             android:layout_above="@id/call_the_voice_linlyout">
 
             <RadioGroup
+                android:id="@+id/group_custom_info"
                 android:layout_width="match_parent"
                 android:layout_height="40px"
                 android:layout_marginTop="10px"
                 android:background="#ffffff"
-                android:orientation="horizontal"
-                android:visibility="gone">
+                android:orientation="horizontal">
 
                 <RadioButton
-                    android:id="@+id/basic_information_radiob"
+                    android:id="@+id/basic_radio"
                     android:layout_width="0dp"
                     android:layout_height="match_parent"
                     android:layout_weight="1"
@@ -67,11 +68,12 @@
                     android:drawableBottom="@drawable/selt_call_records_icon"
                     android:drawablePadding="1px"
                     android:gravity="center"
+                    android:textColor="@drawable/selt_call_records_text"
                     android:text="基础信息"
                     android:textSize="14px" />
 
                 <RadioButton
-                    android:id="@+id/family_member_radiobw"
+                    android:id="@+id/fee_radio"
                     android:layout_width="0dp"
                     android:layout_height="match_parent"
                     android:layout_weight="1"
@@ -79,11 +81,12 @@
                     android:drawableBottom="@drawable/selt_call_records_icon"
                     android:drawablePadding="1px"
                     android:gravity="center"
-                    android:text="家庭成员"
+                    android:textColor="@drawable/selt_call_records_text"
+                    android:text="费用"
                     android:textSize="14px" />
 
                 <RadioButton
-                    android:id="@+id/interaction_radiobw"
+                    android:id="@+id/exam_radio"
                     android:layout_width="0dp"
                     android:layout_height="match_parent"
                     android:layout_weight="1"
@@ -91,15 +94,15 @@
                     android:drawableBottom="@drawable/selt_call_records_icon"
                     android:drawablePadding="1px"
                     android:gravity="center"
-                    android:text="交互"
+                    android:textColor="@drawable/selt_call_records_text"
+                    android:text="检验"
                     android:textSize="14px" />
-
-
             </RadioGroup>
 
             <RelativeLayout
+                android:id="@+id/rl_basic_info"
                 android:layout_width="match_parent"
-                android:layout_height="168px"
+                android:layout_height="match_parent"
                 android:layout_marginTop="6px"
                 android:background="#ffffff">
 
@@ -126,16 +129,8 @@
                         android:layout_height="wrap_content"
                         android:layout_marginLeft="8px"
                         android:text="---"
-                        android:textSize="16px" />
-
-                    <TextView
-                        android:id="@+id/age_tv"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:layout_marginLeft="8px"
-                        android:layout_toRightOf="@+id/name_tv"
-                        android:textColor="#B4B4B4"
-                        android:textSize="12px" />
+                        android:textSize="16px"
+                        android:textColor="#0D0D0D"/>
 
                     <TextView
                         android:id="@+id/roomNumber"
@@ -143,7 +138,7 @@
                         android:layout_height="wrap_content"
                         android:layout_alignParentRight="true"
                         android:text="--"
-                        android:textColor="#F78B8F"
+                        android:textColor="#2F9DF1"
                         android:textSize="16px" />
 
                 </RelativeLayout>
@@ -163,15 +158,14 @@
                         android:layout_gravity="center_vertical" />
 
                     <TextView
-                        android:id="@+id/baby_name_tv"
+                        android:id="@+id/age_tv"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
                         android:layout_marginLeft="8px"
-                        android:layout_toRightOf="@+id/name_tv"
                         android:text="--"
                         android:textColor="#B4B4B4"
-                        android:textSize="12px"
-                        android:visibility="invisible"/>
+                        android:textSize="12px" />
+
                 </LinearLayout>
 
                 <RelativeLayout
@@ -187,7 +181,8 @@
                         android:layout_height="wrap_content"
                         android:layout_marginLeft="8px"
                         android:text="入住日期:"
-                        android:textSize="14px" />
+                        android:textSize="14px"
+                        android:textColor="#0D0D0D"/>
 
                     <TextView
                         android:id="@+id/time_tv"
@@ -202,19 +197,21 @@
                 </RelativeLayout>
 
                 <RelativeLayout
+                    android:id="@+id/phone_relalyout"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:gravity="center_vertical"
                     android:layout_marginRight="10px"
                     android:layout_below="@+id/time_relalyout"
-                    android:layout_marginTop="14px">
+                    android:layout_marginTop="8dp">
 
                     <TextView
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
                         android:layout_marginLeft="8px"
                         android:text="手机号:"
-                        android:textSize="14px" />
+                        android:textSize="14px"
+                        android:textColor="#0D0D0D"/>
 
                     <ImageView
                         android:layout_width="wrap_content"
@@ -230,22 +227,185 @@
                         android:layout_height="wrap_content"
                         android:layout_alignParentRight="true"
                         android:layout_marginLeft="8px"
-                        android:text="暂无"
+                        android:text="无"
+                        android:textColor="#B4B4B4"
+                        android:textSize="14px" />
+
+                </RelativeLayout>
+
+                <RelativeLayout
+                    android:id="@+id/doctor_duty_relalyout"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginRight="10px"
+                    android:layout_below="@+id/phone_relalyout"
+                    android:layout_marginTop="8dp">
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="8px"
+                        android:text="责任医生:"
+                        android:textSize="14px"
+                        android:textColor="#0D0D0D"/>
+
+                    <TextView
+                        android:id="@+id/tv_doctor_name"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_alignParentRight="true"
+                        android:layout_marginLeft="8px"
+                        android:text="----"
                         android:textColor="#B4B4B4"
                         android:textSize="14px" />
 
+                </RelativeLayout>
+
+                <RelativeLayout
+                    android:id="@+id/nurse_duty_relalyout"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginRight="10px"
+                    android:layout_below="@+id/doctor_duty_relalyout"
+                    android:layout_marginTop="8dp">
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="8px"
+                        android:text="责任护士:"
+                        android:textSize="14px"
+                        android:textColor="#0D0D0D"/>
+
+                    <TextView
+                        android:id="@+id/tv_nurse_name"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_alignParentRight="true"
+                        android:layout_marginLeft="8px"
+                        android:text="----"
+                        android:textColor="#B4B4B4"
+                        android:textSize="14px" />
+
+                </RelativeLayout>
+
+                <RelativeLayout
+                    android:id="@+id/nurse_config_relalyout"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginRight="10px"
+                    android:layout_below="@+id/nurse_duty_relalyout"
+                    android:layout_marginTop="8dp">
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="8px"
+                        android:text="护理项:"
+                        android:textSize="14px"
+                        android:textColor="#0D0D0D"/>
+
+                    <TextView
+                        android:id="@+id/tv_nurse_config"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_alignParentRight="true"
+                        android:layout_marginLeft="8px"
+                        android:text="----"
+                        android:textColor="#B4B4B4"
+                        android:textSize="14px" />
 
                 </RelativeLayout>
 
+                <LinearLayout
+                    android:id="@+id/advice_layout"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginRight="10px"
+                    android:layout_below="@+id/nurse_config_relalyout"
+                    android:layout_marginTop="8dp"
+                    android:paddingTop="4dp"
+                    android:background="#F3F9FE"
+                    android:orientation="vertical">
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="8px"
+                        android:text="医嘱:"
+                        android:textSize="14px"
+                        android:textColor="#0D0D0D"/>
+
+                    <TextView
+                        android:id="@+id/tv_advice_info"
+                        android:layout_width="match_parent"
+                        android:layout_height="60dp"
+                        android:layout_marginLeft="8px"
+                        android:scrollbars="vertical"
+                        android:fadeScrollbars="true"
+                        android:text="----"
+                        android:textColor="#B4B4B4"
+                        android:textSize="14px" />
+
+                </LinearLayout>
+
+                <LinearLayout
+                    android:id="@+id/illness_layout"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginRight="10px"
+                    android:layout_below="@+id/advice_layout"
+                    android:layout_marginTop="8dp"
+                    android:paddingTop="4dp"
+                    android:background="#F3F9FE"
+                    android:orientation="vertical">
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="8px"
+                        android:text="病情描述:"
+                        android:textSize="14px"
+                        android:textColor="#0D0D0D"/>
+
+                    <TextView
+                        android:id="@+id/tv_illness_info"
+                        android:layout_width="match_parent"
+                        android:layout_height="60dp"
+                        android:layout_marginLeft="8px"
+                        android:scrollbars="vertical"
+                        android:fadeScrollbars="true"
+                        android:text="----"
+                        android:textColor="#B4B4B4"
+                        android:textSize="14px" />
+
+                </LinearLayout>
             </RelativeLayout>
 
-            <android.support.v7.widget.RecyclerView
-                android:id="@+id/right_remark_recyv"
+            <LinearLayout
+                android:id="@+id/ll_fee_config"
                 android:layout_width="match_parent"
                 android:layout_height="match_parent"
-                android:background="#EAF2F9">
+                android:visibility="gone">
 
-            </android.support.v7.widget.RecyclerView>
+                <android.support.v7.widget.RecyclerView
+                    android:id="@+id/rv_fee_config"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent" />
+            </LinearLayout>
+
+
+            <LinearLayout
+                android:id="@+id/ll_exam_config"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:visibility="gone">
+
+                <android.support.v7.widget.RecyclerView
+                    android:id="@+id/rv_exam_config"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent" />
+            </LinearLayout>
 
         </LinearLayout>