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 2b3188c3e..840cfb6bf 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 @@ -25,6 +25,7 @@ import com.jsowell.pile.service.*; import com.jsowell.pile.service.programlogic.AbstractProgramLogic; import com.jsowell.pile.service.programlogic.ProgramLogicFactory; import com.jsowell.thirdparty.common.CommonService; +import com.jsowell.thirdparty.platform.service.impl.BatteryChargeReportService; import com.jsowell.thirdparty.platform.service.impl.ChargeAlgorithmService; import io.netty.channel.ChannelHandlerContext; import lombok.extern.slf4j.Slf4j; @@ -56,6 +57,9 @@ public class TransactionRecordsRequestHandler extends AbstractYkcHandler { // 引入第三方平台任务线程池 private ThreadPoolTaskExecutor thirdpartyTaskExecutor = SpringUtils.getBean("thirdpartyTaskExecutor"); + @Autowired + private BatteryChargeReportService batteryChargeReportService; + @Override public void afterPropertiesSet() throws Exception { YKCOperateFactory.register(type, this); @@ -701,14 +705,15 @@ public class TransactionRecordsRequestHandler extends AbstractYkcHandler { }, thirdpartyTaskExecutor); // 异步推送充电订单算法平台 -// CompletableFuture.runAsync(() -> { -// try { -// String result = chargeAlgorithmService.pushOrderInfo(finalOrderBasicInfo.getOrderCode()); -// log.info("异步推送充电订单算法平台 result:{}", result); -// } catch (Exception e) { -// log.error("异步推送充电订单算法平台 error, ", e); -// } -// }, thirdpartyTaskExecutor); + // CompletableFuture.runAsync(() -> { + // try { + // String taskId = batteryChargeReportService.getTaskIdByOrderCode(finalOrderBasicInfo.getOrderCode()); + // // String result = chargeAlgorithmService.pushOrderInfo(finalOrderBasicInfo.getOrderCode()); + // log.info("异步推送充电订单算法平台 result taskId:{}", taskId); + // } catch (Exception e) { + // log.error("异步推送充电订单算法平台 error, ", e); + // } + // }, thirdpartyTaskExecutor); // // // CompletableFuture.runAsync(() -> { diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/ChargeAlgorithmRecordMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/ChargeAlgorithmRecordMapper.java index 2b8919554..307d9d53f 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/ChargeAlgorithmRecordMapper.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/ChargeAlgorithmRecordMapper.java @@ -68,4 +68,18 @@ public interface ChargeAlgorithmRecordMapper { * @return */ ChargeAlgorithmRecord queryRecordByOrderCode(String orderCode); + + /** + * 插入或修改电池充电算法记录 + * @param record + * @return + */ + int insertOrUpdateSelective(ChargeAlgorithmRecord record); + + /** + * 通过 taskId 查询充电算法报告 + * @param taskId + * @return + */ + ChargeAlgorithmRecord queryRecordByTaskId(String taskId); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/ChargeAlgorithmRecordService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/ChargeAlgorithmRecordService.java index 21990a3aa..28b2b38be 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/ChargeAlgorithmRecordService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/ChargeAlgorithmRecordService.java @@ -36,6 +36,13 @@ public interface ChargeAlgorithmRecordService { */ public int insertChargeAlgorithmRecord(ChargeAlgorithmRecord chargeAlgorithmRecord); + /** + * 插入或修改电池充电算法记录 + * @param record + * @return + */ + int insertOrUpdateSelective(ChargeAlgorithmRecord record); + /** * 修改电池充电算法记录 * @@ -69,4 +76,11 @@ public interface ChargeAlgorithmRecordService { ChargeAlgorithmRecord queryRecordByOrderCode(String orderCode); + + /** + * 通过 taskId 查询充电算法报告 + * @param taskId + * @return + */ + ChargeAlgorithmRecord queryRecordByTaskId(String taskId); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/ChargeAlgorithmRecordServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/ChargeAlgorithmRecordServiceImpl.java index 461d0904c..e8e86cbd9 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/ChargeAlgorithmRecordServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/ChargeAlgorithmRecordServiceImpl.java @@ -56,6 +56,17 @@ public class ChargeAlgorithmRecordServiceImpl implements ChargeAlgorithmRecordSe return chargeAlgorithmRecordMapper.insertChargeAlgorithmRecord(chargeAlgorithmRecord); } + /** + * 插入或修改电池充电算法记录 + * @param record + * @return + */ + @Override + public int insertOrUpdateSelective(ChargeAlgorithmRecord record) { + record.setCreateTime(DateUtils.getNowDate()); + return chargeAlgorithmRecordMapper.insertOrUpdateSelective(record); + } + /** * 修改电池充电算法记录 * @@ -94,6 +105,16 @@ public class ChargeAlgorithmRecordServiceImpl implements ChargeAlgorithmRecordSe return chargeAlgorithmRecordMapper.queryRecordByOrderCode(orderCode); } + /** + * 通过 taskId 查询充电算法报告 + * @param taskId + * @return + */ + @Override + public ChargeAlgorithmRecord queryRecordByTaskId(String taskId) { + return chargeAlgorithmRecordMapper.queryRecordByTaskId(taskId); + } + /** * 通过订单号查询充电电池算法报告 * @param orderCode diff --git a/jsowell-pile/src/main/resources/mapper/pile/ChargeAlgorithmRecordMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/ChargeAlgorithmRecordMapper.xml index 58ca3f78e..db8e25dab 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/ChargeAlgorithmRecordMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/ChargeAlgorithmRecordMapper.xml @@ -36,7 +36,8 @@ select id, order_code, task_id, web_url, pdf_url, score, capacity_metrics, energy_indicator, consistency, temp_consistency, volt_consistency, capacity_consistency, sot, thermal_runaway, cooling, seal, current_soc, soc_alarm, temp_diff_alarm, temp_rise_alarm, - max_allowable_voltage_alarm, max_allowable_electricity_alarm, security_system_level, failure_metrics, performance_metrics, create_time from charge_algorithm_record + max_allowable_voltage_alarm, max_allowable_electricity_alarm, security_system_level, failure_metrics, performance_metrics, create_time + from charge_algorithm_record + + + insert into charge_algorithm_record + + id, + order_code, + task_id, + web_url, + pdf_url, + score, + capacity_metrics, + energy_indicator, + consistency, + temp_consistency, + volt_consistency, + capacity_consistency, + sot, + thermal_runaway, + cooling, + seal, + current_soc, + soc_alarm, + temp_diff_alarm, + temp_rise_alarm, + max_allowable_voltage_alarm, + max_allowable_electricity_alarm, + security_system_level, + failure_metrics, + performance_metrics, + create_time, + + values + + #{id}, + #{orderCode}, + #{taskId}, + #{webUrl}, + #{pdfUrl}, + #{score}, + #{capacityMetrics} + #{energyIndicator}, + #{consistency}, + #{tempConsistency}, + #{voltConsistency}, + #{capacityConsistency}, + #{sot}, + #{thermalRunaway}, + #{cooling}, + #{seal}, + #{currentSoc}, + #{socAlarm}, + #{tempDiffAlarm}, + #{tempRiseAlarm}, + #{maxAllowableVoltageAlarm}, + #{maxAllowableElectricityAlarm}, + #{securitySystemLevel}, + #{failureMetrics}, + #{performanceMetrics}, + #{createTime}, + + on duplicate key update + + id = #{id}, + order_code = #{orderCode}, + task_id = #{taskId}, + web_url = #{webUrl}, + pdf_url = #{pdfUrl}, + score = #{score}, + capacity_metrics = #{capacityMetrics}, + energy_indicator = #{energyIndicator}, + consistency = #{consistency}, + temp_consistency = #{tempConsistency}, + volt_consistency = #{voltConsistency}, + capacity_consistency = #{capacityConsistency}, + sot = #{sot}, + thermal_runaway = #{thermalRunaway}, + cooling = #{cooling}, + seal = #{seal}, + current_soc = #{currentSoc}, + soc_alarm = #{socAlarm}, + temp_diff_alarm = #{tempDiffAlarm}, + temp_rise_alarm = #{tempRiseAlarm}, + max_allowable_voltage_alarm = #{maxAllowableVoltageAlarm}, + max_allowable_electricity_alarm = #{maxAllowableElectricityAlarm}, + security_system_level = #{securitySystemLevel}, + failure_metrics = #{failureMetrics}, + performance_metrics = #{performanceMetrics}, + create_time = #{createTime}, + + + + \ No newline at end of file diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/BatteryChargeReportService.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/BatteryChargeReportService.java index eb2c9bf4e..d9e70ae69 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/BatteryChargeReportService.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/BatteryChargeReportService.java @@ -9,10 +9,8 @@ import com.jsowell.common.core.domain.ykc.*; import com.jsowell.common.core.redis.RedisCache; import com.jsowell.common.util.DateUtils; import com.jsowell.common.util.StringUtils; -import com.jsowell.pile.service.OrderBasicInfoService; -import com.jsowell.pile.service.PileBasicInfoService; -import com.jsowell.pile.service.PileConnectorInfoService; -import com.jsowell.pile.service.PileStationInfoService; +import com.jsowell.pile.domain.ChargeAlgorithmRecord; +import com.jsowell.pile.service.*; import com.jsowell.pile.thirdparty.ParameterConfigData; import com.jsowell.pile.vo.uniapp.customer.OrderVO; import com.jsowell.pile.vo.web.PileConnectorInfoVO; @@ -70,6 +68,8 @@ public class BatteryChargeReportService { @Autowired private PileStationInfoService pileStationInfoService; + private ChargeAlgorithmRecordService chargeAlgorithmRecordService; + /** * 通过订单号统一发送充电电池数据获取 taskId * @@ -96,6 +96,16 @@ public class BatteryChargeReportService { Map map = getDatasByOrderVO(orderVO); String taskId = pushInfoGetTaskId(map, stationVO, orderVO); + if (StringUtils.isBlank(taskId)) { + log.error("订单:{} 获取到 taskId 为空", orderCode); + return null; + } + // 存入数据库 + ChargeAlgorithmRecord record = new ChargeAlgorithmRecord(); + record.setOrderCode(orderCode); + record.setTaskId(taskId); + chargeAlgorithmRecordService.insertOrUpdateSelective(record); + return taskId; } @@ -106,11 +116,18 @@ public class BatteryChargeReportService { * @return */ public String getUrlByTaskId(String taskId, String reportType) { - // 根据 taskId 获取链接· - // 默认 web 端 url + String resultUrl = ""; + // 根据 taskId 获取链接 + // 通过 taskId 获取充电算法记录 + ChargeAlgorithmRecord record = chargeAlgorithmRecordService.queryRecordByTaskId(taskId); + if (record == null) { + log.error("taskId:{} 获取充电算法记录为空", taskId); + return null; + } + // 默认 1-web 端 url String apiUrl = webDomainPrefix + apiPrefix + "web/" + taskId; if (StringUtils.equals(Constants.TWO, reportType)) { - // 2- pdf 端 + // 2-pdf 端 apiUrl = webDomainPrefix + apiPrefix + "pdf/" + taskId; } // 发送请求 @@ -127,17 +144,23 @@ public class BatteryChargeReportService { // 将 result 部分转换成 BatteryReportResult 对象 // BatteryReportResult batteryReportResult = (BatteryReportResult) resultMap.get("result"); BatteryReportResult batteryReportResult = JSONObject.parseObject(resultMap.get("result").toString(), BatteryReportResult.class);; - String pdfUrl = batteryReportResult.getPdfUrl(); - if (StringUtils.isBlank(pdfUrl)) { - String webUrl = batteryReportResult.getWebUrl(); - return webUrl; + if (StringUtils.equals(Constants.ONE, reportType)) { + // 1-web 端 + resultUrl = batteryReportResult.getWebUrl(); + record.setWebUrl(resultUrl); + }else { + // pdf 端 + resultUrl = batteryReportResult.getPdfUrl(); + record.setPdfUrl(resultUrl); } - return pdfUrl; + // 保存到数据库 + chargeAlgorithmRecordService.updateChargeAlgorithmRecord(record); + return resultUrl; } public static void main(String[] args) { - String taskId = "8b8c2fed952f41d39eb583d0021c9908"; + String taskId = "1e6e42aa613947bf863bc455c2f3357e"; String url = "https://wx.btiger.net/jeecg-boot" + "/api/docking/report/" + "web/" + taskId; String result = HttpRequest.get(url).execute().body();