feat:换电记录增加使用时间

This commit is contained in:
yangqingyuan
2024-08-18 20:30:45 +08:00
parent ec5ced1cff
commit f7eb16259e
2 changed files with 30 additions and 0 deletions

View File

@@ -80,4 +80,8 @@ public class EquipmentRecord implements Serializable {
@TableField(exist = false) @TableField(exist = false)
private String realName; private String realName;
@ApiModelProperty(value = "设备的使用时间,精确到0.1天")
@TableField(exist = false)
private Float duration;
} }

View File

@@ -5,11 +5,15 @@ import com.gxwebsoft.apps.mapper.EquipmentRecordMapper;
import com.gxwebsoft.apps.service.EquipmentRecordService; import com.gxwebsoft.apps.service.EquipmentRecordService;
import com.gxwebsoft.apps.entity.EquipmentRecord; import com.gxwebsoft.apps.entity.EquipmentRecord;
import com.gxwebsoft.apps.param.EquipmentRecordParam; import com.gxwebsoft.apps.param.EquipmentRecordParam;
import com.gxwebsoft.common.core.utils.LocalDateUtil;
import com.gxwebsoft.common.core.web.PageParam; import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.PageResult; import com.gxwebsoft.common.core.web.PageResult;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.Duration;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
import static com.gxwebsoft.apps.constants.EquipmentConstants.EVENT_TYPE_UNBIND;
/** /**
* 前世今生Service实现 * 前世今生Service实现
@@ -25,6 +29,28 @@ public class EquipmentRecordServiceImpl extends ServiceImpl<EquipmentRecordMappe
PageParam<EquipmentRecord, EquipmentRecordParam> page = new PageParam<>(param); PageParam<EquipmentRecord, EquipmentRecordParam> page = new PageParam<>(param);
page.setDefaultOrder("create_time desc"); page.setDefaultOrder("create_time desc");
List<EquipmentRecord> list = baseMapper.selectPageRel(page, param); List<EquipmentRecord> list = baseMapper.selectPageRel(page, param);
//计算换电记录中的设备使用时间,这里的数量不多,可以在每次查询过程中计算
if (!list.isEmpty() && param.getUserId()!=0 && param.getOrderId()!=0) {//如果是换电记录中的查询
if (list.size() == 1){//如果记录只有一条
EquipmentRecord equipmentRecord = list.get(0);
LocalDateTime startTime = LocalDateUtil.date2LocalDateTime(equipmentRecord.getCreateTime());
Duration duration = Duration.between(startTime, LocalDateTime.now());
equipmentRecord.setDuration(Float.parseFloat(String.format("%.1f",duration.toHours()/24.0f)));
} else {//记录有多条
EquipmentRecord lastUnbindRecord = null;
for (EquipmentRecord record : list) {
if (record.getEventType().equals(EVENT_TYPE_UNBIND)) {//先找到解绑记录
lastUnbindRecord = record;
} else if (lastUnbindRecord != null && record.getEquipmentCode().equals(lastUnbindRecord.getEquipmentCode())) {//再往下找相同订单的
LocalDateTime startTime = LocalDateUtil.date2LocalDateTime(record.getCreateTime());
LocalDateTime endTime = LocalDateUtil.date2LocalDateTime(lastUnbindRecord.getCreateTime());
Duration duration = Duration.between(startTime, endTime);
lastUnbindRecord.setDuration(Float.parseFloat(String.format("%.1f",duration.toHours()/24.0f)));
}
}
}
}
return new PageResult<>(list, page.getTotal()); return new PageResult<>(list, page.getTotal());
} }