|
@@ -97,7 +97,12 @@ public class MeterReadRecordDao extends BaseDao<MeterReadRecord, String> impleme
|
|
|
update.set("data.$.readData",dto.getReadData());
|
|
|
update.set("data.$.readStatus", ReadStatusEnum.READ.getCode());
|
|
|
update.set("data.$.readTime", System.currentTimeMillis());
|
|
|
- update.set("data.$.lastCost", BigDecimalUtils.subtract(meterReadRecordVo.getData().getLastValid(), new BigDecimal(dto.getReadData())));
|
|
|
+ Double lastValid = meterReadRecordVo.getData().getLastValid();
|
|
|
+ if (lastValid == null) {
|
|
|
+ update.set("data.$.lastCost", new BigDecimal(dto.getReadData()));
|
|
|
+ } else {
|
|
|
+ update.set("data.$.lastCost", BigDecimalUtils.subtract(meterReadRecordVo.getData().getLastValid(), new BigDecimal(dto.getReadData())));
|
|
|
+ }
|
|
|
update.set("data.$.createBy", UserUtil.getCurrentUser().getUsername());
|
|
|
return upsert(query,update).getModifiedCount();
|
|
|
}
|