diff --git a/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/mapper/XhpcTerminalMapper.java b/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/mapper/XhpcTerminalMapper.java index 81ec08df..f99f011d 100644 --- a/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/mapper/XhpcTerminalMapper.java +++ b/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/mapper/XhpcTerminalMapper.java @@ -114,5 +114,5 @@ public interface XhpcTerminalMapper { * @param chargingStationId * @return */ - List getTerminal(@Param("chargingStationId") Long chargingStationId); + List getTerminal(@Param("chargingStationId") Long chargingStationId,@Param("status") Integer status); } diff --git a/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/IXhpcChargingStationService.java b/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/IXhpcChargingStationService.java index 6bce0bbb..e6e20a14 100644 --- a/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/IXhpcChargingStationService.java +++ b/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/IXhpcChargingStationService.java @@ -171,4 +171,20 @@ public interface IXhpcChargingStationService { */ void extracted(Integer status, Long chargingStationId); + /** + * 终端状态(所有状态集合) + * @param map + * @param chargingStationId + * @return + */ + Map getTerminalStatusSum(Map map, Long chargingStationId,Integer status); + + + /** + * 单个终端状态(所有状态集合) + * @param serialNumber + * @return + */ + Integer getTerminalStatus(String serialNumber); + } diff --git a/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/IXhpcTerminalService.java b/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/IXhpcTerminalService.java index 4ef98274..e4ec387f 100644 --- a/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/IXhpcTerminalService.java +++ b/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/IXhpcTerminalService.java @@ -68,8 +68,9 @@ public interface IXhpcTerminalService { /** * 根据电站获取终端的编号 * @param chargingStationId + * @param status 状态(0启用 1停用) * @return */ - List getTerminal(Long chargingStationId); + List getTerminal(Long chargingStationId,Integer status); } diff --git a/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcChargingPileServiceImpl.java b/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcChargingPileServiceImpl.java index c9ec20d3..b35c3022 100644 --- a/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcChargingPileServiceImpl.java +++ b/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcChargingPileServiceImpl.java @@ -36,7 +36,7 @@ public class XhpcChargingPileServiceImpl implements IXhpcChargingPileService { @Autowired private XhpcImgMapper xhpcImgMapper; @Autowired - private XhpcChargingStationMapper xhpcChargingStationMapper; + private IXhpcChargingStationService xhpcChargingStationService; //字母集合 private static Map letterMap; @@ -127,7 +127,7 @@ public class XhpcChargingPileServiceImpl implements IXhpcChargingPileService { //获取场站名称: - String chargingStationName = xhpcChargingStationMapper.selectXhpcChargingStationById(xhpcTerminal.getChargingStationId()).getName(); + String chargingStationName = xhpcChargingStationService.selectXhpcChargingStationById(xhpcTerminal.getChargingStationId()).getName(); //生成最终的完整图片,并上传 QrImgUtils.uploadImg(xhpcTerminal, xhpcTerminal.getSerialNumber(),environment,xhpcImgMapper,chargingStationName,i,letterMap,name); @@ -177,6 +177,13 @@ public class XhpcChargingPileServiceImpl implements IXhpcChargingPileService { //终端信息 Map map = new HashMap<>(); List> list = xhpcChargingPileMapper.selectXhpcTerminalList(chargingPileId); + if(list !=null && list.size()>0){ + for (int i = 0; i < list.size(); i++) { + Map listMap =list.get(i); + Integer pileSerialNumber = xhpcChargingStationService.getTerminalStatus(listMap.get("serialNumber").toString()); + listMap.put("workStatus",pileSerialNumber); + } + } map.put("chargingPile", xhpc); map.put("terminal", list); return AjaxResult.success(map); diff --git a/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcChargingStationServiceImpl.java b/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcChargingStationServiceImpl.java index 10d1b415..e3216d4a 100644 --- a/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcChargingStationServiceImpl.java +++ b/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcChargingStationServiceImpl.java @@ -83,40 +83,13 @@ public class XhpcChargingStationServiceImpl implements IXhpcChargingStationServi if (xhpcRateTime != null) { map.putAll(xhpcRateTime); } - //获取桩的统计.redis 数据 - List terminal = xhpcTerminalService.getTerminal(chargingStationId); - int offLine =0;//离线 - int fault =0;//故障 - int freeTime =0;//空闲 - int charge =0;//充电 - int unknown =0;//未知 - if(terminal !=null && terminal.size()>0){ - for (String st:terminal) { - Map cacheMap = redisService.getCacheMap("gun:" + st); - if(!cacheMap.isEmpty()){ - if ("离线".equals(cacheMap.get("status").toString())){ - offLine++; - }else if("故障".equals(cacheMap.get("status").toString())){ - fault++; - }else if("空闲".equals(cacheMap.get("status").toString())){ - freeTime++; - }else{ - charge++; - } - }else{ - unknown++; - } - } - } - map.put("offLine",offLine); - map.put("fault",fault); - map.put("freeTime",freeTime); - map.put("charge",charge); - map.put("unknown",unknown); + map =getTerminalStatusSum(map, chargingStationId,0); } return list; } + + /** * 新增电站 * @@ -575,6 +548,8 @@ public class XhpcChargingStationServiceImpl implements IXhpcChargingStationServi if (type == 2) { //统计终端(充redis获取终端信息) + map =getTerminalStatusSum(map, chargingStationId,0); + map =getTerminalStatusSum(map, chargingStationId,1); map.putAll(xhpcChargingStationMapper.getXhpcRateTimeOrderStatistics(chargingStationId)); } return map; @@ -1050,6 +1025,82 @@ public class XhpcChargingStationServiceImpl implements IXhpcChargingStationServi return number; } + @Override + public Map getTerminalStatusSum(Map map, Long chargingStationId,Integer status) { + + //获取桩的统计.redis 数据 + List terminal = xhpcTerminalService.getTerminal(chargingStationId,status); + int offLine =0;//离线 + int fault =0;//故障 + int freeTime =0;//空闲 + int charge =0;//充电 + int unknown =0;//未知 + if(terminal !=null && terminal.size()>0){ + for (String st:terminal) { + Map cacheMap = redisService.getCacheMap("gun:" + st); + if(!cacheMap.isEmpty()){ + if ("离线".equals(cacheMap.get("status").toString())){ + offLine++; + }else if("故障".equals(cacheMap.get("status").toString())){ + fault++; + }else if("空闲".equals(cacheMap.get("status").toString())){ + freeTime++; + }else{ + charge++; + } + }else{ + unknown++; + } + } + } + if(status==0){ + map.put("offLine",offLine); + map.put("fault",fault); + map.put("freeTime",freeTime); + map.put("charge",charge); + map.put("unknown",unknown); + }else{ + map.put("notOffLine",offLine); + map.put("notFault",fault); + map.put("notFreeTime",freeTime); + map.put("notCharge",charge); + map.put("notUnknown",unknown); + } + + + return map; + } + + @Override + public Integer getTerminalStatus(String serialNumber) { + Integer status =0; + //终端状态用 redis数据 + if(!"".equals(serialNumber) && serialNumber!=null){ + Map cacheMap =redisService.getCacheMap("gun:"+serialNumber); + if(!cacheMap.isEmpty()){ + if ("离线".equals(cacheMap.get("status").toString())){ + status =0; + }else if("故障".equals(cacheMap.get("status").toString())){ + status =1; + }else if("空闲".equals(cacheMap.get("status").toString())){ + if("是".equals(cacheMap.get("vehicleGunStatus").toString())){ + status =4; + }else{ + status =2; + } + }else{ + //充电桩 + status =3; + } + }else{ + status =5; + } + }else{ + status =5; + } + return status; + } + public static void main(String[] args) { //时间差 // String startTime="01:00:00"; diff --git a/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcTerminalServiceImpl.java b/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcTerminalServiceImpl.java index 5bcdfc88..30ccc3d7 100644 --- a/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcTerminalServiceImpl.java +++ b/xhpc-modules/xhpc-charging-station/src/main/java/com/xhpc/charging/station/service/XhpcTerminalServiceImpl.java @@ -24,6 +24,9 @@ public class XhpcTerminalServiceImpl implements IXhpcTerminalService { @Autowired private IXhpcRateTimeService xhpcRateTimeService; + @Autowired + private IXhpcChargingStationService xhpcChargingStationService; + /** * PC端页面统计 * @@ -39,7 +42,16 @@ public class XhpcTerminalServiceImpl implements IXhpcTerminalService { @Override public List> getXhpcTerminalList(String serialNumber, Integer type, Integer status, String workStatus, Long chargingStationId) { - return xhpcTerminalMapper.getXhpcTerminalList(serialNumber, type, status, workStatus, chargingStationId); + List> list = xhpcTerminalMapper.getXhpcTerminalList(serialNumber, type, status, workStatus, chargingStationId); + if(list !=null && list.size()>0){ + for (int i = 0; i map = list.get(i); + //状态 + Integer pileSerialNumber = xhpcChargingStationService.getTerminalStatus(map.get("serialNumber").toString()); + map.put("workStatus",pileSerialNumber); + } + } + return list; } @Override @@ -125,8 +137,8 @@ public class XhpcTerminalServiceImpl implements IXhpcTerminalService { } @Override - public List getTerminal(Long chargingStationId) { - return xhpcTerminalMapper.getTerminal(chargingStationId); + public List getTerminal(Long chargingStationId,Integer status) { + return xhpcTerminalMapper.getTerminal(chargingStationId,status); } } diff --git a/xhpc-modules/xhpc-charging-station/src/main/resources/mapper/XhpcChargingPileMapper.xml b/xhpc-modules/xhpc-charging-station/src/main/resources/mapper/XhpcChargingPileMapper.xml index ed706952..2b549d80 100644 --- a/xhpc-modules/xhpc-charging-station/src/main/resources/mapper/XhpcChargingPileMapper.xml +++ b/xhpc-modules/xhpc-charging-station/src/main/resources/mapper/XhpcChargingPileMapper.xml @@ -359,12 +359,16 @@ select te.terminal_id as terminalId, + te.charging_station_id as chargingStationId, te.name as terminalName, ct.name as chargingStationName, te.pile_serial_number as pileSerialNumber, cp.power as power, cp.serial_number as serialNumber, + cp.brand_model as brandModel, + cp.type as pileType, te.status as status, te.work_status as workStatus from xhpc_terminal as te @@ -375,6 +378,6 @@ diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/api/XhpcChargeOrderController.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/api/XhpcChargeOrderController.java index 9f7a2b23..bb5c6116 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/api/XhpcChargeOrderController.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/api/XhpcChargeOrderController.java @@ -158,7 +158,7 @@ public class XhpcChargeOrderController extends BaseController { String c = orderMessage.get("electricCurrent").toString(); String v = orderMessage.get("voltage").toString(); BigDecimal decimal1 = new BigDecimal(v).multiply(new BigDecimal(c)).setScale(2, BigDecimal.ROUND_DOWN); - orderMessage.put("power",decimal1); + orderMessage.put("power",decimal1.divide(new BigDecimal(1000),2,BigDecimal.ROUND_DOWN)); }catch (Exception e){ e.printStackTrace(); } diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcRealTimeOrderServiceImpl.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcRealTimeOrderServiceImpl.java index 40717d59..aa3889ec 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcRealTimeOrderServiceImpl.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcRealTimeOrderServiceImpl.java @@ -651,7 +651,7 @@ public class XhpcRealTimeOrderServiceImpl implements IXhpcRealTimeOrderService { data.put("chargingTime",xhpcRealTimeOrder.getChargingTime()); data.put("electricCurrent",c); data.put("voltage", v); - data.put("power", decimal1); + data.put("power", decimal1.divide(new BigDecimal(1000),2,BigDecimal.ROUND_DOWN)); data.put("chargingDegree", chargingDegree); data.put("remainingTime",xhpcRealTimeOrder.getRemainingTime()); data.put("serialNumber",orderNo.substring(0,16));