diff --git a/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java b/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java index aefdb4a32..bfb80469f 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java @@ -35,6 +35,7 @@ import com.jsowell.common.util.DateUtils; import com.jsowell.common.util.SecurityUtils; import com.jsowell.common.util.StringUtils; import com.jsowell.common.util.bean.BeanUtils; +import com.jsowell.common.util.spring.SpringUtils; import com.jsowell.pile.domain.*; import com.jsowell.pile.dto.*; import com.jsowell.pile.service.*; @@ -54,6 +55,7 @@ import org.apache.commons.collections4.CollectionUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -146,6 +148,9 @@ public class OrderService { @Resource private RedisCache redisCache; + // 引入线程池 + private ThreadPoolTaskExecutor executor = SpringUtils.getBean("threadPoolTaskExecutor"); + /** * 生成订单 * @@ -575,7 +580,7 @@ public class OrderService { } catch (Exception e) { log.error("异步发送获取实时数据指令error", e); } - }); + }, executor); } vo.setOrderCode(orderBasicInfo.getOrderCode()); @@ -680,7 +685,7 @@ public class OrderService { } catch (Exception e) { log.error("后管查询订单详情时把redis中的实时数据存到表发生异常", e); } - }); + }, executor); return vo; } @@ -805,7 +810,7 @@ public class OrderService { } catch (Exception e) { log.error("人工结算订单 推送第三方平台订单信息error, orderCode:{}", orderBasicInfo.getOrderCode(), e); } - }); + }, executor); return true; } @@ -1190,7 +1195,7 @@ public class OrderService { } catch (Exception e) { log.error("更新冻结金额 支付成功后全部冻结error", e); } - }); + }, executor); // 支付订单成功 PayOrderSuccessCallbackDTO callbackDTO = PayOrderSuccessCallbackDTO.builder() @@ -1209,7 +1214,7 @@ public class OrderService { } catch (Exception e) { log.error("异步推送第三方平台启动充电逻辑 error", e); } - }); + }, executor); } else if (StringUtils.equals(scenarioType, ScenarioEnum.BALANCE.getValue())) { // 2-充值余额 // 充值余额成功 UpdateMemberBalanceDTO dto = new UpdateMemberBalanceDTO(); diff --git a/jsowell-admin/src/main/java/com/jsowell/service/PileService.java b/jsowell-admin/src/main/java/com/jsowell/service/PileService.java index 39c0de80f..8bb989f9f 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/PileService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/PileService.java @@ -11,6 +11,7 @@ import com.jsowell.common.enums.DelFlagEnum; import com.jsowell.common.enums.ykc.*; import com.jsowell.common.exception.BusinessException; import com.jsowell.common.util.*; +import com.jsowell.common.util.spring.SpringUtils; import com.jsowell.pile.domain.*; import com.jsowell.pile.dto.*; import com.jsowell.pile.service.*; @@ -27,6 +28,7 @@ import org.apache.commons.lang3.RandomStringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -41,6 +43,9 @@ import java.util.stream.Collectors; public class PileService { private final Logger log = LoggerFactory.getLogger(PileService.class); + // 引入线程池 + private ThreadPoolTaskExecutor executor = SpringUtils.getBean("threadPoolTaskExecutor"); + @Autowired private TransactionService pileTransactionService; @@ -156,7 +161,7 @@ public class PileService { /** * 前端扫码跳转接口 */ - public AppletPileDetailVO getPileDetailByPileSn(String param) throws Exception { + public AppletPileDetailVO getPileDetailByPileSnV2(String param) throws Exception { AppletPileDetailVO vo = null; log.info("查询充电枪口详情-getPileDetailByPileSn, param:{}", param); if (StringUtils.isBlank(param)) { @@ -200,7 +205,7 @@ public class PileService { return vo; } - public AppletPileDetailVO getPileDetailByPileSnOld(String param) throws Exception { + public AppletPileDetailVO getPileDetailByPileSn(String param) throws Exception { AppletPileDetailVO vo = null; log.info("查询充电枪口详情-getPileDetailByPileSn, param:{}", param); if (StringUtils.isBlank(param)) { @@ -231,16 +236,16 @@ public class PileService { } // 查询充电桩下枪口信息 - CompletableFuture> connectorInfoListFuture = FutureUtil.supplyAsync(() -> pileConnectorInfoService.selectConnectorInfoList(pileSn)); - log.info("查询充电枪口详情-supplyAsync-selectConnectorInfoList:{}", connectorInfoListFuture); + CompletableFuture> connectorInfoListFuture = CompletableFuture.supplyAsync(() -> pileConnectorInfoService.selectConnectorInfoList(pileSn), executor); + // log.info("查询充电枪口详情-supplyAsync-selectConnectorInfoList:{}", connectorInfoListFuture); // 查计费模板信息 - CompletableFuture> billingPriceFuture = FutureUtil.supplyAsync(() -> pileBillingTemplateService.queryBillingPrice(pileInfoVO.getStationId())); - log.info("查询充电枪口详情-supplyAsync-queryBillingPrice:{}", billingPriceFuture); + CompletableFuture> billingPriceFuture = CompletableFuture.supplyAsync(() -> pileBillingTemplateService.queryBillingPrice(pileInfoVO.getStationId()), executor); + // log.info("查询充电枪口详情-supplyAsync-queryBillingPrice:{}", billingPriceFuture); // 查询运营商信息 - CompletableFuture merchantInfoVOFuture = FutureUtil.supplyAsync(() -> pileMerchantInfoService.getMerchantInfoVO(pileInfoVO.getMerchantId())); - log.info("查询充电枪口详情-supplyAsync-getMerchantInfoVO:{}", merchantInfoVOFuture); + CompletableFuture merchantInfoVOFuture = CompletableFuture.supplyAsync(() -> pileMerchantInfoService.getMerchantInfoVO(pileInfoVO.getMerchantId()), executor); + // log.info("查询充电枪口详情-supplyAsync-getMerchantInfoVO:{}", merchantInfoVOFuture); CompletableFuture all = FutureUtil.allOf(connectorInfoListFuture, merchantInfoVOFuture, billingPriceFuture); // .join()和.get()都会阻塞并获取线程的执行情况 diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/LoginRequestHandler.java b/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/LoginRequestHandler.java index 2d47c10fd..9aa2fe819 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/LoginRequestHandler.java +++ b/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/LoginRequestHandler.java @@ -10,6 +10,7 @@ import com.jsowell.common.core.domain.ykc.YKCFrameTypeCode; import com.jsowell.common.util.BytesUtil; import com.jsowell.common.util.StringUtils; import com.jsowell.common.util.YKCUtils; +import com.jsowell.common.util.spring.SpringUtils; import com.jsowell.netty.factory.YKCOperateFactory; import com.jsowell.pile.domain.PileBasicInfo; import com.jsowell.pile.domain.ykcCommond.IssueQRCodeCommand; @@ -20,6 +21,7 @@ import com.jsowell.pile.service.YKCPushCommandService; import io.netty.channel.ChannelHandlerContext; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Component; import java.math.BigDecimal; @@ -42,6 +44,9 @@ public class LoginRequestHandler extends AbstractYkcHandler { private List newProgramVersionList = Lists.newArrayList("c6-30"); + // 引入线程池 + private ThreadPoolTaskExecutor executor = SpringUtils.getBean("threadPoolTaskExecutor"); + @Override public void afterPropertiesSet() throws Exception { YKCOperateFactory.register(type, this); @@ -200,7 +205,7 @@ public class LoginRequestHandler extends AbstractYkcHandler { } catch (Exception e) { e.printStackTrace(); } - }); + }, executor); // 异步发送对时指令 CompletableFuture.runAsync(() -> { @@ -212,7 +217,7 @@ public class LoginRequestHandler extends AbstractYkcHandler { // 对时 ProofreadTimeCommand command = ProofreadTimeCommand.builder().pileSn(pileSn).build(); ykcPushCommandService.pushProofreadTimeCommand(command); - }); + }, executor); // log.info("下面进行下发二维码 pileSn:{}, thread:{}", pileSn, Thread.currentThread().getName()); // 异步发送下发二维码指令 @@ -225,7 +230,7 @@ public class LoginRequestHandler extends AbstractYkcHandler { // 下发二维码 IssueQRCodeCommand issueQRCodeCommand = IssueQRCodeCommand.builder().pileSn(pileSn).build(); ykcPushCommandService.pushIssueQRCodeCommand(issueQRCodeCommand); - }); + }, executor); if (StringUtils.equals("00", internetConnection)) { CompletableFuture.runAsync(() -> { @@ -236,7 +241,7 @@ public class LoginRequestHandler extends AbstractYkcHandler { } catch (Exception e) { log.error("更新充电桩sim卡信息失败pileSn:{}, iccid:{}", pileSn, iccid, e); } - }); + }, executor); } } @@ -249,7 +254,7 @@ public class LoginRequestHandler extends AbstractYkcHandler { } catch (Exception e) { log.error("保存报文失败pileSn:{}", pileSn, e); } - }); + }, executor); // 消息体 byte[] messageBody = Bytes.concat(pileSnByte, flag); diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/RemoteStartChargingRequestHandler.java b/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/RemoteStartChargingRequestHandler.java index c9889e177..af65b4865 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/RemoteStartChargingRequestHandler.java +++ b/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/RemoteStartChargingRequestHandler.java @@ -7,6 +7,7 @@ import com.jsowell.common.enums.ykc.ChargingFailedReasonEnum; import com.jsowell.common.util.BytesUtil; import com.jsowell.common.util.StringUtils; import com.jsowell.common.util.YKCUtils; +import com.jsowell.common.util.spring.SpringUtils; import com.jsowell.netty.factory.YKCOperateFactory; import com.jsowell.pile.domain.OrderBasicInfo; import com.jsowell.pile.service.OrderBasicInfoService; @@ -14,6 +15,7 @@ import com.jsowell.thirdparty.common.CommonService; import io.netty.channel.ChannelHandlerContext; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Component; import java.util.concurrent.CompletableFuture; @@ -35,6 +37,9 @@ public class RemoteStartChargingRequestHandler extends AbstractYkcHandler { @Autowired private CommonService commonService; + // 引入线程池 + private ThreadPoolTaskExecutor executor = SpringUtils.getBean("threadPoolTaskExecutor"); + @Override public void afterPropertiesSet() throws Exception { YKCOperateFactory.register(type, this); @@ -121,7 +126,7 @@ public class RemoteStartChargingRequestHandler extends AbstractYkcHandler { log.error("统一推送第三方平台订单信息error, ", e); } } - }); + }, executor); return null; } } diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/TransactionRecordsRequestHandler.java b/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/TransactionRecordsRequestHandler.java index 3539dcfdd..6de05e42b 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/TransactionRecordsRequestHandler.java +++ b/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/TransactionRecordsRequestHandler.java @@ -15,6 +15,7 @@ import com.jsowell.common.util.DateUtils; import com.jsowell.common.util.StringUtils; import com.jsowell.common.util.YKCUtils; import com.jsowell.common.util.id.IdUtils; +import com.jsowell.common.util.spring.SpringUtils; import com.jsowell.netty.factory.YKCOperateFactory; import com.jsowell.pile.domain.OrderBasicInfo; import com.jsowell.pile.domain.PileBasicInfo; @@ -25,6 +26,7 @@ import com.jsowell.thirdparty.common.CommonService; import io.netty.channel.ChannelHandlerContext; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Component; import java.util.Date; @@ -46,6 +48,9 @@ public class TransactionRecordsRequestHandler extends AbstractYkcHandler { private final String type = YKCUtils.frameType2Str(YKCFrameTypeCode.TRANSACTION_RECORDS_CODE.getBytes()); private final String oldVersionType = YKCUtils.frameType2Str(YKCFrameTypeCode.TRANSACTION_RECORDS_OLD_VERSION_CODE.getBytes()); + // 引入线程池 + private ThreadPoolTaskExecutor executor = SpringUtils.getBean("threadPoolTaskExecutor"); + @Override public void afterPropertiesSet() throws Exception { YKCOperateFactory.register(type, this); @@ -647,7 +652,7 @@ public class TransactionRecordsRequestHandler extends AbstractYkcHandler { } catch (Exception e) { log.error("绑定优惠券 error,", e); } - }); + }, executor); // // 给车辆绑定优惠券 // try { @@ -671,7 +676,7 @@ public class TransactionRecordsRequestHandler extends AbstractYkcHandler { log.error("推送第三方平台订单信息error, ", e); e.printStackTrace(); } - }); + }, executor); // 异步推送第三方平台订单信息V2 CompletableFuture.runAsync(() -> { @@ -681,7 +686,7 @@ public class TransactionRecordsRequestHandler extends AbstractYkcHandler { log.error("推送第三方平台订单信息error, ", e); e.printStackTrace(); } - }); + }, executor); } else { // 平台没有查到订单 orderBasicInfoService.saveAbnormalOrder(data); diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/UploadRealTimeMonitorHandler.java b/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/UploadRealTimeMonitorHandler.java index 3a7cc5714..18c289aa7 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/UploadRealTimeMonitorHandler.java +++ b/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/UploadRealTimeMonitorHandler.java @@ -11,6 +11,7 @@ import com.jsowell.common.enums.ykc.YKCPileFaultReasonEnum; import com.jsowell.common.util.BytesUtil; import com.jsowell.common.util.StringUtils; import com.jsowell.common.util.YKCUtils; +import com.jsowell.common.util.spring.SpringUtils; import com.jsowell.netty.factory.YKCOperateFactory; import com.jsowell.pile.domain.OrderBasicInfo; import com.jsowell.pile.service.OrderBasicInfoService; @@ -19,6 +20,7 @@ import com.jsowell.thirdparty.common.CommonService; import io.netty.channel.ChannelHandlerContext; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Component; import java.util.Date; @@ -44,6 +46,9 @@ public class UploadRealTimeMonitorHandler extends AbstractYkcHandler { YKCOperateFactory.register(oldVersionType, this); } + // 引入线程池 + private ThreadPoolTaskExecutor executor = SpringUtils.getBean("threadPoolTaskExecutor"); + @Autowired private PileBasicInfoService pileBasicInfoService; @@ -320,7 +325,7 @@ public class UploadRealTimeMonitorHandler extends AbstractYkcHandler { } catch (Exception e) { log.error("统一推送第三方平台实时数据 error,", e); } - }); + }, executor); // 异步推送第三方平台实时数据V2 CompletableFuture.runAsync(() -> { @@ -329,7 +334,7 @@ public class UploadRealTimeMonitorHandler extends AbstractYkcHandler { } catch (Exception e) { log.error("统一推送第三方平台实时数据V2 error, ", e); } - }); + }, executor); return null; } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index 219cb7b5d..1d75918a7 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -36,6 +36,7 @@ import com.jsowell.common.util.YKCUtils; import com.jsowell.common.util.bean.BeanUtils; import com.jsowell.common.util.id.IdUtils; import com.jsowell.common.util.id.SnowflakeIdWorker; +import com.jsowell.common.util.spring.SpringUtils; import com.jsowell.pile.domain.*; import com.jsowell.pile.dto.*; import com.jsowell.pile.dto.nanrui.NRQueryOrderDTO; @@ -67,6 +68,7 @@ import org.apache.commons.collections4.CollectionUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -91,6 +93,9 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { private Logger logger = LoggerFactory.getLogger(this.getClass()); + // 引入线程池 + private ThreadPoolTaskExecutor executor = SpringUtils.getBean("threadPoolTaskExecutor"); + @Autowired private OrderBasicInfoMapper orderBasicInfoMapper; @@ -599,7 +604,7 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { // 清缓存 this.cleanCacheByOrderCode(orderBasicInfo.getOrderCode(), orderBasicInfo.getTransactionCode()); int i = orderBasicInfoMapper.updateOrderBasicInfo(orderBasicInfo); - CompletableFuture.runAsync(() -> this.cleanCacheByOrderCode(orderBasicInfo.getOrderCode(), orderBasicInfo.getTransactionCode())); + CompletableFuture.runAsync(() -> this.cleanCacheByOrderCode(orderBasicInfo.getOrderCode(), orderBasicInfo.getTransactionCode()), executor); logger.info("修改订单updateOrderBasicInfo:{}", JSON.toJSONString(orderBasicInfo)); return i; } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileConnectorInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileConnectorInfoServiceImpl.java index 53889caea..6914991e5 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileConnectorInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileConnectorInfoServiceImpl.java @@ -18,6 +18,7 @@ import com.jsowell.common.enums.ykc.ReturnCodeEnum; import com.jsowell.common.exception.BusinessException; import com.jsowell.common.util.DateUtils; import com.jsowell.common.util.StringUtils; +import com.jsowell.common.util.spring.SpringUtils; import com.jsowell.pile.domain.OrderBasicInfo; import com.jsowell.pile.domain.PileBasicInfo; import com.jsowell.pile.domain.PileConnectorInfo; @@ -39,6 +40,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Service; import org.springframework.util.StopWatch; @@ -60,6 +62,10 @@ import java.util.stream.Collectors; @Slf4j @Service public class PileConnectorInfoServiceImpl implements PileConnectorInfoService { + + // 引入线程池 + private ThreadPoolTaskExecutor executor = SpringUtils.getBean("threadPoolTaskExecutor"); + @Autowired private PileConnectorInfoMapper pileConnectorInfoMapper; @@ -619,7 +625,7 @@ public class PileConnectorInfoServiceImpl implements PileConnectorInfoService { redisCache.setCacheObject(redisKey, status, CacheConstants.cache_expire_time_5m); // 异步放缓存 - CompletableFuture.runAsync(() -> statusChange(pileConnectorCode)); + CompletableFuture.runAsync(() -> statusChange(pileConnectorCode), executor); } return num; } @@ -678,7 +684,7 @@ public class PileConnectorInfoServiceImpl implements PileConnectorInfoService { // 异步将此桩正在进行充电的订单状态改为 异常 CompletableFuture.runAsync(() -> { orderBasicInfoService.updateOrderStatusAsAbnormal(pileSn); - }); + }, executor); } // 没有故障或者离线,就是在线状态 diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileMerchantInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileMerchantInfoServiceImpl.java index 744a451b5..352497544 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileMerchantInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileMerchantInfoServiceImpl.java @@ -12,6 +12,7 @@ import com.jsowell.common.util.DateUtils; import com.jsowell.common.util.DictUtils; import com.jsowell.common.util.PageUtils; import com.jsowell.common.util.StringUtils; +import com.jsowell.common.util.spring.SpringUtils; import com.jsowell.pile.domain.PileMerchantInfo; import com.jsowell.pile.dto.CreateMerchantDTO; import com.jsowell.pile.dto.QueryMerchantInfoDTO; @@ -27,6 +28,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -45,6 +47,9 @@ import java.util.stream.Collectors; @Slf4j @Service public class PileMerchantInfoServiceImpl implements PileMerchantInfoService { + // 引入线程池 + private ThreadPoolTaskExecutor executor = SpringUtils.getBean("threadPoolTaskExecutor"); + @Autowired private PileMerchantInfoMapper pileMerchantInfoMapper; @@ -480,7 +485,7 @@ public class PileMerchantInfoServiceImpl implements PileMerchantInfoService { update.setId(Long.parseLong(merchantId)); update.setAppId(finalAppId); updatePileMerchantInfo(update); - }); + }, executor); return appId; } return appId; diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/amap/service/impl/AMapServiceImpl.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/amap/service/impl/AMapServiceImpl.java index d1d69425d..efebf8d5e 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/amap/service/impl/AMapServiceImpl.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/amap/service/impl/AMapServiceImpl.java @@ -8,6 +8,7 @@ import com.google.common.collect.Maps; import com.jsowell.common.constant.Constants; import com.jsowell.common.util.PageUtils; import com.jsowell.common.util.StringUtils; +import com.jsowell.common.util.spring.SpringUtils; import com.jsowell.pile.domain.OrderBasicInfo; import com.jsowell.pile.domain.PileBasicInfo; import com.jsowell.pile.domain.PileStationInfo; @@ -24,6 +25,7 @@ import com.jsowell.thirdparty.amap.service.AMapService; import com.jsowell.thirdparty.amap.util.AMapUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import org.springframework.util.StopWatch; @@ -49,6 +51,9 @@ import java.util.stream.Collectors; @Service public class AMapServiceImpl implements AMapService { + // 引入线程池 + private ThreadPoolTaskExecutor executor = SpringUtils.getBean("threadPoolTaskExecutor"); + @Autowired private PileStationInfoService pileStationInfoService; @@ -309,13 +314,13 @@ public class AMapServiceImpl implements AMapService { stopWatch.start("拼装高德需要的格式数据-查询数据"); // 根据站点id查询计费模板 - CompletableFuture> future1 = CompletableFuture.supplyAsync(() -> getPriceInfoByStationId(String.valueOf(stationInfoId))); + CompletableFuture> future1 = CompletableFuture.supplyAsync(() -> getPriceInfoByStationId(String.valueOf(stationInfoId)), executor); // 根据站点id查询快、慢充设备数量 - CompletableFuture> future2 = CompletableFuture.supplyAsync(() -> pileConnectorInfoService.getPileTypeNum(stationInfoId)); + CompletableFuture> future2 = CompletableFuture.supplyAsync(() -> pileConnectorInfoService.getPileTypeNum(stationInfoId), executor); // 根据站点查询站点下所有桩 - CompletableFuture> future3 = CompletableFuture.supplyAsync(() -> getPileListByStationId(String.valueOf(stationInfoId))); + CompletableFuture> future3 = CompletableFuture.supplyAsync(() -> getPileListByStationId(String.valueOf(stationInfoId)), executor); CompletableFuture all = CompletableFuture.allOf(future1, future2, future3); // .join()和.get()都会阻塞并获取线程的执行情况 diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/huawei/HuaweiServiceV2.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/huawei/HuaweiServiceV2.java index 6cbcf95d1..83bdafc83 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/huawei/HuaweiServiceV2.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/huawei/HuaweiServiceV2.java @@ -22,6 +22,7 @@ import com.jsowell.common.util.DateUtils; import com.jsowell.common.util.StringUtils; import com.jsowell.common.util.Threads; import com.jsowell.common.util.YKCUtils; +import com.jsowell.common.util.spring.SpringUtils; import com.jsowell.pile.domain.*; import com.jsowell.pile.domain.huawei.HWStationInfo; import com.jsowell.pile.domain.huawei.HWStationStatusInfo; @@ -31,6 +32,7 @@ import com.jsowell.pile.dto.huawei.*; import com.jsowell.pile.service.*; import com.jsowell.pile.service.programlogic.AbstractProgramLogic; import com.jsowell.pile.service.programlogic.ProgramLogicFactory; +import com.jsowell.pile.thirdparty.CommonParamsDTO; import com.jsowell.pile.vo.huawei.QueryChargeStatusVO; import com.jsowell.pile.vo.huawei.QueryEquipAuthVO; import com.jsowell.pile.vo.huawei.QueryStartChargeVO; @@ -38,7 +40,6 @@ import com.jsowell.pile.vo.uniapp.customer.BillingPriceVO; import com.jsowell.pile.vo.web.PileStationVO; import com.jsowell.thirdparty.lianlian.common.CommonResult; import com.jsowell.thirdparty.lianlian.domain.ConnectorStatusInfo; -import com.jsowell.pile.thirdparty.CommonParamsDTO; import com.jsowell.thirdparty.lianlian.service.LianLianService; import com.jsowell.thirdparty.platform.util.Cryptos; import com.jsowell.thirdparty.platform.util.Encodes; @@ -46,6 +47,7 @@ import com.jsowell.thirdparty.platform.util.GBSignUtils; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Service; import java.io.UnsupportedEncodingException; @@ -67,6 +69,9 @@ import java.util.stream.Collectors; @Slf4j public class HuaweiServiceV2 { + // 引入线程池 + private ThreadPoolTaskExecutor executor = SpringUtils.getBean("threadPoolTaskExecutor"); + @Autowired private LianLianService lianLianService; @@ -376,7 +381,7 @@ public class HuaweiServiceV2 { } String result = deliverEquipBusinessPolicy(equipBizSeq, pileConnectorCode); log.info("华为 异步调用 下发计费策略 接口 result:{}", result); - }); + }, executor); resultJson.put("SuccStat", 0); resultJson.put("FailReason", 0); @@ -827,7 +832,7 @@ public class HuaweiServiceV2 { } catch (Exception e) { log.error("异步结算华为订单 error", e); } - }); + }, executor); diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/huawei/impl/HuaWeiServiceImpl.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/huawei/impl/HuaWeiServiceImpl.java index 5094ba390..d80f2827b 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/huawei/impl/HuaWeiServiceImpl.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/huawei/impl/HuaWeiServiceImpl.java @@ -9,6 +9,7 @@ import com.jsowell.common.enums.ykc.StartModeEnum; import com.jsowell.common.exception.BusinessException; import com.jsowell.common.util.StringUtils; import com.jsowell.common.util.YKCUtils; +import com.jsowell.common.util.spring.SpringUtils; import com.jsowell.pile.domain.*; import com.jsowell.pile.domain.huawei.HWStationInfo; import com.jsowell.pile.dto.*; @@ -16,11 +17,11 @@ import com.jsowell.pile.dto.huawei.DeliverEquipBusinessDTO; import com.jsowell.pile.dto.huawei.ReceiveDeliverDTO; import com.jsowell.pile.dto.huawei.VinStartChargeDTO; import com.jsowell.pile.service.*; +import com.jsowell.pile.thirdparty.CommonParamsDTO; import com.jsowell.pile.vo.base.ThirdPartyStationRelationVO; import com.jsowell.pile.vo.uniapp.customer.BillingPriceVO; import com.jsowell.pile.vo.web.PileStationVO; import com.jsowell.thirdparty.huawei.HuaWeiService; -import com.jsowell.pile.thirdparty.CommonParamsDTO; import com.jsowell.thirdparty.platform.util.Cryptos; import com.jsowell.thirdparty.platform.util.Encodes; import com.jsowell.thirdparty.platform.util.GBSignUtils; @@ -30,6 +31,7 @@ import com.jsowell.thirdparty.zhongdianlian.service.ZDLService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Service; import java.io.UnsupportedEncodingException; @@ -51,6 +53,9 @@ import java.util.stream.Collectors; @Slf4j public class HuaWeiServiceImpl implements HuaWeiService { + // 引入线程池 + private ThreadPoolTaskExecutor executor = SpringUtils.getBean("threadPoolTaskExecutor"); + @Autowired private ZDLService zdlService; @@ -297,7 +302,7 @@ public class HuaWeiServiceImpl implements HuaWeiService { } String result = deliverEquipBusinessPolicy(equipBizSeq, pileConnectorCode); log.info("华为 异步调用 下发计费策略 接口 result:{}", result); - }); + }, executor); resultJson.put("SuccStat", 0); resultJson.put("FailReason", 0); diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/lianlian/service/impl/LianLianServiceImpl.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/lianlian/service/impl/LianLianServiceImpl.java index 92a2d662b..225f98c04 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/lianlian/service/impl/LianLianServiceImpl.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/lianlian/service/impl/LianLianServiceImpl.java @@ -673,15 +673,6 @@ public class LianLianServiceImpl implements LianLianService { // 如果是新电途平台,则将 startChargeSeqStat 改为 1-启动中 vo.setStartChargeSeqStat(1); } - // 异步推送启动充电结果 2024.01.25改为在0x33帧类型中统一回复 - // CompletableFuture.runAsync(() -> { - // try { - // Thread.sleep(200); - // } catch (InterruptedException e) { - // e.printStackTrace(); - // } - // pushStartChargeResult(orderCode); - // }); // 加密 Map resultMap = Maps.newLinkedHashMap();