|
@@ -54,6 +54,10 @@ public class DeviceChargingServiceImpl extends ServiceImpl<DeviceChargingMapper,
|
|
|
|
|
|
private DeviceTypeAlgorithmBeforConfigServiceImpl deviceTypeAlgorithmBeforConfigService;
|
|
|
|
|
|
+ private DeviceChargingConfigServiceImpl deviceChargingConfigService;
|
|
|
+
|
|
|
+ private DeviceAlgorithmChargingServiceImpl deviceAlgorithmChargingService;
|
|
|
+
|
|
|
@PostMapping("init")
|
|
|
@ApiOperation("初始化")
|
|
|
public R init() {
|
|
@@ -71,6 +75,13 @@ public class DeviceChargingServiceImpl extends ServiceImpl<DeviceChargingMapper,
|
|
|
return R.ok();
|
|
|
}
|
|
|
|
|
|
+ @PostMapping("del")
|
|
|
+ @ApiOperation("删除")
|
|
|
+ public R del(@RequestBody @Validated DeviceChargingDto.Del del) {
|
|
|
+ removeBatchByIds(del.getDeviceId());
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
+
|
|
|
@PostMapping("payCheck")
|
|
|
@ApiOperation("购买反显")
|
|
|
public R<DeviceChargingDto.PayCheckVo> payCheck(@RequestBody @Validated DeviceChargingDto.PayCheck payCheck) {
|
|
@@ -81,7 +92,18 @@ public class DeviceChargingServiceImpl extends ServiceImpl<DeviceChargingMapper,
|
|
|
//封装设备信息
|
|
|
DeviceChargingDto.PayCheckVo payCheckVo = new DeviceChargingDto.PayCheckVo();
|
|
|
String deviceTypeName = SysDictUtils.get(EnumDeviceType.Code.CODE.getCode(), String.valueOf(deviceInfo.getDeviceType())).getMsg();
|
|
|
- Integer standard = SysDictUtils.getValue(EnumDeviceCharging.Code.CODE.getCode(), String.valueOf(deviceInfo.getDeviceType()), Integer.class);
|
|
|
+ //查询设备计费配置表
|
|
|
+ List<String> mercCodes = new ArrayList<>();
|
|
|
+ deviceAlgorithmChargingService.getMercCodes(deviceInfo.getMercCode(), mercCodes);
|
|
|
+ List<DeviceChargingConfig> deviceChargingConfigs = deviceChargingConfigService.list(new LambdaQueryWrapper<DeviceChargingConfig>()
|
|
|
+ .in(DeviceChargingConfig::getMercCode, mercCodes)
|
|
|
+ .eq(DeviceChargingConfig::getType, SysDictUtils.getValue(EnumDeviceChargingConfigType.Code.CODE.getCode(), EnumDeviceChargingConfigType.N_2.getCode(), Integer.class))
|
|
|
+ .eq(DeviceChargingConfig::getDeviceType, deviceInfo.getDeviceType())
|
|
|
+ .orderByDesc(DeviceChargingConfig::getMercCode)
|
|
|
+ );
|
|
|
+ //有则使用,无则使用默认字典
|
|
|
+ int standard = Emptys.check(deviceChargingConfigs) ? deviceChargingConfigs.get(0).getValues()
|
|
|
+ : SysDictUtils.getValue(EnumDeviceCharging.Code.CODE.getCode(), String.valueOf(deviceInfo.getDeviceType()), Integer.class);
|
|
|
DeviceChargingDto.PayCheckVo.DeviceInfo deviceInfoObj = Beans.copy(Beans.copy(DeviceChargingDto.PayCheckVo.DeviceInfo.class, deviceInfo), deviceInfo.getDeviceStatus())
|
|
|
.setDeviceTypeName(deviceTypeName)
|
|
|
.setStandard(BigDecimal.valueOf(standard).divide(BigDecimal.valueOf(100), 2, BigDecimal.ROUND_DOWN).doubleValue() + "元/年")
|
|
@@ -119,14 +141,30 @@ public class DeviceChargingServiceImpl extends ServiceImpl<DeviceChargingMapper,
|
|
|
public R check(@RequestBody @Validated DeviceChargingDto.Check check) {
|
|
|
LocalDateTime now = LocalDateTime.now();
|
|
|
DeviceCharging deviceCharging = getById(check.getDeviceId());
|
|
|
+ //不存在则新增
|
|
|
if (deviceCharging == null) {
|
|
|
- save(new DeviceCharging()
|
|
|
+ //查询设备计费配置表
|
|
|
+ DeviceInfoDto.Vo deviceInfo = deviceInfoService.obj(new DeviceInfoDto.Obj().setDeviceId(check.getDeviceId())).getData();
|
|
|
+ List<String> mercCodes = new ArrayList<>();
|
|
|
+ deviceAlgorithmChargingService.getMercCodes(deviceInfo.getMercCode(), mercCodes);
|
|
|
+ List<DeviceChargingConfig> deviceChargingConfigs = deviceChargingConfigService.list(new LambdaQueryWrapper<DeviceChargingConfig>()
|
|
|
+ .in(DeviceChargingConfig::getMercCode, mercCodes)
|
|
|
+ .eq(DeviceChargingConfig::getType, SysDictUtils.getValue(EnumDeviceChargingConfigType.Code.CODE.getCode(), EnumDeviceChargingConfigType.N_1.getCode(), Integer.class))
|
|
|
+ .eq(DeviceChargingConfig::getDeviceType, deviceInfo.getDeviceType())
|
|
|
+ .orderByDesc(DeviceChargingConfig::getMercCode)
|
|
|
+ );
|
|
|
+ //有则使用,无则使用默认字典
|
|
|
+ int chargingX = Emptys.check(deviceChargingConfigs) ? deviceChargingConfigs.get(0).getValues()
|
|
|
+ : SysDictUtils.getValue(EnumDeviceCharging.Code.CODE.getCode(), EnumDeviceCharging.N_X.getCode(), Integer.class);
|
|
|
+ //新增
|
|
|
+ deviceCharging = new DeviceCharging()
|
|
|
.setDeviceId(check.getDeviceId())
|
|
|
.setTimeout(now)
|
|
|
.setCreateTime(now)
|
|
|
- );
|
|
|
- return R.fail(R.Enum.CHARGING.getCode(), R.Enum.CHARGING.getMsg());
|
|
|
+ .setChargingX(chargingX);
|
|
|
+ save(deviceCharging);
|
|
|
}
|
|
|
+ //验证管理费天数和过期时间
|
|
|
int contrast = DataTime.stringContrast(DataTime.toString(deviceCharging.getTimeout()), DataTime.toString(now));
|
|
|
if (deviceCharging.getChargingX() == 0 && contrast <= 0) {
|
|
|
return R.fail(R.Enum.CHARGING.getCode(), R.Enum.CHARGING.getMsg());
|