|
@@ -181,6 +181,74 @@ public class DeviceSimChargeServiceImpl extends ServiceImpl<DeviceSimChargeMappe
|
|
|
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 财务管理-支出管理-流量卡费明细
|
|
|
+ *
|
|
|
+ * @param page
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+
|
|
|
+ public R<PageBean<DeviceSimChargeDto.MySpendPageVO>> mySpendPage(DeviceSimChargeDto.PageByTopMerc page) {
|
|
|
+ Long curMercId = page.getCurMercId();
|
|
|
+ List<Long> mercIds = new ArrayList<>();
|
|
|
+ //指定商户ID
|
|
|
+ mercIds.add(curMercId);
|
|
|
+ PageBean pageBean = page.getPage();
|
|
|
+ LambdaQueryWrapper<DeviceSimCharge> lambdaQueryWrapper = new MybatisPlusQuery().eqWrapper(page, DeviceSimCharge.class)
|
|
|
+ .ge(DeviceSimCharge::getCreateTime, page.getBeginCreateTime())
|
|
|
+ .le(DeviceSimCharge::getCreateTime, page.getEndCreateTime())
|
|
|
+ .in(DeviceSimCharge::getMercId, mercIds)
|
|
|
+ .build()
|
|
|
+ .orderByDesc(!Emptys.check(pageBean.getOrders()), DeviceSimCharge::getCreateTime);
|
|
|
+ IPage<DeviceSimCharge> iPage = page(toIPage(pageBean), lambdaQueryWrapper);
|
|
|
+ PageBean<DeviceSimChargeDto.MySpendPageVO> voPageBean = toPageBean(DeviceSimChargeDto.MySpendPageVO.class, iPage);
|
|
|
+ List<DeviceSimChargeDto.MySpendPageVO> records = voPageBean.getRecords();
|
|
|
+
|
|
|
+ if (Emptys.check(records)) {
|
|
|
+ copy(records)
|
|
|
+ .target(() -> orderMercManageService.list(new OrderMercManageDto.SelectList().setId(new JArrayList<>(records).getProperty(DeviceSimChargeDto.MySpendPageVO::getOrderId))).getData()
|
|
|
+ , DeviceSimChargeDto.MySpendPageVO::getOrderId, DeviceSimChargeDto.MySpendPageVO::getFiles, OrderMercManageDto.Vo::getId, OrderMercManageDto.Vo::getFiles
|
|
|
+ ).target(() -> mercService.list(new MercDto.SelectList().setMercIds(new JArrayList<>(records).getProperty(DeviceSimChargeDto.MySpendPageVO::getMercId).comparing())).getData()
|
|
|
+ , DeviceSimChargeDto.MySpendPageVO::getMercId, DeviceSimChargeDto.MySpendPageVO::getMercName, MercDto.Vo::getId, MercDto.Vo::getName)
|
|
|
+ .builder();
|
|
|
+ List<String> simIds = records.stream().map(DeviceSimChargeDto.MySpendPageVO::getSimId).collect(Collectors.toList());
|
|
|
+ List<DeviceSim> deviceSims = deviceSimService.listByIds(simIds);
|
|
|
+ Map<String, DeviceSim> deviceSimMap = MapUtil.newHashMap();
|
|
|
+ if (CollUtil.isNotEmpty(deviceSims)) {
|
|
|
+ deviceSimMap = deviceSims.stream().collect(Collectors.toMap(DeviceSim::getId, ds -> ds));
|
|
|
+ }
|
|
|
+ Map<String, SysDictRedis> simConfig = SysDictUtils.get(EnumSimConfig.Code.CODE.getCode());
|
|
|
+
|
|
|
+ Integer value = Integer.valueOf(simConfig.get(EnumSimConfig.N_200.getCode()).getValue());
|
|
|
+
|
|
|
+ for (DeviceSimChargeDto.MySpendPageVO record : records) {
|
|
|
+ Long mercId = record.getMercId();
|
|
|
+ String simId = record.getSimId();
|
|
|
+ DeviceSim sim = deviceSimMap.get(simId);
|
|
|
+ //封装过期状态说明
|
|
|
+ if (Emptys.check(sim)) {
|
|
|
+ LocalDateTime timeout = sim.getTimeout();
|
|
|
+ if (timeout == null) {
|
|
|
+ record.setTimeoutStatus("未初始化");
|
|
|
+ } else {
|
|
|
+ String timeoutStatus;
|
|
|
+ long s = DataTime.diff(LocalDateTime.now(), timeout, "s");
|
|
|
+ if (s <= 0) {
|
|
|
+ timeoutStatus = "欠费(" + (~(s / 86400 - 1)) + "天)";
|
|
|
+ } else {
|
|
|
+ timeoutStatus = s <= value * 86400 ? "即将到期(" + s / 86400 + "天)" : "正常(" + s / 86400 + "天)";
|
|
|
+ }
|
|
|
+ record.setTimeoutStatus(timeoutStatus);
|
|
|
+ }
|
|
|
+ record.setTimeout(timeout);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return R.ok(voPageBean);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
@ApiOperation("月统计分页")
|
|
|
@PostMapping("moonCountPage")
|