diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1bdbaa7..5d2c56f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -319,6 +319,10 @@ android:launchMode="singleTop" android:screenOrientation="portrait"/> + + diff --git a/app/src/main/java/com/zj365/dc/activity/DietManagementAct.kt b/app/src/main/java/com/zj365/dc/activity/DietManagementAct.kt index d7add37..6019f36 100644 --- a/app/src/main/java/com/zj365/dc/activity/DietManagementAct.kt +++ b/app/src/main/java/com/zj365/dc/activity/DietManagementAct.kt @@ -43,8 +43,8 @@ class DietManagementAct : BaseVmAct(){ R.id.rx_healthy_diet ->{ bundle.clear() - bundle.putString("web_site_url","http://testbuilt.zhongjian365.com/ ") -// bundle.putString("web_site_url","${BuildConfig.h5url}pages/index/index?pageId=cookbook") +// bundle.putString("web_site_url","http://testbuilt.zhongjian365.com/ ") + bundle.putString("web_site_url","${BuildConfig.h5url}pages/index/index?pageId=cookbook") RouteManager.goAct(ARouterUrl.H5_ACT,bundle) // var url = "${BuildConfig.}" diff --git a/app/src/main/java/com/zj365/dc/activity/LoginAct.kt b/app/src/main/java/com/zj365/dc/activity/LoginAct.kt index 44c0051..46743af 100644 --- a/app/src/main/java/com/zj365/dc/activity/LoginAct.kt +++ b/app/src/main/java/com/zj365/dc/activity/LoginAct.kt @@ -50,7 +50,9 @@ class LoginAct : BaseVmAct() { DialogTipNew(this,"温馨提示", "恭喜您成为中健三六五大家庭的医院,为了提供更好的信息服务,请完善您的基本信息。", "前往","取消",false,{ RouteManager.goAct(ARouterUrl.BASE_INFO_CHANGE) - }){ + EventBus.getDefault().post(LoginOrRegisterEvent()) + finish() + }){ EventBus.getDefault().post(LoginOrRegisterEvent()) finish() } @@ -282,6 +284,7 @@ class LoginAct : BaseVmAct() { mViewModel.mLogin.observe(this) { loadingView.dismiss() if (it.data.isPerfect == 0){ + dialogBind.setContentNew("恭喜您成为中健三六五大家庭的医院,为了提供更好的信息服务,请完善您的基本信息。") dialogBind.show() }else{ EventBus.getDefault().post(LoginOrRegisterEvent()) diff --git a/app/src/main/java/com/zj365/dc/activity/MainActivity.kt b/app/src/main/java/com/zj365/dc/activity/MainActivity.kt index 4a1f503..072a3aa 100644 --- a/app/src/main/java/com/zj365/dc/activity/MainActivity.kt +++ b/app/src/main/java/com/zj365/dc/activity/MainActivity.kt @@ -96,7 +96,7 @@ class MainActivity : BaseVmAct(), Consumer { } val dialogInvite by lazy { - DialogTipNew(this, "监护邀请","138****3415用户邀请您成为 监护人", "确认","取消",false,{ + DialogTipNew(this, "监护邀请","", "确认","取消",false,{ inviteCustodyBean?.let { mViewModel.confirmInvite(it.id,"1") } diff --git a/app/src/main/java/com/zj365/dc/fragment/DynamicManagementFrag.kt b/app/src/main/java/com/zj365/dc/fragment/DynamicManagementFrag.kt index 9557e38..0b0d38f 100644 --- a/app/src/main/java/com/zj365/dc/fragment/DynamicManagementFrag.kt +++ b/app/src/main/java/com/zj365/dc/fragment/DynamicManagementFrag.kt @@ -166,7 +166,11 @@ class DynamicManagementFrag : BaseVmFrag() , EasyPermission isShrinkage = MMkvHelper.getBoolean(Const.Health_Monitoring_Shrinkage + MMkvHelper.getLong(Const.USER_ID)) - + showIdInfo =if (MMkvHelper.getLong(Const.USER_ID).toString() == "0") { + "" + } else { + MMkvHelper.getLong(Const.USER_ID).toString() + } //家人信息绑定 initFamilyAdapter() @@ -372,6 +376,8 @@ class DynamicManagementFrag : BaseVmFrag() , EasyPermission } //设备连接 R.id.mHealthRecords -> { + + CommonToastUtils.showToast("敬请期待") /*val btnStr = binding.mHeader.mWearManager.text if (btnStr == "佩戴管理") { if (MMkvHelper.getInt(Const.Watch_Device_Type) == Const.Companion.WatchDevice.LightA3.ordinal) {//4G手表 @@ -917,7 +923,10 @@ class DynamicManagementFrag : BaseVmFrag() , EasyPermission bean.bmiInfo?.let { binding.mHeader.mBMI.text = "BMI ${it.bmi}" binding.mHeader.mBMIStatus.text = "${it.levelName}" - } + }?:{ + binding.mHeader.mBMI.text = "BMI --" + binding.mHeader.mBMIStatus.text = "--" + } binding.mHeader.tvWarningNum.text ="预警次数:${if (bean.warningCount == 0) "--" else bean.warningCount}次" @@ -954,6 +963,7 @@ class DynamicManagementFrag : BaseVmFrag() , EasyPermission //设置健康监测按钮列表数据 healthMonitoringList.clear() healthMonitoringListExceed.clear() + mHealthAdapter.mainBean.clear() val healthMonitoringListData = mViewModel.setHealthMonitoringListData( requireContext(), bean diff --git a/app/src/main/java/com/zj365/dc/fragment/MineFrag.kt b/app/src/main/java/com/zj365/dc/fragment/MineFrag.kt index db550de..136b305 100644 --- a/app/src/main/java/com/zj365/dc/fragment/MineFrag.kt +++ b/app/src/main/java/com/zj365/dc/fragment/MineFrag.kt @@ -53,8 +53,8 @@ class MineFrag : BaseVmFrag(),EasyPermissions.PermissionCallbacks { private val defaultIcon by lazy { arrayOf( - R.mipmap.ic_default_man, - R.mipmap.ic_default_women + R.mipmap.icon_default_avator, + R.mipmap.icon_default_avator ) } var user: SettingBean.User? = null diff --git a/app/src/main/java/com/zj365/dc/vm/DynamicManagementVm.kt b/app/src/main/java/com/zj365/dc/vm/DynamicManagementVm.kt index b1859ee..9cd5caa 100644 --- a/app/src/main/java/com/zj365/dc/vm/DynamicManagementVm.kt +++ b/app/src/main/java/com/zj365/dc/vm/DynamicManagementVm.kt @@ -282,7 +282,8 @@ class DynamicManagementVm : BaseVm() { contentXL, R.mipmap.bg_xl, R.mipmap.ic_xl, - 0 + 0, + calorie = hrData.count ) ) @@ -304,7 +305,8 @@ class DynamicManagementVm : BaseVm() { contentXY, R.mipmap.bg_oo, R.mipmap.ic_oo, - 1 + 1, + calorie = soData.count ) ) @@ -327,7 +329,8 @@ class DynamicManagementVm : BaseVm() { contentHXL, R.mipmap.bg_breath, R.mipmap.ic_h_breath, - 2 + 2, + calorie = respiratoryData.count ) ) @@ -350,7 +353,8 @@ class DynamicManagementVm : BaseVm() { contentTW, R.mipmap.bg_temp, R.mipmap.ic_temp, - 3 + 3, + calorie = tempData.count ) ) @@ -417,7 +421,8 @@ class DynamicManagementVm : BaseVm() { contentSM, R.mipmap.bg_h_sleep, R.mipmap.ic_h_sleep, - 5 + 5, + calorie = sleepData.count ) ) @@ -443,7 +448,8 @@ class DynamicManagementVm : BaseVm() { contentXYa, R.mipmap.bg_xya, R.mipmap.ic_xya, - 6 + 6, + calorie = dbpData.count ) ) @@ -522,7 +528,8 @@ class DynamicManagementVm : BaseVm() { contentXT, R.mipmap.bg_bloodsugar, R.mipmap.ic_bloodsugar, - 7 + 7, + calorie = bloodSugarData.count ) ) @@ -584,7 +591,7 @@ class DynamicManagementVm : BaseVm() { statusNS = 1 contentNS = "建模中" mTimeNS = if (uricAcidData.time.isNullOrEmpty()) { - "${RxTimeTool.getCurrentDateTime("yyyy-MM-dd HH")}:00" + "${milliseconds2String(uricAcidData.time)}:00" } else if (uricAcidData.time.contains("-")) { uricAcidData.time } else { @@ -624,7 +631,8 @@ class DynamicManagementVm : BaseVm() { R.mipmap.bg_niaosuan, R.mipmap.ic_niaosuan, 9, - sex = user.sex.toString() + sex = user.sex.toString(), + calorie = uricAcidData.count ) ) @@ -637,7 +645,8 @@ class DynamicManagementVm : BaseVm() { "敬请期待", R.mipmap.bg_fat, R.mipmap.ic_fat, - 10 + 10, + calorie = bean.healthCount.toString() ) ) /*var statusXZ = 0 diff --git a/base/src/main/java/com/xty/base/act/BaseVmAct.kt b/base/src/main/java/com/xty/base/act/BaseVmAct.kt index 4ff3a7c..8a8ab4a 100644 --- a/base/src/main/java/com/xty/base/act/BaseVmAct.kt +++ b/base/src/main/java/com/xty/base/act/BaseVmAct.kt @@ -11,7 +11,9 @@ import com.xty.common.MMkvHelper import com.xty.common.ReflexUtils import com.xty.common.arouter.ARouterUrl import com.xty.common.arouter.RouteManager +import com.xty.common.event.LoginOutEvent import com.xty.common.weight.LoadingView +import org.greenrobot.eventbus.EventBus abstract class BaseVmAct: IBaseAct() { @@ -30,6 +32,7 @@ abstract class BaseVmAct: IBaseAct() { mViewModel.nowData.observe(this){ loadingView.dismiss() MMkvHelper.clearUserInfo() + EventBus.getDefault().post(LoginOutEvent()) /*if(componentName.className!="LoginAct" ){ ToastUtils.show(R.string.again_login) RxActivityTool.finishAllActivity() diff --git a/base/src/main/java/com/xty/base/fragment/BaseVmFrag.kt b/base/src/main/java/com/xty/base/fragment/BaseVmFrag.kt index 417906c..1fe02ec 100644 --- a/base/src/main/java/com/xty/base/fragment/BaseVmFrag.kt +++ b/base/src/main/java/com/xty/base/fragment/BaseVmFrag.kt @@ -16,6 +16,8 @@ import com.xty.base.refresh.RefreshUtils import com.xty.common.MMkvHelper import com.xty.common.arouter.ARouterUrl import com.xty.common.arouter.RouteManager +import com.xty.common.event.LoginOutEvent +import org.greenrobot.eventbus.EventBus abstract class BaseVmFrag : IBaseFrag() { lateinit var mViewModel: T @@ -28,8 +30,10 @@ abstract class BaseVmFrag : IBaseFrag() { mViewModel.nowData.observe(this) { loadingView.dismiss() ToastUtils.show(R.string.again_login) + //RxActivityTool.finishAllActivity() MMkvHelper.clearUserInfo() + EventBus.getDefault().post(LoginOutEvent()) // RouteManager.goAct(ARouterUrl.LOGIN_ACT) } observer() diff --git a/common/src/main/java/com/xty/common/ExtendUtils.kt b/common/src/main/java/com/xty/common/ExtendUtils.kt index 1f63bed..e935174 100644 --- a/common/src/main/java/com/xty/common/ExtendUtils.kt +++ b/common/src/main/java/com/xty/common/ExtendUtils.kt @@ -51,9 +51,9 @@ fun ImageView.setImageUser(context: Context, string: String?) { Glide.with(context).load(string).placeholder( ContextCompat.getDrawable( context, - R.mipmap.ic_default_man + R.mipmap.icon_default_avator ) - ).error(R.mipmap.ic_default_man).into(this) + ).error(R.mipmap.icon_default_avator).into(this) } /** @@ -61,9 +61,9 @@ fun ImageView.setImageUser(context: Context, string: String?) { */ fun ImageView.setImageUser(context: Context, string: String?, sex: String) { val userHeadImg = if (sex == "1") { - R.mipmap.ic_default_man + R.mipmap.icon_default_avator } else { - R.mipmap.ic_default_women + R.mipmap.icon_default_avator } Glide.with(context).load(string).placeholder( ContextCompat.getDrawable( diff --git a/common/src/main/java/com/xty/common/TimeSelect.kt b/common/src/main/java/com/xty/common/TimeSelect.kt index d9a291c..30f35f4 100644 --- a/common/src/main/java/com/xty/common/TimeSelect.kt +++ b/common/src/main/java/com/xty/common/TimeSelect.kt @@ -359,10 +359,10 @@ class TimeSelect(var context: Context, var select: (String) -> Unit) { showSec ) )// 显示需要的时间 - .setOutSideCancelable(true)//点击屏幕,点在控件外部范围时,是否取消显示 + .setOutSideCancelable(false)//点击屏幕,点在控件外部范围时,是否取消显示 .isCyclic(false)//是否循环滚动 .setBgColor(Color.WHITE)//滚轮背景颜色 Night mode - .setLineSpacingMultiplier(2.0f) + .setLineSpacingMultiplier(3.0f) .setTextColorCenter(ContextCompat.getColor(context, R.color.col_313)) .setTextColorOut(ContextCompat.getColor(context, R.color.col_6B6)) .setDividerColor(ContextCompat.getColor(context, R.color.transparent)) diff --git a/common/src/main/java/com/xty/common/arouter/ARouterUrl.kt b/common/src/main/java/com/xty/common/arouter/ARouterUrl.kt index 93e1cac..ed19a76 100644 --- a/common/src/main/java/com/xty/common/arouter/ARouterUrl.kt +++ b/common/src/main/java/com/xty/common/arouter/ARouterUrl.kt @@ -122,8 +122,10 @@ class ARouterUrl { //AI 测肤 const val AI_SKIN_MEASUREMENT_ACTIVITY = "/health/com/zj365/health/act/skin/SkinMeasurementMainAct" + //家人健康 const val ADD_FAMILY_GUARDIAN_ACT = "/health/com/zj365/health/act/familyhealth/AddFamilyGuardianAct" const val FAMILY_HEALTH_ACT = "/health/com/zj365/health/act/familyhealth/FamilyHealthAct" + const val FAMILY_HEALTH_REAL_TIME_ACT = "/health/com/zj365/health/act/familyhealth/FamilyHealthRealTimeAct" //设备绑定相关 @@ -187,6 +189,7 @@ class ARouterUrl { const val TEMP_REMIND = "/mine/com/zj365/dc/mime/act/TempRemindAct" const val PERSON_INFO = "/mine/com/zj365/dc/mime/act/PersonInfoAct" const val INVITE_FRIENDS = "/mine/com/zj365/dc/mime/act/InviteFriendsAct" //邀请好友 + const val ENTERPRISE_INFO = "/mine/com/zj365/dc/mime/act/EnterpriseInformationAct" //企业资料 const val NOTICE_SETTING = "/mine/com/zj365/dc/mime/act/NoticeSettingAct" diff --git a/common/src/main/res/drawable/shape_ebf_0_5.xml b/common/src/main/res/drawable/shape_ebf_0_5.xml new file mode 100644 index 0000000..2394f53 --- /dev/null +++ b/common/src/main/res/drawable/shape_ebf_0_5.xml @@ -0,0 +1,10 @@ + + + + + + + + \ No newline at end of file diff --git a/common/src/main/res/layout/layout_customer_date_picker.xml b/common/src/main/res/layout/layout_customer_date_picker.xml index 8f1b0c2..ea9797c 100644 --- a/common/src/main/res/layout/layout_customer_date_picker.xml +++ b/common/src/main/res/layout/layout_customer_date_picker.xml @@ -1,10 +1,10 @@ () { + + val binding by lazy { ActFamilyHealthRealTimeBinding.inflate(layoutInflater) } + + val mAdapter by lazy { FamilyHealthRealTimeAdapter() } + override fun liveObserver() { + + } + + override fun initView() { + super.initView() + statusBar(binding.title.mView) + binding.title.mTvTitle.text ="实时详情" + binding.title.mIvBack.setOnClickListener { + finish() + } + initAdapter() + } + + fun initAdapter(){ + binding.recycler.layoutManager = LinearLayoutManager(this) + binding.recycler.adapter = mAdapter + var dividerItemDecoration = DividerItemDecoration(this, DividerItemDecoration.VERTICAL) + dividerItemDecoration.setDrawable(resources.getDrawable(R.drawable.shape_ebf_0_5)) + binding.recycler.addItemDecoration(dividerItemDecoration) + mAdapter.addChildClickViewIds(R.id.tv_real_time_mearsure) + + } + + override fun setLayout() = binding.root +} \ No newline at end of file diff --git a/health/src/main/java/com/zj365/health/adapter/FamilyHealth/FamilyHealthRealTimeAdapter.kt b/health/src/main/java/com/zj365/health/adapter/FamilyHealth/FamilyHealthRealTimeAdapter.kt new file mode 100644 index 0000000..f31e1cf --- /dev/null +++ b/health/src/main/java/com/zj365/health/adapter/FamilyHealth/FamilyHealthRealTimeAdapter.kt @@ -0,0 +1,11 @@ +package com.zj365.health.adapter.familyhealth + +import com.chad.library.adapter.base.viewholder.BaseViewHolder +import com.xty.base.adapter.BaseAdapter +import com.zj365.health.R + +class FamilyHealthRealTimeAdapter : BaseAdapter(R.layout.item_family_health_real_time) { + override fun convert(holder: BaseViewHolder, item: Any) { + + } +} \ No newline at end of file diff --git a/health/src/main/res/layout/act_family_health_real_time.xml b/health/src/main/res/layout/act_family_health_real_time.xml new file mode 100644 index 0000000..683a6c1 --- /dev/null +++ b/health/src/main/res/layout/act_family_health_real_time.xml @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/health/src/main/res/layout/act_medical_history.xml b/health/src/main/res/layout/act_medical_history.xml index 6d4bce1..227118e 100644 --- a/health/src/main/res/layout/act_medical_history.xml +++ b/health/src/main/res/layout/act_medical_history.xml @@ -26,7 +26,7 @@ android:layout_height="wrap_content" android:padding="@dimen/dp_10" android:text="@string/status_3" - android:textColor="@color/col_009" + android:textColor="@color/col_02c" android:textSize="@dimen/dp_16" /> @@ -93,7 +93,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="%" - android:textColor="@color/col_7CF" + android:textColor="@color/col_02c" android:textSize="@dimen/sp_13" android:textStyle="bold" /> @@ -416,7 +416,7 @@ android:drawableLeft="@drawable/shape_hint_bg" android:drawablePadding="@dimen/dp_4" android:gravity="center|right" - android:text="正常心率:50-100次/分" + android:text="正常血氧:95-100%" android:textColor="@color/col_c7c" android:textSize="@dimen/sp_12" android:textStyle="bold" /> diff --git a/health/src/main/res/layout/item_family_health_real_time.xml b/health/src/main/res/layout/item_family_health_real_time.xml new file mode 100644 index 0000000..130b9a1 --- /dev/null +++ b/health/src/main/res/layout/item_family_health_real_time.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/mine/src/main/java/com/zj365/mime/act/BaseInfoChangeAct.kt b/mine/src/main/java/com/zj365/mime/act/BaseInfoChangeAct.kt index 1df7a75..0a454f8 100644 --- a/mine/src/main/java/com/zj365/mime/act/BaseInfoChangeAct.kt +++ b/mine/src/main/java/com/zj365/mime/act/BaseInfoChangeAct.kt @@ -21,6 +21,7 @@ import com.xty.base.act.BaseVmAct import com.xty.base.weight.GpsToastDialog import com.xty.base.weight.TipDialog import com.xty.common.TimeSelect +import com.xty.common.TimeUtils import com.xty.common.aMapUtils.AmapInit import com.xty.common.arouter.ARouterUrl import com.xty.common.arouter.RouteManager @@ -265,8 +266,14 @@ class BaseInfoChangeAct : BaseVmAct() { provincey = it.province //表示省 district = it.district //区 binding.mArea.text = "${it.province ?: ""} ${it.city ?: ""} ${it.district ?: ""}" - binding.mHeight.setText(it.height.toString()) - binding.mWeight.setText(it.weight.toString()) + if (it.height > 0){ + binding.mHeight.setText("${it.height}") + } + if (it.weight > 0){ + binding.mWeight.setText(it.weight.toString()) + } + + binding.mAddress.setText(it.area) val str = StringBuilder() if (!it.historyName.isNullOrEmpty()) { @@ -342,6 +349,70 @@ class BaseInfoChangeAct : BaseVmAct() { binding.mImage.tag.toString() } val sexValue = if (binding.checkSex.isChecked) "2" else "1" + + if (name.isNullOrEmpty()) { + CommonToastUtils.showToast("请输入姓名") + return + } + if (height.isNullOrEmpty()) { + CommonToastUtils.showToast("请输入身高") + return + } + + if (height.toFloat() < 50 || height.toFloat() > 260) { + CommonToastUtils.showToast("请输入正确身高") + return + } + + if (wieght.isNullOrEmpty()) { + CommonToastUtils.showToast("请输入体重") + return + } + + if (wieght.toFloat() < 3 || wieght.toFloat() > 300) { + CommonToastUtils.showToast("请输入正确体重") + return + } + if (birthDay.isNullOrEmpty()) { + CommonToastUtils.showToast("请选择出生日期") + return + } + if (TimeUtils.getAgeByBirth(birthDay) < 14) { + CommonToastUtils.showToast("需要年满14岁才可使用") + return + } + if (city.isNullOrEmpty()) { + CommonToastUtils.showToast("请选择所属地区") + return + } + if (address.isNullOrEmpty()) { + CommonToastUtils.showToast("请输入详细住址") + return + } + if (medicIds.isNullOrEmpty()) { + CommonToastUtils.showToast("请选择病史") + return + } + + if (otherName.isNullOrEmpty()) { + CommonToastUtils.showToast("请输入紧急联系人姓名") + return + } + + if (otherPhone.isNullOrEmpty()) { + CommonToastUtils.showToast("请输入紧急联系人联系方式") + return + } + if (otherPhone == binding.mPhone.text.toString()) { + CommonToastUtils.showToast("紧急联系人电话不能与本人电话一致") + return + } + + if (rela.isNullOrEmpty()) { + CommonToastUtils.showToast("请输入关系") + return + } + mViewModel.submit( paht, name, diff --git a/mine/src/main/java/com/zj365/mime/act/DevInfoAct.kt b/mine/src/main/java/com/zj365/mime/act/DevInfoAct.kt index cf2fc3c..e2b683a 100644 --- a/mine/src/main/java/com/zj365/mime/act/DevInfoAct.kt +++ b/mine/src/main/java/com/zj365/mime/act/DevInfoAct.kt @@ -150,8 +150,8 @@ class DevInfoAct : BaseVmAct(),EasyPermissions.PermissionCallbacks { binding.mNickName.text = "设备名称:${it.data.watchName?:""}" binding.mNum.text = "设备编码:${it.data.bluetooth?:""}" - binding.mCode.text = "物联网卡:${it.data.deviceCode?:""}" - binding.mActiveCode.text = "流量到期:${it.data.activationTime?:""}" + binding.mCode.text = "物联网卡:${it.data.iccid?:""}" + binding.mActiveCode.text = "流量到期:${it.data.flowExpireTime?:""}" binding.mActiveCode.visibility = View.VISIBLE setDevicePic(it.data.deviceType, binding.ivDevice) diff --git a/mine/src/main/java/com/zj365/mime/act/EnterpriseInformationAct.kt b/mine/src/main/java/com/zj365/mime/act/EnterpriseInformationAct.kt new file mode 100644 index 0000000..2701918 --- /dev/null +++ b/mine/src/main/java/com/zj365/mime/act/EnterpriseInformationAct.kt @@ -0,0 +1,56 @@ +package com.zj365.mime.act + +import android.graphics.Rect +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import com.alibaba.android.arouter.facade.annotation.Route +import com.xty.base.act.BaseListAct +import com.xty.base.vm.BaseVm +import com.xty.common.SizeUtil +import com.xty.common.arouter.ARouterUrl +import com.zj365.mime.adapter.EnterpriseInformationAdapter +import com.zj365.mime.databinding.ActEnterpriseInformationBinding + +/** + * 企业资料 + */ +@Route(path = ARouterUrl.ENTERPRISE_INFO) +class EnterpriseInformationAct : BaseListAct() { + val binding by lazy { ActEnterpriseInformationBinding.inflate(layoutInflater) } + + val mAdapter by lazy { EnterpriseInformationAdapter() } + override fun initAdapter() { + binding.recyclerView.layoutManager = LinearLayoutManager(this) + binding.recyclerView.adapter = mAdapter + setRecycleRefresh(binding.recyclerView,binding.mRefresh,true) + /* binding.recyclerView.addItemDecoration(object : RecyclerView.ItemDecoration() { + override fun getItemOffsets(outRect: Rect, itemPosition: Int, parent: RecyclerView) { + super.getItemOffsets(outRect, itemPosition, parent) + if (itemPosition == 0){ + + }else{ + outRect.set(0, SizeUtil.dp2px(this@EnterpriseInformationAct,12f)) + } + } + })*/ + } + + override fun loadData() { + + } + + override fun initView() { + super.initView() + statusBar(binding.title.mView) + binding.title.mTvTitle.text = "企业资料" + binding.title.mIvBack.setOnClickListener { + finish() + } + } + + override fun liveObserver() { + + } + + override fun setLayout() = binding.root +} \ No newline at end of file diff --git a/mine/src/main/java/com/zj365/mime/adapter/EnterpriseInformationAdapter.kt b/mine/src/main/java/com/zj365/mime/adapter/EnterpriseInformationAdapter.kt new file mode 100644 index 0000000..25d276f --- /dev/null +++ b/mine/src/main/java/com/zj365/mime/adapter/EnterpriseInformationAdapter.kt @@ -0,0 +1,21 @@ +package com.zj365.mime.adapter + +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import com.chad.library.adapter.base.viewholder.BaseViewHolder +import com.xty.base.adapter.BaseAdapter +import com.zj365.mime.R + +class EnterpriseInformationAdapter : BaseAdapter(R.layout.item_enterprise_info) { + + val mAdapter by lazy { EnterpriseInformationChildAdapter() } + override fun convert(holder: BaseViewHolder, item: Any) { + + var recyclerView = holder.getView(R.id.recycler) + + recyclerView.layoutManager = LinearLayoutManager(context) + recyclerView.adapter = mAdapter + + + } +} \ No newline at end of file diff --git a/mine/src/main/java/com/zj365/mime/adapter/EnterpriseInformationChildAdapter.kt b/mine/src/main/java/com/zj365/mime/adapter/EnterpriseInformationChildAdapter.kt new file mode 100644 index 0000000..74e737e --- /dev/null +++ b/mine/src/main/java/com/zj365/mime/adapter/EnterpriseInformationChildAdapter.kt @@ -0,0 +1,11 @@ +package com.zj365.mime.adapter + +import com.chad.library.adapter.base.viewholder.BaseViewHolder +import com.xty.base.adapter.BaseAdapter +import com.zj365.mime.R + +class EnterpriseInformationChildAdapter : BaseAdapter(R.layout.item_enterprise_info_child) { + override fun convert(holder: BaseViewHolder, item: Any) { + + } +} \ No newline at end of file diff --git a/mine/src/main/java/com/zj365/mime/vm/BaseInfoVm.kt b/mine/src/main/java/com/zj365/mime/vm/BaseInfoVm.kt index 21142b1..d83ab54 100644 --- a/mine/src/main/java/com/zj365/mime/vm/BaseInfoVm.kt +++ b/mine/src/main/java/com/zj365/mime/vm/BaseInfoVm.kt @@ -58,68 +58,7 @@ class BaseInfoVm : BaseVm() { // ToastUtils.show("请输入正确的身份证号") // return // } - if (name.isEmpty()) { - CommonToastUtils.showToast("请输入姓名") - return - } - if (height.isEmpty()) { - CommonToastUtils.showToast("请输入身高") - return - } - - if (height.toFloat() < 50 || height.toFloat() > 260) { - CommonToastUtils.showToast("请输入正确身高") - return - } - - if (weight.isEmpty()) { - CommonToastUtils.showToast("请输入体重") - return - } - if (weight.toFloat() < 3 || weight.toFloat() > 300) { - CommonToastUtils.showToast("请输入正确体重") - return - } - if (birthDay.isEmpty()) { - CommonToastUtils.showToast("请选择出生日期") - return - } - if (TimeUtils.getAgeByBirth(birthDay) < 14) { - CommonToastUtils.showToast("需要年满14岁才可使用") - return - } - if (city.isEmpty()) { - CommonToastUtils.showToast("请选择所属地区") - return - } - if (area.isEmpty()) { - CommonToastUtils.showToast("请输入详细住址") - return - } - if (medicIds.isEmpty()) { - CommonToastUtils.showToast("请选择病史") - return - } - - if (urgent.isEmpty()) { - CommonToastUtils.showToast("请输入紧急联系人姓名") - return - } - - if (urgentPhone.isEmpty()) { - CommonToastUtils.showToast("请输入紧急联系人联系方式") - return - } - if (urgentPhone == mPhone) { - CommonToastUtils.showToast("紧急联系人电话不能与本人电话一致") - return - } - - if (urgentRelation.isEmpty()) { - CommonToastUtils.showToast("请输入关系") - return - } startHttp { withContext(Dispatchers.IO) { diff --git a/mine/src/main/res/layout/act_about.xml b/mine/src/main/res/layout/act_about.xml index 1a6e676..9dee61c 100644 --- a/mine/src/main/res/layout/act_about.xml +++ b/mine/src/main/res/layout/act_about.xml @@ -12,7 +12,7 @@ @@ -82,47 +82,49 @@ android:layout_marginBottom="@dimen/dp_45" android:layout_marginStart="@dimen/dp_20" android:layout_marginEnd="@dimen/dp_20" - android:text="技术支持:湖南安瑜健康科技有限公司" + android:text="技术支持:中健三六五健康科技有限公司" android:textColor="@color/col_313" android:textSize="@dimen/sp_15" /> - + + - + - + + + + + - - - \ No newline at end of file diff --git a/mine/src/main/res/layout/act_base_info_change.xml b/mine/src/main/res/layout/act_base_info_change.xml index 6763abd..fbff2a1 100644 --- a/mine/src/main/res/layout/act_base_info_change.xml +++ b/mine/src/main/res/layout/act_base_info_change.xml @@ -68,7 +68,7 @@ android:layout_height="@dimen/dp_38" android:layout_alignParentRight="true" android:layout_marginRight="@dimen/dp_18" - android:src="@mipmap/ic_default_man" /> + android:src="@mipmap/icon_default_avator" /> diff --git a/mine/src/main/res/layout/act_enterprise_information.xml b/mine/src/main/res/layout/act_enterprise_information.xml new file mode 100644 index 0000000..f333f25 --- /dev/null +++ b/mine/src/main/res/layout/act_enterprise_information.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mine/src/main/res/layout/dialog_factory_setting.xml b/mine/src/main/res/layout/dialog_factory_setting.xml index fac31d6..dfa9e9f 100644 --- a/mine/src/main/res/layout/dialog_factory_setting.xml +++ b/mine/src/main/res/layout/dialog_factory_setting.xml @@ -40,7 +40,7 @@ android:paddingTop="@dimen/dp_10" android:paddingBottom="@dimen/dp_10" android:text="@string/confirm" - android:textColor="@color/col_455" + android:textColor="@color/col_02c" android:textSize="@dimen/sp_16" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toLeftOf="@+id/mTvCancel" diff --git a/mine/src/main/res/layout/item_enterprise_info.xml b/mine/src/main/res/layout/item_enterprise_info.xml new file mode 100644 index 0000000..790dbc1 --- /dev/null +++ b/mine/src/main/res/layout/item_enterprise_info.xml @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mine/src/main/res/layout/item_enterprise_info_child.xml b/mine/src/main/res/layout/item_enterprise_info_child.xml new file mode 100644 index 0000000..37638cb --- /dev/null +++ b/mine/src/main/res/layout/item_enterprise_info_child.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/network/src/main/java/com/xty/network/model/BreathBean.kt b/network/src/main/java/com/xty/network/model/BreathBean.kt index a3e18d5..9029ce4 100644 --- a/network/src/main/java/com/xty/network/model/BreathBean.kt +++ b/network/src/main/java/com/xty/network/model/BreathBean.kt @@ -28,6 +28,7 @@ data class BreathBean( data class Model( var respiratory: Float, var time: String, + var timeValue: Long = 0 ) data class Value( @@ -86,6 +87,7 @@ data class BreathBean( Model( Float.NaN, dateFormat.format(currentTime), + currentTime.time ) ) calendar.time = currentTime @@ -114,7 +116,31 @@ data class BreathBean( // calendar.set(Calendar.MILLISECOND, 0) // 查找对应的时间节点并更新值 - val index = mappedData.indexOfFirst { + + val time = model.time.toLong() * 1000 + var mIndex = -1 + run breaking@{ + for (i in 0 until mappedData.size) { + if (mappedData[i].timeValue == time) { + mIndex = i + return@breaking + } else if (time >= (mappedData[i].timeValue - 5 * 60 * 1000) && time <= (mappedData[i].timeValue + 4 * 60 * 1000)) { + mIndex = i + return@breaking + } + mIndex = -1 + } + } + + + if (mIndex != -1) { + val time = mappedData[mIndex].time + val lowDbp = model.respiratory + + mappedData[mIndex] = + Model(lowDbp, time) + } + /*val index = mappedData.indexOfFirst { it.time == dateFormat.format(calendar.time) } if (index != -1) { @@ -123,7 +149,7 @@ data class BreathBean( mappedData[index] = Model(lowDbp, time) - } + }*/ } return mappedData } diff --git a/network/src/main/java/com/xty/network/model/MainBean.kt b/network/src/main/java/com/xty/network/model/MainBean.kt index 3af4d3e..1065921 100644 --- a/network/src/main/java/com/xty/network/model/MainBean.kt +++ b/network/src/main/java/com/xty/network/model/MainBean.kt @@ -41,7 +41,8 @@ data class MainBean( val time: String, val message: String, val value: String, - val status: Int + val status: Int, + val count:String, ) //尿酸 @@ -50,7 +51,8 @@ data class MainBean( val message: String, val value: String, val status: Int, - val expireTime: String + val expireTime: String, + val count:String, ) //血糖数据 @@ -62,7 +64,8 @@ data class MainBean( val max: Float, val min: Float, val errorMsg: String, - val expireTime: String + val expireTime: String, + val count:String, ) //步数 @@ -95,7 +98,8 @@ data class MainBean( val DDbp: Int, val DbpMessage: String, val DbpTime: String, - val GDbp: Int + val GDbp: Int, + val count:String, ) //心电 @@ -103,35 +107,40 @@ data class MainBean( val hrvNorm: String, val hrData: String, val heartTime: String, - val heartTimeV2: String + val heartTimeV2: String, + val count:String, ) //心率 data class HrData( val hr: Int, val hrMessage: String, - val hrTime: String + val hrTime: String, + val count:String, ) //呼吸率 data class RespiratoryData( val respiratory: Int, val respiratoryMessage: String, - val respiratoryTime: String + val respiratoryTime: String, + val count:String, ) //睡眠 data class SleepData( val sleep: Int, val sleepMessage: String, - val sleepTime: Int + val sleepTime: Int, + val count:String, ) //血氧 data class SoData( val so: Int, val soMessage: String, - val soTime: String + val soTime: String, + val count:String, ) //体温 @@ -139,7 +148,8 @@ data class MainBean( val tempFloat: Int, val tempInt: Int, val tempMessage: String, - val tempTime: String + val tempTime: String, + val count:String, ) data class User( diff --git a/network/src/main/java/com/xty/network/model/TempBean.kt b/network/src/main/java/com/xty/network/model/TempBean.kt index 150d1dc..44a7e5c 100644 --- a/network/src/main/java/com/xty/network/model/TempBean.kt +++ b/network/src/main/java/com/xty/network/model/TempBean.kt @@ -36,6 +36,7 @@ data class TempBean( var tempInt: Float, var temp: Float, var time: String, + var timeValue: Long = 0 ) data class Value( @@ -106,6 +107,7 @@ data class TempBean( Float.NaN, Float.NaN, dateFormat.format(currentTime), + currentTime.time ) ) calendar.time = currentTime @@ -118,30 +120,27 @@ data class TempBean( for (model in dataList) { calendar.timeInMillis = model.time.toLong() * 1000 -// val timestamp = model.time.toLong() // 将时间戳字符串转换为长整型 -// val time = Date.from(Instant.ofEpochSecond(timestamp)) // 使用 Instant 类转换为 Date 对象 -// calendar.time = time -// -//// val timeStr = model.time -//// val time = dateFormat.parse(timeStr) // 将字符串转换为 Date 类型 -//// calendar.time = time as Date -// -// // 舍弃分钟数为 10 的倍数以外的部分,进行四舍五入 -// val minute = calendar.get(Calendar.MINUTE) -// val roundedMinute = (minute / 10.0).roundToInt() * 10 -// calendar.set(Calendar.MINUTE, roundedMinute.toInt()) -// calendar.set(Calendar.SECOND, 0) -// calendar.set(Calendar.MILLISECOND, 0) // 查找对应的时间节点并更新值 - val index = mappedData.indexOfFirst { - it.time == dateFormat.format(calendar.time) + val time = model.time.toLong() * 1000 + var mIndex = -1 + run breaking@{ + for (i in 0 until mappedData.size) { + if (mappedData[i].timeValue == time) { + mIndex = i + return@breaking + } else if (time >= (mappedData[i].timeValue - 5 * 60 * 1000) && time <= (mappedData[i].timeValue + 4 * 60 * 1000)) { + mIndex = i + return@breaking + } + mIndex = -1 + } } - if (index != -1) { - val time = dateFormat.format(calendar.time) + if (mIndex != -1) { + val time = mappedData[mIndex].time val lowDbp = model.temp - mappedData[index] = + mappedData[mIndex] = Model( lowDbp, lowDbp, diff --git a/network/src/main/java/com/xty/network/model/UserEquipmentInformationizationBean.kt b/network/src/main/java/com/xty/network/model/UserEquipmentInformationizationBean.kt index bcc1e26..b7ab7cf 100644 --- a/network/src/main/java/com/xty/network/model/UserEquipmentInformationizationBean.kt +++ b/network/src/main/java/com/xty/network/model/UserEquipmentInformationizationBean.kt @@ -14,6 +14,8 @@ data class UserEquipmentInformationizationBean( val watchType: Int,//设备类型0,蓝牙,1,4G val power: String,//电量 val linkStatus: String,//连接状态 + val iccid:String,//物联网卡 + val flowExpireTime:String,//流量到期时间 val deviceTotal: DeviceTotal,//物联网设备统计 val adorn: Adorn,//佩戴时长对象 ) : Serializable { diff --git a/network/src/main/java/com/xty/network/model/XlBean.kt b/network/src/main/java/com/xty/network/model/XlBean.kt index ed93bca..c6379c8 100644 --- a/network/src/main/java/com/xty/network/model/XlBean.kt +++ b/network/src/main/java/com/xty/network/model/XlBean.kt @@ -21,7 +21,8 @@ data class XlBean( ) { data class Model( var hrData: Float, - var time: String + var time: String, + var timeValue: Long = 0 ) data class Value( @@ -78,42 +79,43 @@ data class XlBean( Model( Float.NaN, dateFormat.format(currentTime), + currentTime.time ) ) calendar.time = currentTime calendar.add(Calendar.MINUTE, 10) currentTime = calendar.time } -// val timestamp = 1688631900L -// val time = Date(timestamp * 1000) + // 将数据集合中的时间映射到时间节点上 for (model in dataList) { calendar.timeInMillis = model.time.toLong() * 1000 -// val timestamp = model.time.toLong() // 将时间戳字符串转换为长整型 -// val time = Date.from(Instant.ofEpochSecond(timestamp)) // 使用 Instant 类转换为 Date 对象 -// calendar.time = time -// -//// val timeStr = model.time -//// val time = dateFormat.parse(timeStr) // 将字符串转换为 Date 类型 -//// calendar.time = time as Date -// -// // 舍弃分钟数为 10 的倍数以外的部分,进行四舍五入 -// val minute = calendar.get(Calendar.MINUTE) -// val roundedMinute = (minute / 10.0).roundToInt() * 10 -// calendar.set(Calendar.MINUTE, roundedMinute.toInt()) -// calendar.set(Calendar.SECOND, 0) -// calendar.set(Calendar.MILLISECOND, 0) // 查找对应的时间节点并更新值 - val index = mappedData.indexOfFirst { - it.time == dateFormat.format(calendar.time) + val time = model.time.toLong() * 1000 + var mIndex = -1 + run breaking@{ + for (i in 0 until mappedData.size) { + if (mappedData[i].timeValue == time) { + mIndex = i + return@breaking + } else if (time >= (mappedData[i].timeValue - 5 * 60 * 1000) && time <= (mappedData[i].timeValue + 4 * 60 * 1000)) { + mIndex = i + return@breaking + } + mIndex = -1 + } } - if (index != -1) { - val time = dateFormat.format(calendar.time) + + /* val index = mappedData.indexOfFirst { + it.time == dateFormat.format(calendar.time) + }*/ + if (mIndex != -1) { + val time = mappedData[mIndex].time val lowDbp = model.hrData - mappedData[index] = Model(lowDbp, time) + mappedData[mIndex] = Model(lowDbp, time) } } diff --git a/network/src/main/java/com/xty/network/model/XtNewBean.kt b/network/src/main/java/com/xty/network/model/XtNewBean.kt index a4d7dac..56b0286 100644 --- a/network/src/main/java/com/xty/network/model/XtNewBean.kt +++ b/network/src/main/java/com/xty/network/model/XtNewBean.kt @@ -19,7 +19,8 @@ data class XtNewBean( data class Model( var xtDate: Float, - var time: String + var time: String, + var timeValue: Long = 0 ) data class Value( @@ -77,6 +78,7 @@ data class XtNewBean( XtNewBean.Model( Float.NaN, dateFormat.format(currentTime), + currentTime.time ) ) calendar.time = currentTime diff --git a/network/src/main/java/com/xty/network/model/XyBean.kt b/network/src/main/java/com/xty/network/model/XyBean.kt index 8fb07b0..dd41c0b 100644 --- a/network/src/main/java/com/xty/network/model/XyBean.kt +++ b/network/src/main/java/com/xty/network/model/XyBean.kt @@ -26,6 +26,7 @@ data class XyBean( data class Model( var soData: Float, var time: String, + var timeValue: Long = 0 ) data class Value( @@ -85,6 +86,7 @@ data class XyBean( Model( Float.NaN, dateFormat.format(currentTime), + currentTime.time ) ) calendar.time = currentTime @@ -113,16 +115,33 @@ data class XyBean( // calendar.set(Calendar.MILLISECOND, 0) // 查找对应的时间节点并更新值 - val index = mappedData.indexOfFirst { - it.time == dateFormat.format(calendar.time) + + val time = model.time.toLong() * 1000 + var mIndex = -1 + run breaking@{ + for (i in 0 until mappedData.size) { + if (mappedData[i].timeValue == time) { + mIndex = i + return@breaking + } else if (time >= (mappedData[i].timeValue - 5 * 60 * 1000) && time <= (mappedData[i].timeValue + 4 * 60 * 1000)) { + mIndex = i + return@breaking + } + mIndex = -1 + } } - if (index != -1) { - val time = dateFormat.format(calendar.time) + /* val index = mappedData.indexOfFirst { + it.time == dateFormat.format(calendar.time) + }*/ + + if (mIndex != -1) { + val time = mappedData[mIndex].time val lowDbp = model.soData - mappedData[index] = + mappedData[mIndex] = Model(lowDbp, time) } + } return mappedData