From 694962918618b6d9531d8ca876a6746e030387f1 Mon Sep 17 00:00:00 2001
From: liuhaonan <31457034@qq.com>
Date: 星期二, 23 八月 2022 11:38:26 +0800
Subject: [PATCH] changes
---
ximon-admin/src/main/java/com/sandu/ximon/admin/service/C3ChargingService.java | 214 +++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 165 insertions(+), 49 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 6ae4861..bff2a98 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,8 +1,9 @@
package com.sandu.ximon.admin.service;
+import cn.hutool.core.collection.ListUtil;
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;
@@ -21,17 +22,12 @@
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.LogUtils;
-import com.sandu.ximon.admin.utils.RedisUtils;
-import com.sandu.ximon.admin.utils.StoreOperationRecordsUtils;
+import com.sandu.ximon.admin.utils.*;
import com.sandu.ximon.admin.vo.EquipmentInfomation;
import com.sandu.ximon.dao.bo.C3ChargingBo;
-import com.sandu.ximon.dao.domain.C3mCharging;
-import com.sandu.ximon.dao.domain.C3mChargingCharge;
-import com.sandu.ximon.dao.domain.C3mOrder;
-import com.sandu.ximon.dao.domain.PoleBinding;
-import com.sandu.ximon.dao.enums.OrderStatus;
import com.sandu.ximon.dao.domain.*;
+import com.sandu.ximon.dao.enums.OrderByEnums;
+import com.sandu.ximon.dao.enums.OrderStatus;
import com.sandu.ximon.dao.mapper.C3mChargingMapper;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -74,7 +70,7 @@
}
/**
- * 淇濆瓨涓婃姤C3鍏呯數璁惧蹇冭烦鏁版嵁
+ * 淇濆瓨涓婃姤C3鍏呯數璁惧
*
* @return 鏄惁鎴愬姛
*/
@@ -94,35 +90,9 @@
one.setC3Mac(c3Mac);
flag = updateById(one);
}
- //璁剧疆璐圭巼
- C3mCharging c3mCharging1 = getOne(Wrappers.lambdaQuery(C3mCharging.class).eq(C3mCharging::getMcuUdid, mcuUdid));
- List<C3mChargingCharge> list = c3mChargingChargeService.list(Wrappers.lambdaQuery(C3mChargingCharge.class).eq(C3mChargingCharge::getC3Id, c3mCharging1.getC3Id()));
- if (list.size() == 0) {//璐圭巼琛ㄤ腑娌℃湁姝ゅ厖鐢垫々鏁版嵁鏃� 娣诲姞榛樿璐圭巼
- c3mChargingChargeService.initCharge((c3mCharging1.getC3Id()).intValue());
- }
-// /**
-// * 娣诲姞缁戝畾鍏崇郴寮�濮�
-// */
-// Pole pole = poleService.getOne(Wrappers.lambdaQuery(Pole.class).eq(Pole::getDeviceCode, deviceName));
-// if (pole == null) {
-// Pole pole1 = new Pole();
-// pole1.setDeviceCode(deviceName);
-// pole1.setPoleName(deviceName);
-// pole1.setPoleCode(poleService.generatePoleCode());
-// poleService.save(pole1);
-// }
-//
-// Long poleId = poleService.getOne(Wrappers.lambdaQuery(Pole.class).eq(Pole::getDeviceCode, deviceName)).getId();
-// PoleBindingParam poleBindingParam = new PoleBindingParam();
-// poleBindingParam.setDeviceType(2);
-// poleBindingParam.setDeviceCode(mcuUdid);
-// bindingService.bindPole(poleId, poleBindingParam);
-
- /**
- * 娣诲姞缁戝畾鍏崇郴缁撴潫
- */
//鍚屾鏃堕棿鎴�
+ System.out.println("鍚屾鏃堕棿鎴冲紑濮�");
String date = new SimpleDateFormat("yyMMddHHmmss").format(new Date());
String s = SetCalendar(c3Mac, Integer.parseInt(date.substring(0, 2)), Integer.parseInt(date.substring(2, 4)),
Integer.parseInt(date.substring(4, 6)), Integer.parseInt(date.substring(6, 8)),
@@ -131,10 +101,23 @@
LogUtils.error("鍙戦�佽缃瓹3鏃堕棿鍚屾澶辫触!");
return false;
}
+ System.out.println("鍚屾鏃堕棿鎴崇粨鏉�");
+
+ //璁剧疆璐圭巼
+ System.out.println("璁剧疆璐圭巼寮�濮�");
+ C3mCharging c3mCharging1 = getOne(Wrappers.lambdaQuery(C3mCharging.class).eq(C3mCharging::getMcuUdid, mcuUdid));
+ List<C3mChargingCharge> list = c3mChargingChargeService.list(Wrappers.lambdaQuery(C3mChargingCharge.class).eq(C3mChargingCharge::getC3Id, c3mCharging1.getC3Id()));
+ if (list.size() == 0) {//璐圭巼琛ㄤ腑娌℃湁姝ゅ厖鐢垫々鏁版嵁鏃� 娣诲姞榛樿璐圭巼
+ c3mChargingChargeService.initCharge((c3mCharging1.getC3Id()).intValue());
+ }
+ String rateState = setRate(c3Mac, list);
+ System.out.println("璁剧疆璐圭巼缁撴灉锛�" + rateState);
+ System.out.println("璁剧疆璐圭巼缁撴潫");
/** 璺冲寘鏃堕棿鍚屾
* 璁剧疆鏃堕棿瑙勫垯锛氬厖鐢垫椂涓�1鍊嶏紝闈炲厖鐢电姸鎬佷负1.5鍊嶆椂闂�
*/
+ System.out.println("璁剧疆蹇冭烦鍖呴棿闅旀椂闂村紑濮�");
Set<String> keys = RedisUtils.getBean().keys(C3mRedisConstant.C3_STATUS.getCode() + "*");
C3mRedisConfig.reFlushTime(keys.size());
@@ -142,11 +125,13 @@
LogUtils.error("C3绌洪棽蹇冭烦鍖呮椂闂村悓姝ュ搷搴旂粨鏋滐細" + time1);
String time2 = SetHeartbeatPacketTimeCharging(c3Mac, C3mRedisConfig.parseInt(C3mRedisConfig.HEART_BEAT_TIME), true);
LogUtils.error("C3鍏呯數鏃跺績璺冲寘鏃堕棿鍚屾鍝嶅簲缁撴灉锛�" + time2);
+ System.out.println("璁剧疆蹇冭烦鍖呴棿闅旀椂闂寸粨鏉�");
/**
* 鑾峰彇蹇冭烦鍖咃紝鍒ゆ柇鍦ㄧ嚎
*/
+ System.out.println("鑾峰彇蹇冭烦鍖呭紑濮�");
A5C3HeartbeatReportInnerFrame.HeartBeatDataPackage aPackage = ReadTheHeartbeatPackage(c3Mac);
if (aPackage == null) {
LogUtils.error("璇诲彇蹇冭烦鍖呬负绌�");
@@ -158,15 +143,19 @@
JSON.toJSONString(aPackage),
C3mRedisConfig.OUTLINE_TIME
);
+ System.out.println("鑾峰彇蹇冭烦鍖呯粨鏉�");
/**
* finally銆佸悓姝ョ粨鏉�
*/
+ System.out.println("鍚屾缁撴潫 寮�濮�");
String end = EndOfTheSynchronization(c3Mac);
if (!"鎿嶄綔鎴愬姛".equals(end)) {
LogUtils.error("C3鍚屾缁撴潫鍝嶅簲缁撴灉" + end);
return false;
}
+ System.out.println("鍚屾缁撴潫 缁撴潫");
+
return flag;
}
@@ -175,10 +164,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, Integer order, Integer seq) {
if (c3ChargingParam == null) {
c3ChargingParam = new C3ChargingParam();
}
@@ -187,26 +173,118 @@
if (c3ChargingParam.getKeyword() != null) {
c3ChargingParam.setKeyword(c3ChargingParam.getKeyword().trim());
}
+ //鎺掑簭瀛楁
+ String orderByResult = "t1.c3_id";
+ //姝e簭銆佸�掑彊
+ String orderBySeq = OrderByEnums.ASC.getCode();
+ if (order != null) {
+ switch (order) {
+ case 1:
+ orderByResult = OrderByEnums.CHARGE_POLE_CREATE_TIME.getCode();
+ break;
+ default:
+ }
+ }
+ if (seq != null) {
+ switch (seq) {
+ case 1:
+ orderBySeq = " ASC";
+ break;
+ case 2:
+ orderBySeq = " DESC";
+ break;
+ default:
+ break;
+ }
+ }
+ //鎺掑簭鏂瑰紡
+ String orderBy = orderByResult + " " + orderBySeq;
List<C3ChargingBo> c3ChargingBoList;
if (SecurityUtils.getClientId() == null) {
- c3ChargingBoList = c3mChargingMapper.listC3mChargingDto(c3ChargingParam.getKeyword(), null);
+ c3ChargingBoList = c3mChargingMapper.listC3mChargingDto(c3ChargingParam.getKeyword(), null, orderBy);
} else {
- c3ChargingBoList = c3mChargingMapper.listC3mChargingDto(c3ChargingParam.getKeyword(), SecurityUtils.getUserId());
+ c3ChargingBoList = c3mChargingMapper.listC3mChargingDto(c3ChargingParam.getKeyword(), SecurityUtils.getUserId(), orderBy);
}
+ //鍦ㄧ嚎鏁伴噺
+ 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, "c3_id ASC");
+ } else {
+ c3ChargingBoList = c3mChargingMapper.listC3mChargingDto(null, SecurityUtils.getUserId(), "c3_id ASC");
}
return c3ChargingBoList;
}
@@ -239,7 +317,7 @@
chargingDto.setC3Id(one.getC3Id());
//C3Mac
chargingDto.setC3Mac(one.getC3Mac());
- //鍦ㄧ嚎鐘舵��
+ //鍦ㄧ嚎鐘舵�� 1.绌洪棽 2.鍏呯數涓� 3.鍏呯數涓柇锛岀瓑寰呮湇鍔″櫒纭 4.鍏呯數缁撴潫锛岀瓑寰呮湇鍔″櫒纭 5.鏈夋晠闅� 6.涓庡厖鐢垫々瀵规帴涓�
chargingDto.setStatusBit(Integer.valueOf(beatDataPackage.getStatusBit()));
//鐢靛帇
chargingDto.setGridVoltage(beatDataPackage.getGridVoltage());
@@ -249,6 +327,9 @@
chargingDto.setDeviceTemperature(beatDataPackage.getDeviceTemperature());
//鐏潌ID
chargingDto.setPoleId(pole.getId());
+ //璐圭巼
+ BigDecimal bigDecimal = SpringContextHolder.getBean(C3mChargingChargeService.class).getchargeDecimalByC3id(one.getC3Id());
+ chargingDto.setRate(bigDecimal);
}
return chargingDto;
@@ -361,7 +442,7 @@
if (order == null) {
throw new BusinessException("鍏呯數妗╂病鏈夎繘琛屼腑鐨勮鍗�");
}
- if (!openId.equals(order.getOrderId())) {
+ if (!openId.equals(order.getUserCode())) {
throw new BusinessException("涓嶈兘鎿嶄綔涓嶅睘浜庢偍鐨勮鍗�");
}
@@ -745,13 +826,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()) {
@@ -765,6 +846,7 @@
} else {
throw new BusinessException("鏁版嵁鏍¢獙閿欒锛岃閲嶆柊璇锋眰");
}
+
}
/**
@@ -800,6 +882,40 @@
}
/**
+ * 璁剧疆璐圭巼
+ *
+ * @param c3Mac
+ * @param list
+ * @return
+ */
+ public String setRate(String c3Mac, List<C3mChargingCharge> list) {
+ if (StringUtil.strIsNullOrEmpty(c3Mac)) {
+ throw new BusinessException("C3Mac鍦板潃涓嶈兘涓虹┖锛�");
+ }
+ if (list.isEmpty()) {
+ throw new BusinessException("璐圭巼鏁版嵁涓嶈兘涓虹┖锛�");
+ }
+ C3SetRateReqInnerFrame c3SetRateReqInnerFrame = new C3SetRateReqInnerFrame(c3Mac, list);
+
+ A5Frame a5Frame = new A5Frame(A5OrderEnum.REQUEST_C3_DATA.getCode(), c3SetRateReqInnerFrame);
+ System.out.println(a5Frame + " -----a5Frame");
+ C3mCharging c3mCharging = getOne(Wrappers.lambdaQuery(C3mCharging.class).eq(C3mCharging::getC3Mac, c3Mac));
+ if (c3mCharging == null) {
+ throw new BusinessException("C3鍏呯數妗╃‖浠秏cu_udid涓嶅瓨鍦�");
+ }
+ CommonFrame commonFrame = MainBoardInvokeSyncService.getInstance().sendRRPC(c3mCharging.getPoleDevicesCode(), a5Frame);
+ StoreOperationRecordsUtils.storeInnerFrameData(c3Mac, "C3甯�-璁剧疆璐圭巼", a5Frame, commonFrame);
+ System.out.println(commonFrame + " -----commonFrame");
+
+ A5C3OperationReportInnerFrame operationReportInnerFrame = new A5C3OperationReportInnerFrame().transformFrame(commonFrame.getPayload());
+ if (operationReportInnerFrame.isValidate()) {
+ return operationReportInnerFrame.getState();
+ } else {
+ throw new BusinessException("鏁版嵁鏍¢獙閿欒锛岃閲嶆柊璇锋眰");
+ }
+ }
+
+ /**
* 鏁呴殰鐮佷笂鎶ユ竻闄�
*
* @param c3Mac
--
Gitblit v1.9.3