| | |
| | | @PostMapping("/updateHandshakeVin") |
| | | public R<Boolean> updateHandshakeVin(@RequestParam("orderCode") String orderCode, |
| | | @RequestParam("vin") String vin) { |
| | | if (StringUtils.isEmpty(orderCode) || StringUtils.isEmpty(vin)) { |
| | | if (StringUtils.isEmpty(orderCode)) { |
| | | return R.ok(false); |
| | | } |
| | | boolean updated; |
| | | if (orderCode.startsWith("CD")) { |
| | | updated = chargingOrderService.update(Wrappers.<TChargingOrder>lambdaUpdate() |
| | | updated = StringUtils.isNotEmpty(vin) && chargingOrderService.update(Wrappers.<TChargingOrder>lambdaUpdate() |
| | | .eq(TChargingOrder::getCode, orderCode) |
| | | .set(TChargingOrder::getActualVin, vin)); |
| | | } else if (orderCode.startsWith("SD")) { |
| | | updated = cardChargingOrderService.update(Wrappers.<TCardChargingOrder>lambdaUpdate() |
| | | .eq(TCardChargingOrder::getCode, orderCode) |
| | | .set(TCardChargingOrder::getActualVin, vin)); |
| | | // SD/VD:VIN 为空也进入握手处理(状态推进必达);服务内部仅非空回写 VIN,且仅状态=启动中(2)才推进 |
| | | updated = cardChargingOrderService.handleHandshakeVin(orderCode, vin); |
| | | } else if (orderCode.startsWith("VD")) { |
| | | updated = vinChargingOrderService.update(Wrappers.<TVinChargingOrder>lambdaUpdate() |
| | | .eq(TVinChargingOrder::getCode, orderCode) |
| | | .set(TVinChargingOrder::getActualVin, vin)); |
| | | updated = vinChargingOrderService.handleHandshakeVin(orderCode, vin); |
| | | } else { |
| | | log.warn("握手VIN回写失败,未知订单类型:{}", orderCode); |
| | | return R.ok(false); |
| | |
| | | } |
| | | return R.ok(result); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 内部接口:统计公司名下进行中充电订单数(三表合计,状态 2=启动中/3=充电中/4=停止中, |
| | | * 账户模式切换:分配→共享 前校验使用) |
| | | */ |
| | | @PostMapping("/inner/count-active-by-company") |
| | | public R<Integer> countActiveByCompany(@RequestParam("companyId") Integer companyId) { |
| | | if (companyId == null) { |
| | | return R.ok(0); |
| | | } |
| | | try { |
| | | List<Integer> activeStatuses = Arrays.asList(2, 3, 4); |
| | | long count = 0L; |
| | | count += chargingOrderService.lambdaQuery() |
| | | .eq(TChargingOrder::getCompanyId, companyId) |
| | | .in(TChargingOrder::getStatus, activeStatuses) |
| | | .count(); |
| | | count += cardChargingOrderService.lambdaQuery() |
| | | .eq(TCardChargingOrder::getCompanyId, companyId) |
| | | .in(TCardChargingOrder::getStatus, activeStatuses) |
| | | .count(); |
| | | count += vinChargingOrderService.lambdaQuery() |
| | | .eq(TVinChargingOrder::getCompanyId, companyId) |
| | | .in(TVinChargingOrder::getStatus, activeStatuses) |
| | | .count(); |
| | | return R.ok((int) count); |
| | | } catch (RuntimeException ex) { |
| | | log.error("统计公司进行中充电订单失败:companyId={}", companyId, ex); |
| | | return R.fail("统计公司进行中充电订单失败:" + ex.getMessage()); |
| | | } |
| | | } |
| | | |
| | | @RequiresPermissions(value = {"/chargingOperationAnalysis"}, logical = Logical.OR) |
| | | @ResponseBody |
| | | @PostMapping(value = "/charging/statistics") |