|
@@ -1,11 +1,18 @@
|
|
|
package com.xy.service;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.xy.dto.DeviceChargingDto;
|
|
|
+import com.xy.dto.DeviceChargingHistoryDto;
|
|
|
+import com.xy.dto.DeviceInfoDto;
|
|
|
import com.xy.entity.DeviceCharging;
|
|
|
+import com.xy.entity.DeviceChargingHistory;
|
|
|
+import com.xy.entity.SysDictRedis;
|
|
|
import com.xy.job.DeviceChargingJob;
|
|
|
import com.xy.mapper.DeviceChargingMapper;
|
|
|
-import com.xy.utils.R;
|
|
|
+import com.xy.utils.*;
|
|
|
+import com.xy.utils.enums.DictEnum;
|
|
|
import io.swagger.annotations.Api;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
import lombok.AllArgsConstructor;
|
|
@@ -15,8 +22,10 @@ import org.springframework.validation.annotation.Validated;
|
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
|
|
|
|
-import javax.validation.constraints.NotEmpty;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
+import static com.xy.utils.PlusBeans.*;
|
|
|
|
|
|
|
|
|
/**
|
|
@@ -34,11 +43,47 @@ public class DeviceChargingServiceImpl extends ServiceImpl<DeviceChargingMapper,
|
|
|
|
|
|
private DeviceChargingJob deviceChargingJob;
|
|
|
|
|
|
- @ApiOperation("手动计费")
|
|
|
+ private DeviceChargingHistoryServiceImpl deviceChargingHistoryService;
|
|
|
+
|
|
|
@PostMapping("charging")
|
|
|
+ @ApiOperation("手动计费")
|
|
|
public R charging(@RequestBody @Validated DeviceChargingDto.Charging charging) {
|
|
|
List<Long> deviceIds = charging.getDeviceIds();
|
|
|
deviceChargingJob.deviceCharging(1, deviceIds.size(), deviceIds);
|
|
|
return R.ok();
|
|
|
}
|
|
|
+
|
|
|
+ @PostMapping("page")
|
|
|
+ @ApiOperation("分页查询")
|
|
|
+ public R<PageBean<DeviceChargingDto.PageVo>> page(@RequestBody DeviceChargingDto.Page page) {
|
|
|
+ IPage<DeviceChargingDto.PageVo> iPage = baseMapper.page(toIPage(page.getPage()), page);
|
|
|
+ List<DeviceChargingDto.PageVo> records = iPage.getRecords();
|
|
|
+ if (Emptys.check(records)) {
|
|
|
+ Map<String, SysDictRedis> stringSysDictRedisMap = SysDictUtils.get(DictEnum.DEVICE_CHARGING.getKey());
|
|
|
+ for (DeviceChargingDto.PageVo record : records) {
|
|
|
+ DeviceInfoDto.Vo deviceInfo = record.getDeviceInfo();
|
|
|
+ //封装最新计费历史信息
|
|
|
+ LambdaQueryWrapper<DeviceChargingHistory> lambdaQueryWrapper = new LambdaQueryWrapper<DeviceChargingHistory>()
|
|
|
+ .eq(DeviceChargingHistory::getDeviceId, deviceInfo.getDeviceId())
|
|
|
+ .orderByDesc(DeviceChargingHistory::getCreateTime)
|
|
|
+ .last("limit 1");
|
|
|
+ DeviceChargingHistory deviceChargingHistory = deviceChargingHistoryService.getOne(lambdaQueryWrapper);
|
|
|
+ if (deviceChargingHistory != null) {
|
|
|
+ record.setDeviceChargingHistory(copy(DeviceChargingHistoryDto.Vo.class, deviceChargingHistory));
|
|
|
+ }
|
|
|
+ //封装计费标准金额
|
|
|
+ SysDictRedis sysDictRedis = stringSysDictRedisMap.get(deviceInfo.getDeviceType().toString());
|
|
|
+ if (sysDictRedis != null) {
|
|
|
+ record.setChargingMoney(Integer.valueOf(sysDictRedis.getValue()));
|
|
|
+ }
|
|
|
+ //封装缴费状态
|
|
|
+ DeviceChargingDto.Vo deviceCharging = record.getDeviceCharging();
|
|
|
+ if (deviceCharging != null) {
|
|
|
+ int contrast = DataTime.stringContrast(DataTime.toString(page.getThisTime()), DataTime.toString(deviceCharging.getTimeout()));
|
|
|
+ record.setChargingStatus(contrast < 0);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return R.ok(toPageBean(iPage));
|
|
|
+ }
|
|
|
}
|