feat:换电记录增加使用时间
This commit is contained in:
@@ -80,4 +80,8 @@ public class EquipmentRecord implements Serializable {
|
||||
@TableField(exist = false)
|
||||
private String realName;
|
||||
|
||||
@ApiModelProperty(value = "设备的使用时间,精确到0.1天")
|
||||
@TableField(exist = false)
|
||||
private Float duration;
|
||||
|
||||
}
|
||||
|
||||
@@ -5,11 +5,15 @@ import com.gxwebsoft.apps.mapper.EquipmentRecordMapper;
|
||||
import com.gxwebsoft.apps.service.EquipmentRecordService;
|
||||
import com.gxwebsoft.apps.entity.EquipmentRecord;
|
||||
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.PageResult;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
import static com.gxwebsoft.apps.constants.EquipmentConstants.EVENT_TYPE_UNBIND;
|
||||
|
||||
/**
|
||||
* 前世今生Service实现
|
||||
@@ -25,6 +29,28 @@ public class EquipmentRecordServiceImpl extends ServiceImpl<EquipmentRecordMappe
|
||||
PageParam<EquipmentRecord, EquipmentRecordParam> page = new PageParam<>(param);
|
||||
page.setDefaultOrder("create_time desc");
|
||||
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());
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user