新能源电池检测设备,国内锂电池检测系统供应商的上市公司

【能源人都在看,点击右上角加'关注'】

【能源人在看,点击右上角添加‘关注’】

报告摘要

2021年上半年 政策+市场双轮驱动,新能源汽车行业开启需求增长主升浪,锂电池龙头纷纷布局大规模扩产计划,锂电检测设备厂家迎来新的高速成长极。,国内外新能源汽车销量快速增长,预计全年销量将达到540万辆。新能源汽车的高产销热潮带动动力电池需求快速增长,预计年需求量可达276GWh。在此背景下,锂电池龙头已布局大规模扩张计划,电池测试设备有望全面受益。

见证 CATL 动力伟业,依托动力电池主产业链,提供核心检测设备与服务,构建新的业务增长点。公司是锂电池检测设备的领导者,在锂电池充放电检测系统(包括化学成分和容量)方面优势明显,处于市场领先地位。目前公司最大的客户是当代安普瑞斯科技有限公司,占其营收近40%。未来,公司业务有望跟随宁德产能扩张实现快速放量。

储能伴随政策与市场共振,行业进入高速发展期。与CATL联合成立时代星云,深耕储能,围绕宁德电池主业,在用户侧和发电侧布局高增长稀缺优质目标。

一季报业绩高速增长,经营拐点已现2021年一季度,公司实现营业收入1.2亿元,较上年同期增长64.91%;归属于上市公司股东的净利润2000万元,比上年同期增长729.55%。第一季度,公司实现毛利率57.55%,较去年增长16.4%。

「企业报告」立足锂电检测设备,迎新能源和储能双轮驱动

「企业报告」立足锂电检测设备,迎新能源和储能双轮驱动

「企业报告」立足锂电检测设备,迎新能源和储能双轮驱动

「企业报告」立足锂电检测设备,迎新能源和储能双轮驱动

「企业报告」立足锂电检测设备,迎新能源和储能双轮驱动

「企业报告」立足锂电检测设备,迎新能源和储能双轮驱动

「企业报告」立足锂电检测设备,迎新能源和储能双轮驱动

「企业报告」立足锂电检测设备,迎新能源和储能双轮驱动

「企业报告」立足锂电检测设备,迎新能源和储能双轮驱动

「企业报告」立足锂电检测设备,迎新能源和储能双轮驱动

「企业报告」立足锂电检测设备,迎新能源和储能双轮驱动

「企业报告」立足锂电检测设备,迎新能源和储能双轮驱动

「企业报告」立足锂电检测设备,迎新能源和储能双轮驱动

「企业报告」立足锂电检测设备,迎新能源和储能双轮驱动

「企业报告」立足锂电检测设备,迎新能源和储能双轮驱动

「企业报告」立足锂电检测设备,迎新能源和储能双轮驱动

「企业报告」立足锂电检测设备,迎新能源和储能双轮驱动

免责声明:以上内容转载自EnergyTrend Energy Storage,所发内容不代表平台立场。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/46424.html

(0)

相关推荐

  • 钉钉报警接入代码

    @Service@Slf4jpublic class DingTalkUtil { @Value("${dingTalk.robot.url}") private String robotUrl; @Value("${dingTalk.robot.me}") private String me; // 钉钉密钥 @Value("${dingTalk.robot.secret}") private String secret; @Value("${dingTalk.enabled}") private Boolean enabled; private OkHttpClient okHttpClient; private static final ObjectMapper objectMapper = new ObjectMapper(); private static final MediaType jsonMediaType = MediaType.parse("application/json"); @PostConstruct public void init() { ExecutorService executorService = new ThreadPoolExecutor( 1, 5, 1, TimeUnit.MINUTES, new ArrayBlockingQueue<>(100), ThreadFactoryBuilder.create().setNamePrefix("dingTalk-").build(), new ThreadPoolExecutor.CallerRunsPolicy() ); Dispatcher dispatcher = new Dispatcher(executorService); dispatcher.setMaxRequests(5); dispatcher.setMaxRequestsPerHost(5); okHttpClient = new OkHttpClient.Builder() .readTimeout(Duration.ofSeconds(1)) .connectTimeout(Duration.ofSeconds(1)) .callTimeout(Duration.ofSeconds(1)) .writeTimeout(Duration.ofSeconds(1)) .dispatcher(dispatcher) .build(); } /** * 异步发送钉钉机器人文本消息. */ public void sendTextMessage(String content) { doSendTextMessage(content, textMessage -> { }); } /** * 异步发送文本消息并@自己. */ public void sendTextMessageWithAtMe(String content) { doSendTextMessage(content, textMessage -> textMessage.getAt().getAtMobiles().add(me)); } /** * 异步发送文本消息并@所有人. */ public void sendTextMessageWithAtAll(String content) { doSendTextMessage(content, textMessage -> textMessage.getAt().setAtAll(true)); } private void doSendTextMessage(String content, Consumer<TextMessage> messageConfigurator) { if (!enabled) { return; } if (StringUtils.isBlank(content)) { throw new IllegalArgumentException("文本消息内容不能为空"); } TextMessage textMessage = new TextMessage(); textMessage.setText(new TextMessage.Content(content)); messageConfigurator.accept(textMessage); long timestamp = System.currentTimeMillis(); String sign = sign(timestamp); try { Request request = new Request.Builder() .url((robotUrl + "×tamp=" + timestamp + "&sign=" + sign)) .post(RequestBody.create(objectMapper.writeValueAsString(textMessage), jsonMediaType)) .build(); Call call = okHttpClient.newCall(request); call.enqueue(new Callback() { @Override public void onFailure(@NotNull Call call, @NotNull IOException e) { log.error("发送钉钉消息失败, 请求: {}.", call, e); } @Override public void onResponse(@NotNull Call call, @NotNull Response response) { ResponseBody responseBody = response.body(); log.debug("钉钉发送成功, call: {}, resp: {}.", call.request().body(), responseBody); if (responseBody != null) responseBody.close(); } }); } catch (JsonProcessingException e) { throw ExceptionUtil.wrapRuntime(e); } } private String sign(long timestamp) { final String seed = (timestamp + "\n" + secret); try { Mac mac = Mac.getInstance("HmacSHA256"); mac.init(new SecretKeySpec(secret.getBytes(StandardCharsets.UTF_8), "HmacSHA256")); byte[] result = mac.doFinal(seed.getBytes(StandardCharsets.UTF_8)); return URLEncoder.encode(Base64.getEncoder().encodeToString(result), StandardCharsets.UTF_8.displayName()); } catch (NoSuchAlgorithmException | InvalidKeyException | UnsupportedEncodingException e) { throw ExceptionUtil.wrapRuntime(e); } } @Getter private static class TextMessage { private final String msgtype = "text"; @Setter private Content text; private final At at = new At(); @Data @AllArgsConstructor private static class Content { private String content; } private static class At { @Setter private boolean isAtAll = false; @Getter private final List<String> atMobiles = new LinkedList<>(); // 不能删除,否则会导致生成的json字段名是atAll, 导致@所有人不生效 public boolean getIsAtAll() { return isAtAll; } } }}

    科技 2021年11月18日
  • 孩子哭是一个自我释放的过程。让孩子哭,是对父母最好的温柔。

    前几天我带女儿小米出去吃饭,旁边桌子上有一个妈妈带着一个三四岁的男孩。小男孩在哭。他妈妈皱着眉头,眼里充满了烦躁,没有说话。就连女儿小米也抑制不住好奇心。男孩向坐在他旁边的朋友解释...

    生活 2021年11月23日
  • 36氪专访 | 李一男:起起伏伏的人生,不是我愿意的(现在的李一男)

    新造车正缠斗于月销数字,甚至排行表上的定语都成为竞技场时,李一男以“反内卷”的面孔出现了。

    科技 2021年12月17日
  • 男女养生 侧重不同,男女养生的六个差别

    男女在生理结构和思维方式上的不同,造就了两者在养生方式上的差异。只有根据各自特点,抓住养生侧重,才能够事半功倍。

    生活 2021年12月3日
  • 如果你想让孩子更聪明,请每天陪伴孩子.

    饭后,妈妈问女儿:“儿子,今天有什么要和妈妈分享的吗?” 女儿:‘妈妈,我们的班级名字叫Beyond Class,班级培养的是自尊自爱自立自强,校训是读万卷书行万里路。" 妈妈:“...

    生活 2021年11月17日
  • 肺气不足,每天拍打2处,疏通肺经,肺气足,调脾胃,护心

    传统中医不认识病毒,但认识身体自己。好比阴雨天潮湿的树下长蘑菇,如果连续晴天蘑菇就不见了。同理,人体环境的改变,给细菌、病毒繁衍生息提供了条件,恶化的身体环境是疾病的温床。

    生活 2021年9月9日