feat:换电记录增加使用时间
This commit is contained in:
@@ -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;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user