@@ -190,14 +190,14 @@ def get_screen_data(point=None, point_id=None): |
||
| 190 | 190 |
ipuis = {ipui.get('pk'): {
|
| 191 | 191 |
'fields': ipui.get('fields', []),
|
| 192 | 192 |
'observed_days': ipui.get('observed_days', 0),
|
| 193 |
- 'temperature_has_upload': ipui.get('temperature_has_upload', ''),
|
|
| 193 |
+ 'user_status': ipui.get('user_status', ''),
|
|
| 194 | 194 |
'temperature': ipui.get('temperature', 0),
|
| 195 | 195 |
'last_submit_at': ipui.get('last_submit_at', ''),
|
| 196 | 196 |
'remark': ipui.get('remark', ''),
|
| 197 | 197 |
} for ipui in ipuis} |
| 198 | 198 |
|
| 199 | 199 |
eqpts = [{**eqpt.screen_data, **{
|
| 200 |
- 'has_upload': ipuis.get(eqpt.ipui_pk, {}).get('temperature_has_upload', ''),
|
|
| 200 |
+ 'user_status': ipuis.get(eqpt.ipui_pk, {}).get('user_status', ''),
|
|
| 201 | 201 |
'temperature': ipuis.get(eqpt.ipui_pk, {}).get('temperature', 0),
|
| 202 | 202 |
'observed_days': ipuis.get(eqpt.ipui_pk, {}).get('observed_days', 0),
|
| 203 | 203 |
'last_submit_at': ipuis.get(eqpt.ipui_pk, {}).get('last_submit_at', ''),
|
@@ -217,15 +217,18 @@ def get_screen_data(point=None, point_id=None): |
||
| 217 | 217 |
'phone': eqpt.get('phone', ''),
|
| 218 | 218 |
'sex': eqpt.get('sex', ''),
|
| 219 | 219 |
'age': eqpt.get('age', ''),
|
| 220 |
- 'status': eqpt.get('has_upload'),
|
|
| 220 |
+ 'status': eqpt.get('user_status'),
|
|
| 221 | 221 |
'last_report_time': eqpt.get('last_submit_at', ''),
|
| 222 | 222 |
'temperature': eqpt.get('temperature', 0),
|
| 223 | 223 |
'observed_days': eqpt.get('observed_days', 0),
|
| 224 | 224 |
} for eqpt in eqpts] |
| 225 | 225 |
|
| 226 |
- # 排序:发烧 > 未上报 > 充电中 > 时间 |
|
| 226 |
+ # 排序:发烧 > 未联网 > 关机 > 未佩戴 > 充电中 > 时间 |
|
| 227 | 227 |
eqpts_fever = [] |
| 228 |
- eqpts_not_upload = [] |
|
| 228 |
+ # eqpts_not_upload = [] |
|
| 229 |
+ eqpts_not_connected = [] |
|
| 230 |
+ eqpts_shutdown = [] |
|
| 231 |
+ eqpts_not_worn = [] |
|
| 229 | 232 |
eqpts_chg = [] |
| 230 | 233 |
eqpts_other = [] |
| 231 | 234 |
for eqpt in eqpts: |
@@ -233,15 +236,23 @@ def get_screen_data(point=None, point_id=None): |
||
| 233 | 236 |
temperature = eqpt.get('temperature')
|
| 234 | 237 |
if temperature > settings.FEVER_TEMPERATURE: |
| 235 | 238 |
eqpts_fever.append(eqpt) |
| 236 |
- elif status == IsolationPointUserInfo.HAS_NOT_UPLOAD and temperature <= settings.FEVER_TEMPERATURE: |
|
| 237 |
- eqpts_not_upload.append(eqpt) |
|
| 239 |
+ elif status == IsolationPointUserInfo.HAS_NOT_CONNECTED: |
|
| 240 |
+ eqpt['temperature'] = '-' |
|
| 241 |
+ eqpts_not_connected.append(eqpt) |
|
| 242 |
+ elif status == IsolationPointUserInfo.HAS_SHUTDOWN: |
|
| 243 |
+ eqpt['temperature'] = '-' |
|
| 244 |
+ eqpts_shutdown.append(eqpt) |
|
| 245 |
+ elif status == IsolationPointUserInfo.HAS_NOT_WORN: |
|
| 246 |
+ eqpt['temperature'] = '-' |
|
| 247 |
+ eqpts_not_worn.append(eqpt) |
|
| 238 | 248 |
elif status == IsolationPointUserInfo.CHG_STA_CHARGING: |
| 249 |
+ eqpt['temperature'] = '-' |
|
| 239 | 250 |
eqpts_chg.append(eqpt) |
| 240 | 251 |
else: |
| 241 | 252 |
eqpts_other.append(eqpt) |
| 242 | 253 |
|
| 243 | 254 |
return {
|
| 244 |
- 'eqpts': eqpts_fever + eqpts_not_upload + eqpts_chg + eqpts_other, |
|
| 255 |
+ 'eqpts': eqpts_fever + eqpts_not_connected + eqpts_shutdown + eqpts_not_worn + eqpts_chg + eqpts_other, |
|
| 245 | 256 |
'reminds': reminds, |
| 246 | 257 |
'total_active_eqpt_num': total_active_eqpt_num, |
| 247 | 258 |
'has_upload_temperature_num': has_upload_temperature_num, |
@@ -81,6 +81,9 @@ class IsolationPointInfo(BaseModelMixin): |
||
| 81 | 81 |
|
| 82 | 82 |
class IsolationPointUserInfo(BaseModelMixin): |
| 83 | 83 |
HAS_NOT_UPLOAD = '未上报' |
| 84 |
+ HAS_NOT_CONNECTED = '未联网' |
|
| 85 |
+ HAS_NOT_WORN = '未佩戴' |
|
| 86 |
+ HAS_SHUTDOWN = '关机' |
|
| 84 | 87 |
HAS_YET_UPLOAD = '已上报' |
| 85 | 88 |
CHG_STA_CHARGING = '充电中' |
| 86 | 89 |
|
@@ -120,9 +123,25 @@ class IsolationPointUserInfo(BaseModelMixin): |
||
| 120 | 123 |
return IsolationPointUserInfo.CHG_STA_CHARGING |
| 121 | 124 |
if self.last_submit_at and self.last_submit_at > tc.utc_datetime(hours=-1): |
| 122 | 125 |
return IsolationPointUserInfo.HAS_YET_UPLOAD |
| 126 |
+ |
|
| 123 | 127 |
return IsolationPointUserInfo.HAS_NOT_UPLOAD |
| 124 | 128 |
|
| 125 | 129 |
@property |
| 130 |
+ def user_status(self): |
|
| 131 |
+ has_upload = self.last_submit_at and self.last_submit_at > tc.utc_datetime(hours=-1) |
|
| 132 |
+ if has_upload and self.chg_sta: |
|
| 133 |
+ return IsolationPointUserInfo.CHG_STA_CHARGING |
|
| 134 |
+ if has_upload and self.temperature >= 35: |
|
| 135 |
+ return IsolationPointUserInfo.HAS_YET_UPLOAD |
|
| 136 |
+ if has_upload and self.temperature < 35: |
|
| 137 |
+ return IsolationPointUserInfo.HAS_NOT_WORN |
|
| 138 |
+ if not has_upload and (self.chg_sta or self.temperature > 0): |
|
| 139 |
+ return IsolationPointUserInfo.HAS_SHUTDOWN |
|
| 140 |
+ |
|
| 141 |
+ return IsolationPointUserInfo.HAS_NOT_CONNECTED |
|
| 142 |
+ |
|
| 143 |
+ |
|
| 144 |
+ @property |
|
| 126 | 145 |
def data(self): |
| 127 | 146 |
return {
|
| 128 | 147 |
'pk': self.pk, |
@@ -131,6 +150,7 @@ class IsolationPointUserInfo(BaseModelMixin): |
||
| 131 | 150 |
'fields': self.fields, |
| 132 | 151 |
'observed_days': self.observed_days, |
| 133 | 152 |
'temperature_has_upload': self.temperature_has_upload, |
| 153 |
+ 'user_status': self.user_status, |
|
| 134 | 154 |
'temperature': self.temperature, |
| 135 | 155 |
'last_submit_at': tc.local_string(utc_dt=self.last_submit_at, format='%m-%d %H:%M') if self.last_submit_at else '', |
| 136 | 156 |
'remark': self.remark or '', |