ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/governmentCloud/UploadDataTaskUtil.java
@@ -2,6 +2,7 @@ import com.alibaba.fastjson.JSONObject; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.DateUtils; import com.ruoyi.integration.api.model.*; import com.ruoyi.jianguan.mongodb.service.*; @@ -38,7 +39,7 @@ /** * 每天的9点执行的任务 */ @Scheduled(cron = "0 0 9 * * *") @Scheduled(cron = "0 0 10 * * *") // @Scheduled(fixedRate = 60000) public void taskDay(){ try { @@ -91,12 +92,12 @@ customthreadPoolExecutor.execute(() -> { if (uploadRealTimeMonitoringDataList != null && uploadRealTimeMonitoringDataList.size() > 0) { for (UploadRealTimeMonitoringData uploadRealTimeMonitoringData : uploadRealTimeMonitoringDataList) { log.info("线程:{},办理业务", Thread.currentThread().getName()); JSONObject jsonObject = new JSONObject(); jsonObject.put("device_code", uploadRealTimeMonitoringData.getCharging_pile_code()); jsonObject.put("report_time", System.currentTimeMillis()); jsonObject.put("properties", uploadRealTimeMonitoringData); mqttPushUtil.pushChargePileData(TopicConstants.CHARGE_PILE_CODE.replace("CHARGE_PILE_CODE", uploadRealTimeMonitoringData.getCharging_pile_code()), jsonObject.toJSONString()); R<String> chargePileCode = mqttPushUtil.pushChargePileData(TopicConstants.CHARGE_PILE_CODE.replace("CHARGE_PILE_CODE", uploadRealTimeMonitoringData.getCharging_pile_code()), jsonObject.toJSONString()); log.info("返回结果:{}", chargePileCode.getData()); log.info("数据:{}", uploadRealTimeMonitoringData.getCharging_pile_code()); log.info("数据:{}", jsonObject.toJSONString()); } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -1035,7 +1035,7 @@ } if(3 == rechargePaymentType){ RefundReq dto = new RefundReq(); dto.setOutTradeNo(chargingOrder.getCode()); dto.setOutTradeNo(chargingOrder.getRechargeSerialNumber()); dto.setOutRequestNo(chargingOrderRefund.getCode()); dto.setRefundAmount(rechargeAmount.toString()); dto.setRefundReason("充电失败,取消充电订单"); @@ -1132,7 +1132,7 @@ } if(3 == rechargePaymentType){ RefundReq dto = new RefundReq(); dto.setOutTradeNo(chargingOrder.getCode()); dto.setOutTradeNo(chargingOrder.getRechargeSerialNumber()); dto.setOutRequestNo(chargingOrderRefund.getCode()); dto.setRefundAmount(money.toString()); dto.setRefundReason("充电完成退款"); @@ -2732,7 +2732,7 @@ } if(3 == rechargePaymentType){ RefundReq dto = new RefundReq(); dto.setOutTradeNo(chargingOrder.getCode()); dto.setOutTradeNo(chargingOrder.getRechargeSerialNumber()); dto.setOutRequestNo(chargingOrderRefund.getRefundCode()); dto.setRefundAmount(refundAmount.toString()); dto.setRefundReason("充电完成退款"); @@ -2949,7 +2949,7 @@ } if(3 == tChargingOrder.getRechargePaymentType()){ RefundReq dto = new RefundReq(); dto.setOutTradeNo(tChargingOrder.getCode()); dto.setOutTradeNo(tChargingOrder.getRechargeSerialNumber()); dto.setOutRequestNo(tChargingOrder.getCode()); dto.setRefundAmount(payOrderQueryDto.getRefundAmount().toString()); dto.setRefundReason("取消订单"); @@ -3029,20 +3029,20 @@ shoppingOrderRefundService.save(chargingOrderRefund); } } if(3 == tChargingOrder.getPaymentType()){ RefundReq dto = new RefundReq(); dto.setOutTradeNo(tChargingOrder.getCode()); dto.setOutRequestNo(tChargingOrder.getCode()); dto.setRefundAmount(payOrderQueryDto.getRefundAmount().toString()); dto.setRefundReason("取消订单"); RefundResp resp = h5AliPaymentClient.refund(dto).getData(); if(null != resp){ tChargingOrder.setRefundStatus(2); tChargingOrder.setRefundAmount((tChargingOrder.getRefundAmount()==null? BigDecimal.valueOf(0) :tChargingOrder.getRefundAmount()).add(payOrderQueryDto.getRefundAmount())); shoppingOrderService.updateById(tChargingOrder); shoppingOrderRefundService.save(chargingOrderRefund); } } // if(3 == tChargingOrder.getPaymentType()){ // RefundReq dto = new RefundReq(); // dto.setOutTradeNo(tChargingOrder.getCode()); // dto.setOutRequestNo(tChargingOrder.getCode()); // dto.setRefundAmount(payOrderQueryDto.getRefundAmount().toString()); // dto.setRefundReason("取消订单"); // RefundResp resp = h5AliPaymentClient.refund(dto).getData(); // if(null != resp){ // tChargingOrder.setRefundStatus(2); // tChargingOrder.setRefundAmount((tChargingOrder.getRefundAmount()==null? BigDecimal.valueOf(0) :tChargingOrder.getRefundAmount()).add(payOrderQueryDto.getRefundAmount())); // shoppingOrderService.updateById(tChargingOrder); // shoppingOrderRefundService.save(chargingOrderRefund); // } // } } @@ -3108,20 +3108,20 @@ vipOrderRefundService.save(chargingOrderRefund); } } if(3 == tChargingOrder.getPaymentType()){ RefundReq dto = new RefundReq(); dto.setOutTradeNo(tChargingOrder.getCode()); dto.setOutRequestNo(tChargingOrder.getCode()); dto.setRefundAmount(payOrderQueryDto.getRefundAmount().toString()); dto.setRefundReason("取消订单"); RefundResp resp = h5AliPaymentClient.refund(dto).getData(); if(null != resp){ tChargingOrder.setRefundStatus(2); tChargingOrder.setRefundAmount((tChargingOrder.getRefundAmount()==null? BigDecimal.valueOf(0) :tChargingOrder.getRefundAmount()).add(payOrderQueryDto.getRefundAmount())); vipOrderService.updateById(tChargingOrder); vipOrderRefundService.save(chargingOrderRefund); } } // if(3 == tChargingOrder.getPaymentType()){ // RefundReq dto = new RefundReq(); // dto.setOutTradeNo(tChargingOrder.getCode()); // dto.setOutRequestNo(tChargingOrder.getCode()); // dto.setRefundAmount(payOrderQueryDto.getRefundAmount().toString()); // dto.setRefundReason("取消订单"); // RefundResp resp = h5AliPaymentClient.refund(dto).getData(); // if(null != resp){ // tChargingOrder.setRefundStatus(2); // tChargingOrder.setRefundAmount((tChargingOrder.getRefundAmount()==null? BigDecimal.valueOf(0) :tChargingOrder.getRefundAmount()).add(payOrderQueryDto.getRefundAmount())); // vipOrderService.updateById(tChargingOrder); // vipOrderRefundService.save(chargingOrderRefund); // } // } } return R.ok(); } ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TScreenContentServiceImpl.java
@@ -133,13 +133,17 @@ List<LocalDate> dates = new ArrayList<>(); List<Double> values = new ArrayList<>(); LocalDate today = LocalDate.now(); ArrayList<Map<String, Object>> monthEnergy = KsolarUtils.getMonthEnergy(today.minusDays(7).toString().substring(0, 7), today.minusDays(1).toString().substring(0, 7)); // 生成每天数据 for (int i = 7; i >= 1; i--) {//升序 LocalDate day = today.minusDays(i); //统计 dates.add(day); Double value = KsolarUtils.getTodayEnergy(day.toString()); // 100-250 values.add(value); Map<String, Object> stringObjectMap = monthEnergy.stream().filter(e -> e.get("time").toString().contains(day.toString())).findFirst().orElse(null); if(stringObjectMap!=null){ values.add(Double.valueOf(stringObjectMap.get("value").toString())); }else { values.add(0.0); } } vo.setDates(dates); vo.setValues(values); ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/util/EnergyRefreshService.java
@@ -48,7 +48,7 @@ private BigDecimal currentPhaseDischarge = BigDecimal.ZERO; // 定时任务方法 - 能量刷新 @Scheduled(cron = "0 * * * * ?") // 每分钟执行一次 // @Scheduled(cron = "0 * * * * ?") // 每分钟执行一次 public synchronized void refreshValue() { LocalTime now = LocalTime.now(); ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/util/KsolarUtils.java
@@ -19,10 +19,7 @@ import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Random; import java.util.*; /** @@ -34,9 +31,17 @@ private static String token; private static String accessToken; private static List<String> stationIds= Arrays.asList("2025060710462417","2025060711331323","2025060715425437","2025060716010425"); /** * 获取今日总发电量 * @param time * @return */ public static Double getTodayEnergy(String time) { try { HttpRequest get = HttpUtil.createGet("http://111.230.136.62:8092/station/list/earn"); @@ -60,7 +65,46 @@ return getTodayEnergy(time); } } public static ArrayList<Map<String, Object>> getMonthEnergy(String time,String time1) { ArrayList<Map<String, Object>> list = new ArrayList<>(); try { HttpRequest get = HttpUtil.createGet("http://111.230.136.62:8092/protocol/user/statistic/elec/chart"); get.header("Authorization", "Bearer "+token); get.form("stime", time); get.form("attribId", "201"); HttpResponse execute = get.execute(); String body = execute.body(); if(body.contains("code")){ token = token(); return getMonthEnergy(time,time1); } JSONArray jsonArray = JSONArray.parseArray(body); for (Object o1 : jsonArray) { HashMap<String, Object> stringObjectHashMap = new HashMap<>(); JSONObject jsonObject = JSONObject.parseObject(o1.toString()) ; stringObjectHashMap.put("time", jsonObject.getString("saveTime")); stringObjectHashMap.put("value", jsonObject.getString("attribValue")); list.add(stringObjectHashMap); } // 相同月份 if(!time.equals(time1)){ list.addAll(getMonthEnergy(time1,time1)); } return list; } catch (Exception e) { e.printStackTrace(); token = token(); return getMonthEnergy(time,time1); } } /** * 光伏累计 * @return */ public static Double getAllEnergy(String time) { try { HttpRequest get = HttpUtil.createGet("http://111.230.136.62:8092/station/list/earn"); @@ -100,11 +144,13 @@ return divide; } private static Double getYearAllEnergy(String stationId) { try { HttpRequest get = HttpUtil.createGet("http://111.230.136.62:8092/protocol/station/statistic/elec/chart"); get.header("Authorization", "Bearer "+token); get.form("stationId", "2025060710462417"); get.form("stationId", stationId); get.form("attribId", "202"); get.form("stime",LocalDate.now().getYear()+"" ); HttpResponse execute = get.execute(); @@ -118,7 +164,7 @@ } catch (Exception e) { e.printStackTrace(); token = token(); return getYearAllEnergy(LocalDate.now().getYear()+""); return getYearAllEnergy(stationId); } } @@ -139,6 +185,52 @@ } public static String getAccessToken(){ HttpRequest post = HttpRequest.post("https://www.zsdcloud.cn:8443/openApi/getAccessToken.action?accessId=87bde117-1f29-4371-8d4d-82324d17ddc3"); HttpResponse execute = post.execute(); String body = execute.body(); JSONObject jsonObject = JSONObject.parseObject(body); return jsonObject.getString("result"); } /** * 消纳数据 * @return */ public static String getElectricity(){ String value = "0"; HttpRequest post = HttpRequest.post("https://www.zsdcloud.cn:8443/openApi/equipment/select.action"); post.form("token", accessToken); post.form("keyCode", "869916072003947"); post.form("version", "V2"); HttpResponse execute = post.execute(); String body = execute.body(); JSONObject jsonObject = JSONObject.parseObject(body); String string = jsonObject.get("statusCode").toString(); if(!string.equals("200")){ accessToken = getAccessToken(); return getElectricity(); } String string1 = jsonObject.getString("result"); JSONObject jsonObject1 = JSONObject.parseObject(string1); String realInfo = jsonObject1.getString("realInfo"); JSONArray jsonArray = JSONArray.parseArray(realInfo); for (Object o : jsonArray) { JSONObject jsonObject2 = JSONObject.parseObject(o.toString()); if(jsonObject2.get("Name").toString().equals("累积日充电量")){ value= jsonObject2.get("Value").toString(); break; } } return value; } public static void main(String[] args) throws Exception { String electricity = getElectricity(); System.out.println(electricity); } } ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/ali/v2/H5PayUtil.java
@@ -146,7 +146,7 @@ //切记alipaypublickey是支付宝的公钥,请去open.alipay.com对应应用下查看。 //boolean AlipaySignature.rsaCheckV1(Map<String, String> params, String publicKey, String charset, String sign_type) Map<String, String> map = new HashMap<>(); System.err.println("返回码"+params); System.err.println("H5返回码"+params); if (params.get("trade_status").equals("TRADE_SUCCESS")){ String out_trade_no = params.get("out_trade_no"); String subject = params.get("subject"); @@ -158,7 +158,6 @@ map.put("total_amount", total_amount); map.put("trade_no", trade_no);//支付宝交易号 map.put("passback_params", passback_params);//回传参数 System.err.println("回调map"); return map; }else{ return null; ruoyi-service/ruoyi-payment/src/main/java/com/ruoyi/payment/controller/H5AliPayController.java
@@ -9,6 +9,7 @@ import com.ruoyi.payment.api.model.RefundResp; import com.ruoyi.payment.api.vo.AliPaymentReq; import com.ruoyi.payment.api.vo.AliQueryOrder; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.web.bind.annotation.*; @@ -22,6 +23,7 @@ * @author zhibing.pu * @Date 2024/8/24 14:29 */ @Slf4j @RestController @RequestMapping("/aliH5") public class H5AliPayController { @@ -92,6 +94,7 @@ public void chargingOrderALICallback(HttpServletRequest request, HttpServletResponse response) { try { Map<String, String> callback = h5PayUtil.alipayCallback(request); log.info("H5支付回调:{}", callback); if(null != callback){ String out_trade_no = callback.get("out_trade_no"); String attach = callback.get("subject"); @@ -101,7 +104,7 @@ switch (substring){ case "CD": chargingOrderClient.chargingOrderALIH5Callback(out_trade_no, transaction_id, attach); System.err.println("----充电支付回调"); System.err.println("----H5充电支付回调"); break; } PrintWriter writer = response.getWriter();