From 77edfb324184d304ae7763aae3ab609f2b495da4 Mon Sep 17 00:00:00 2001
From: zhanzhiqin <895896009@qq.com>
Date: 星期五, 22 七月 2022 17:31:47 +0800
Subject: [PATCH] fix
---
ximon-admin/src/main/java/com/sandu/ximon/admin/service/C3ChargingService.java | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 101 insertions(+), 9 deletions(-)
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/C3ChargingService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/C3ChargingService.java
index 261fdb0..c8d8983 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/C3ChargingService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/C3ChargingService.java
@@ -1,13 +1,16 @@
package com.sandu.ximon.admin.service;
+import cn.hutool.core.util.PageUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.pagehelper.PageHelper;
+import com.sandu.common.domain.CommonPage;
import com.sandu.common.execption.BusinessException;
import com.sandu.common.object.BaseConditionVO;
import com.sandu.common.service.impl.BaseServiceImpl;
import com.sandu.common.util.SpringContextHolder;
import com.sandu.ximon.admin.config.C3mRedisConfig;
+import com.sandu.ximon.admin.controller.C3mChargingChargeController;
import com.sandu.ximon.admin.dto.ChargingDto;
import com.sandu.ximon.admin.manager.iot.frame.A5Frame;
import com.sandu.ximon.admin.manager.iot.frame.inner.report.A5C3HeartbeatReportInnerFrame;
@@ -21,6 +24,7 @@
import com.sandu.ximon.admin.param.C3ChargingAddParam;
import com.sandu.ximon.admin.param.C3ChargingParam;
import com.sandu.ximon.admin.security.SecurityUtils;
+import com.sandu.ximon.admin.utils.ListPagingUtils;
import com.sandu.ximon.admin.utils.LogUtils;
import com.sandu.ximon.admin.utils.RedisUtils;
import com.sandu.ximon.admin.utils.StoreOperationRecordsUtils;
@@ -36,6 +40,7 @@
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
@@ -174,10 +179,7 @@
*
* @return
*/
- public List<C3ChargingBo> getC3ChargingListByKeyword(BaseConditionVO baseConditionVO, C3ChargingParam c3ChargingParam) {
- if (baseConditionVO != null) {
- PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
- }
+ public Map getC3ChargingListByKeyword(BaseConditionVO baseConditionVO, C3ChargingParam c3ChargingParam) {
if (c3ChargingParam == null) {
c3ChargingParam = new C3ChargingParam();
}
@@ -193,19 +195,85 @@
} else {
c3ChargingBoList = c3mChargingMapper.listC3mChargingDto(c3ChargingParam.getKeyword(), SecurityUtils.getUserId());
}
+ //鍦ㄧ嚎鏁伴噺
+ int onlineNumber = 0;
+ //绂荤嚎鏁伴噺
+ int offlineNumber = 0;
+ //鏁呴殰鏁伴噺
+ int faultNumber = 0;
+ //绛夊緟鎺ュ叆鏁伴噺
+ int waitConnectNumber = 0;
+
for (C3ChargingBo one : c3ChargingBoList) {
String s = RedisUtils.getBean().get(C3mRedisConstant.C3_STATUS.getCode() + one.getC3Mac());
if (s != null) {
try {
A5C3HeartbeatReportInnerFrame.HeartBeatDataPackage beatDataPackage = JSON.parseObject(s, A5C3HeartbeatReportInnerFrame.HeartBeatDataPackage.class);
one.setStatusBit((Integer.valueOf(beatDataPackage.getStatusBit())));
+ switch (Integer.valueOf(beatDataPackage.getStatusBit())) {
+ //1.绌洪棽
+ case 1:
+ onlineNumber = onlineNumber + 1;
+ break;
+ //2.鍏呯數涓�
+ case 2:
+ onlineNumber = onlineNumber + 1;
+ break;
+ //3.鍏呯數涓柇锛岀瓑寰呮湇鍔″櫒纭
+ case 3:
+ onlineNumber = onlineNumber + 1;
+ break;
+ //4.鍏呯數缁撴潫锛岀瓑寰呮湇鍔″櫒纭
+ case 4:
+ onlineNumber = onlineNumber + 1;
+ break;
+ //5.鏈夋晠闅�
+ case 5:
+ faultNumber = faultNumber + 1;
+ break;
+ //6.涓庡厖鐢垫々瀵规帴涓�
+ case 6:
+ waitConnectNumber = waitConnectNumber + 1;
+ break;
+ default:
+ }
} catch (Exception e) {
e.printStackTrace();
+ offlineNumber = offlineNumber + 1;
}
} else {
one.setStatusBit(0);
+ offlineNumber = offlineNumber + 1;
}
+ }
+ Map map = new LinkedHashMap();
+ CommonPage commonPage = ListPagingUtils.pages(c3ChargingBoList, baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
+ map.put("pageNum", commonPage.getPageNum());
+ map.put("pageSize", commonPage.getPageSize());
+ map.put("totalPage", commonPage.getTotalPage());
+ map.put("total", commonPage.getTotal());
+ map.put("list", commonPage.getList());
+ map.put("onlineNumber", onlineNumber);
+ map.put("offlineNumber", offlineNumber);
+ map.put("faultNumber", faultNumber);
+ map.put("waitConnectNumber", waitConnectNumber);
+
+ return map;
+ }
+
+ /**
+ * 棣栭〉缁熻鍏呯數妗╁垪琛ㄦ暟鎹�
+ *
+ * @return
+ */
+ public List<C3ChargingBo> getC3ChargingList() {
+
+ List<C3ChargingBo> c3ChargingBoList;
+ if (SecurityUtils.getClientId() == null) {
+ c3ChargingBoList = c3mChargingMapper.listC3mChargingDto(null, null);
+ } else {
+ c3ChargingBoList = c3mChargingMapper.listC3mChargingDto(null, SecurityUtils.getUserId());
}
return c3ChargingBoList;
}
@@ -248,6 +316,9 @@
chargingDto.setDeviceTemperature(beatDataPackage.getDeviceTemperature());
//鐏潌ID
chargingDto.setPoleId(pole.getId());
+ //璐圭巼
+ BigDecimal bigDecimal = SpringContextHolder.getBean(C3mChargingChargeService.class).getchargeDecimalByC3id(one.getC3Id());
+ chargingDto.setRate(bigDecimal);
}
return chargingDto;
@@ -347,7 +418,22 @@
*
* @param c3Mac
*/
- public String finishCharging(String c3Mac) {
+ @Transactional(rollbackFor = Exception.class)
+ public String finishCharging(String c3Mac, String openId) {
+ //鏌ヨ
+ if (openId.isEmpty()) {
+ throw new BusinessException("openId涓嶈兘涓虹┖");
+ }
+ //鏌ヨ璇ュ厖鐢垫々鏈�杩戠殑璁㈠崟
+ C3mOrder order = SpringContextHolder.getBean(C3mOrderService.class).getOne(Wrappers.lambdaQuery(C3mOrder.class)
+ .eq(C3mOrder::getC3Mac, c3Mac).eq(C3mOrder::getChargingStates, 0).last("limit 1"));
+
+ if (order == null) {
+ throw new BusinessException("鍏呯數妗╂病鏈夎繘琛屼腑鐨勮鍗�");
+ }
+ if (!openId.equals(order.getOrderId())) {
+ throw new BusinessException("涓嶈兘鎿嶄綔涓嶅睘浜庢偍鐨勮鍗�");
+ }
C3FinishChargingReqInnerFrame c3FinishChargingReqInnerFrame =
new C3FinishChargingReqInnerFrame(c3Mac);
@@ -368,13 +454,18 @@
//缁撴潫鍏呯數 鏇存敼璁㈠崟鐘舵��
C3mOrder lastOrderByC3Mac = SpringContextHolder.getBean(C3mOrderService.class).getLastOrderByC3Mac(c3Mac);
if (lastOrderByC3Mac != null) {
+ //璁剧疆璁㈠崟鐘舵�佷负宸插畬鎴�
lastOrderByC3Mac.setOrderStatus(OrderStatus.COMPLETE.getStatus());
+
BigDecimal actualChargingCapacity = BigDecimal.valueOf(lastOrderByC3Mac.getActualChargingCapacity());
BigDecimal actualChargingCapacityHide = BigDecimal.valueOf(lastOrderByC3Mac.getActualChargingCapacityHide());
+ //璁剧疆瀹為檯鍏呯數鐢甸噺
lastOrderByC3Mac.setActualChargingCapacity(actualChargingCapacity.add(actualChargingCapacityHide).doubleValue());
//璁剧疆璁㈠崟缁撴潫鏃堕棿
lastOrderByC3Mac.setStopChargingTimestamp(System.currentTimeMillis());
lastOrderByC3Mac.setActualChargingCapacity(0.00);
+ //璁剧疆璁㈠崟鐘舵�佷负鍏呯數缁撴潫
+ lastOrderByC3Mac.setChargingStates(1);
SpringContextHolder.getBean(C3mOrderService.class).updateById(lastOrderByC3Mac);
}
if (operationReportInnerFrame.isValidate()) {
@@ -724,13 +815,13 @@
A5Frame a5Frame = new A5Frame(A5OrderEnum.REQUEST_C3_DATA.getCode(), setAddressReqInnerFrame);
System.out.println(a5Frame + " -----a5Frame");
-
-
CommonFrame commonFrame = MainBoardInvokeSyncService.getInstance().sendRRPC(c3mCharging.getPoleDevicesCode(), a5Frame);
StoreOperationRecordsUtils.storeInnerFrameData(c3Mac, "C3甯�-璁剧疆鍦板潃", a5Frame, commonFrame);
-
-
System.out.println(commonFrame + " -----commonFrame");
+
+ //淇濆瓨鎿嶄綔鏃ュ織
+ String content = "鏃3Mac鍦板潃锛�" + c3Mac + "锛涙柊C3Mac鍦板潃锛�" + address;
+ StoreOperationRecordsUtils.storeOperationData(null, null, "C3甯�-璁剧疆鍦板潃", content);
A5C3OperationReportInnerFrame operationReportInnerFrame = new A5C3OperationReportInnerFrame().transformFrame(commonFrame.getPayload());
if (operationReportInnerFrame.isValidate()) {
@@ -744,6 +835,7 @@
} else {
throw new BusinessException("鏁版嵁鏍¢獙閿欒锛岃閲嶆柊璇锋眰");
}
+
}
/**
--
Gitblit v1.9.3