package org.springnewfiber.dataadapter.xf.entity; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.toolkit.StringPool; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.collect.Lists; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.springnewfiber.dataadapter.entity.PtReceiveBaseModel; import org.springnewfiber.dataadapter.sswj.util.RealTimeSerializer; import java.math.BigDecimal; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** * @program: newfiber-data-adapter * @description: 土壤墒情 * @author: djt * @create: 2022-06-14 15:31 **/ @Data @Slf4j public class MonitorSoilData extends BaseXfInterfaceEntity { @JsonProperty(value = "m10") @ApiModelProperty(value = "10cm深度相对湿度") private BigDecimal slm10; @JsonProperty(value = "m20") @ApiModelProperty(value = "20cm深度相对湿度") private BigDecimal slm20; @JsonProperty(value = "m40") @ApiModelProperty(value = "40cm深度相对湿度") private BigDecimal slm40; @ApiModelProperty(value = "1 水分,2体积,3相对湿度,4重量含水") private String type; public static List<MonitorSoilDataDto> coverDto(List<MonitorSoilData> soilDataList) { Map<String, List<MonitorSoilData>> stringListMap = soilDataList.stream().collect(Collectors.groupingBy(MonitorSoilData::getGroupByStcdAndTm)); List<MonitorSoilDataDto> resultList = Lists.newArrayList(); stringListMap.forEach((key, soilDataTypeList) -> { if (CollUtil.isNotEmpty(soilDataTypeList)) { MonitorSoilDataDto dto = new MonitorSoilDataDto(); dto.setStcd(soilDataTypeList.get(0).getStcd()); dto.setTm(soilDataTypeList.get(0).getTm()); for (MonitorSoilData monitorSoilData : soilDataTypeList) { if (StrUtil.equalsIgnoreCase(monitorSoilData.getType(), StringPool.ONE)) { dto.setZcl10(monitorSoilData.getSlm10()); dto.setZcl20(monitorSoilData.getSlm20()); dto.setZcl40(monitorSoilData.getSlm40()); } else if (StrUtil.equalsIgnoreCase(monitorSoilData.getType(), "2")) { dto.setTjh10(monitorSoilData.getSlm10()); dto.setTjh20(monitorSoilData.getSlm20()); dto.setTjh40(monitorSoilData.getSlm40()); } else if (StrUtil.equalsIgnoreCase(monitorSoilData.getType(), "3")) { dto.setSlm10(monitorSoilData.getSlm10()); dto.setSlm20(monitorSoilData.getSlm20()); dto.setSlm40(monitorSoilData.getSlm40()); } else if (StrUtil.equalsIgnoreCase(monitorSoilData.getType(), "4")) { dto.setZlh10(monitorSoilData.getSlm10()); dto.setZlh20(monitorSoilData.getSlm20()); dto.setZlh40(monitorSoilData.getSlm40()); } } resultList.add(dto); } }); return resultList; } public static String getGroupByStcdAndTm(MonitorSoilData data) { return data.getStcd() + data.getTm(); } public static void main(String[] args) { String data=new String("[{\"id\":\"1acc040c7e53f2a5825fc407a472f16a\",\"slm10\":4.0,\"slm20\":14.0,\"slm40\":23.0,\"status\":\"1\",\"stcd\":\"S0014\",\"stnm\":\"汉南邓南\",\"tm\":1655342400000,\"type\":\"1\"},{\"id\":\"eccef7ba7adff5cc4f3182d97a8d094a\",\"slm10\":11.1,\"slm20\":21.0,\"slm40\":30.2,\"status\":\"1\",\"stcd\":\"S0014\",\"stnm\":\"汉南邓南\",\"tm\":1655342400000,\"type\":\"2\"},{\"id\":\"46af4ae89ff069c89ebe6b9e1eb7e80b\",\"slm10\":33.0,\"slm20\":62.0,\"slm40\":90.0,\"status\":\"1\",\"stcd\":\"S0014\",\"stnm\":\"汉南邓南\",\"tm\":1655342400000,\"type\":\"3\"},{\"id\":\"deaa2d2c502bc5d5771a7f62d0a290bf\",\"slm10\":7.9,\"slm20\":15.0,\"slm40\":21.6,\"status\":\"1\",\"stcd\":\"S0014\",\"stnm\":\"汉南邓南\",\"tm\":1655342400000,\"type\":\"4\"},{\"id\":\"80dc697fb4e4a200556cc8df99f9808c\",\"slm10\":2.0,\"slm20\":7.0,\"slm40\":30.0,\"status\":\"1\",\"stcd\":\"S0009\",\"stnm\":\"汉南东城垸\",\"tm\":1655342400000,\"type\":\"1\"},{\"id\":\"a72d31e54bf5a624d235dddb0c067e25\",\"slm10\":8.5,\"slm20\":13.9,\"slm40\":36.7,\"status\":\"1\",\"stcd\":\"S0009\",\"stnm\":\"汉南东城垸\",\"tm\":1655342400000,\"type\":\"2\"},{\"id\":\"b497ff04e5e60112e93313bd37097618\",\"slm10\":25.0,\"slm20\":41.0,\"slm40\":109.0,\"status\":\"1\",\"stcd\":\"S0009\",\"stnm\":\"汉南东城垸\",\"tm\":1655342400000,\"type\":\"3\"},{\"id\":\"342b136fa4f7263b49c5eee308d5b863\",\"slm10\":6.1,\"slm20\":9.9,\"slm40\":26.2,\"status\":\"1\",\"stcd\":\"S0009\",\"stnm\":\"汉南东城垸\",\"tm\":1655342400000,\"type\":\"4\"},{\"id\":\"2b9ccfe555a18f93e07d0a6944c10bd2\",\"slm10\":5.0,\"slm20\":9.0,\"slm40\":24.0,\"status\":\"1\",\"stcd\":\"S0015\",\"stnm\":\"汉南纱帽\",\"tm\":1655342400000,\"type\":\"1\"},{\"id\":\"527e8dd61b9902c5b93d02d2d28237ac\",\"slm10\":11.8,\"slm20\":15.5,\"slm40\":31.0,\"status\":\"1\",\"stcd\":\"S0015\",\"stnm\":\"汉南纱帽\",\"tm\":1655342400000,\"type\":\"2\"},{\"id\":\"e7380dae35c78575133c5dff47dc3ac3\",\"slm10\":35.0,\"slm20\":46.0,\"slm40\":92.0,\"status\":\"1\",\"stcd\":\"S0015\",\"stnm\":\"汉南纱帽\",\"tm\":1655342400000,\"type\":\"3\"},{\"id\":\"87403374283c49e20658ce3e511bdaa5\",\"slm10\":8.4,\"slm20\":11.1,\"slm40\":22.1,\"status\":\"1\",\"stcd\":\"S0015\",\"stnm\":\"汉南纱帽\",\"tm\":1655342400000,\"type\":\"4\"},{\"id\":\"fe499dd04084abb85de8faadacae3a2c\",\"slm10\":4.0,\"slm20\":14.0,\"slm40\":23.0,\"status\":\"1\",\"stcd\":\"S0014\",\"stnm\":\"汉南邓南\",\"tm\":1655344800000,\"type\":\"1\"},{\"id\":\"3ad1d5311d8ff355cbf2841aafb05e0c\",\"slm10\":11.1,\"slm20\":21.0,\"slm40\":30.2,\"status\":\"1\",\"stcd\":\"S0014\",\"stnm\":\"汉南邓南\",\"tm\":1655344800000,\"type\":\"2\"},{\"id\":\"d41f3fd158963bdc41a5b4ccfea5e884\",\"slm10\":33.0,\"slm20\":62.0,\"slm40\":90.0,\"status\":\"1\",\"stcd\":\"S0014\",\"stnm\":\"汉南邓南\",\"tm\":1655344800000,\"type\":\"3\"},{\"id\":\"f06d066efb7613e9535bd43e5147e591\",\"slm10\":7.9,\"slm20\":15.0,\"slm40\":21.6,\"status\":\"1\",\"stcd\":\"S0014\",\"stnm\":\"汉南邓南\",\"tm\":1655344800000,\"type\":\"4\"},{\"id\":\"e79466f8712ac6adf09235b2e2d2ac81\",\"slm10\":2.0,\"slm20\":7.0,\"slm40\":30.0,\"status\":\"1\",\"stcd\":\"S0009\",\"stnm\":\"汉南东城垸\",\"tm\":1655344800000,\"type\":\"1\"},{\"id\":\"10f88acc6958f11f7b8a8d291120bcb1\",\"slm10\":8.5,\"slm20\":13.9,\"slm40\":36.7,\"status\":\"1\",\"stcd\":\"S0009\",\"stnm\":\"汉南东城垸\",\"tm\":1655344800000,\"type\":\"2\"},{\"id\":\"bc08c693b27498fa191010b6e5bb9ece\",\"slm10\":25.0,\"slm20\":41.0,\"slm40\":109.0,\"status\":\"1\",\"stcd\":\"S0009\",\"stnm\":\"汉南东城垸\",\"tm\":1655344800000,\"type\":\"3\"},{\"id\":\"57ba8e162fc3b75d4f4bfd2f33a524e1\",\"slm10\":6.1,\"slm20\":9.9,\"slm40\":26.2,\"status\":\"1\",\"stcd\":\"S0009\",\"stnm\":\"汉南东城垸\",\"tm\":1655344800000,\"type\":\"4\"},{\"id\":\"df8205389310ebdb857d0b4f05023e98\",\"slm10\":5.0,\"slm20\":8.0,\"slm40\":24.0,\"status\":\"1\",\"stcd\":\"S0015\",\"stnm\":\"汉南纱帽\",\"tm\":1655344800000,\"type\":\"1\"},{\"id\":\"6adc6bcbd536900fa88436639ae0ca22\",\"slm10\":11.7,\"slm20\":15.4,\"slm40\":31.0,\"status\":\"1\",\"stcd\":\"S0015\",\"stnm\":\"汉南纱帽\",\"tm\":1655344800000,\"type\":\"2\"},{\"id\":\"e988b66685e910e76830fe51b54785fe\",\"slm10\":35.0,\"slm20\":46.0,\"slm40\":92.0,\"status\":\"1\",\"stcd\":\"S0015\",\"stnm\":\"汉南纱帽\",\"tm\":1655344800000,\"type\":\"3\"},{\"id\":\"26732322e74f14251f7febc81128fc41\",\"slm10\":8.4,\"slm20\":11.0,\"slm40\":22.1,\"status\":\"1\",\"stcd\":\"S0015\",\"stnm\":\"汉南纱帽\",\"tm\":1655344800000,\"type\":\"4\"},{\"id\":\"093cd5d2f2c26387fc572294e19a94ee\",\"slm10\":4.0,\"slm20\":14.0,\"slm40\":23.0,\"status\":\"1\",\"stcd\":\"S0014\",\"stnm\":\"汉南邓南\",\"tm\":1655346600000,\"type\":\"1\"},{\"id\":\"a88b3a668c5796d3120e90e2e36dd4e0\",\"slm10\":11.2,\"slm20\":21.0,\"slm40\":30.2,\"status\":\"1\",\"stcd\":\"S0014\",\"stnm\":\"汉南邓南\",\"tm\":1655346600000,\"type\":\"2\"},{\"id\":\"d1ec5b28d60863a75632d875cadc07c8\",\"slm10\":33.0,\"slm20\":62.0,\"slm40\":90.0,\"status\":\"1\",\"stcd\":\"S0014\",\"stnm\":\"汉南邓南\",\"tm\":1655346600000,\"type\":\"3\"},{\"id\":\"1b2126c2362e2961be97b50ec51cd136\",\"slm10\":8.0,\"slm20\":15.0,\"slm40\":21.6,\"status\":\"1\",\"stcd\":\"S0014\",\"stnm\":\"汉南邓南\",\"tm\":1655346600000,\"type\":\"4\"},{\"id\":\"32b9ec9d12c3fc0f56e2752807023cce\",\"slm10\":5.0,\"slm20\":8.0,\"slm40\":24.0,\"status\":\"1\",\"stcd\":\"S0015\",\"stnm\":\"汉南纱帽\",\"tm\":1655346600000,\"type\":\"1\"},{\"id\":\"0051a07049d2f43e1124ec9c4f7d0328\",\"slm10\":11.7,\"slm20\":15.4,\"slm40\":31.0,\"status\":\"1\",\"stcd\":\"S0015\",\"stnm\":\"汉南纱帽\",\"tm\":1655346600000,\"type\":\"2\"},{\"id\":\"d72cd5e1dd1471564e13bc49d5b5aaee\",\"slm10\":35.0,\"slm20\":46.0,\"slm40\":92.0,\"status\":\"1\",\"stcd\":\"S0015\",\"stnm\":\"汉南纱帽\",\"tm\":1655346600000,\"type\":\"3\"},{\"id\":\"63bb804a3fd9b829cc5691c11d25dfcf\",\"slm10\":8.4,\"slm20\":11.0,\"slm40\":22.1,\"status\":\"1\",\"stcd\":\"S0015\",\"stnm\":\"汉南纱帽\",\"tm\":1655346600000,\"type\":\"4\"},{\"id\":\"8e5e8aae81c9b4e55ceb66151b544f56\",\"slm10\":2.0,\"slm20\":7.0,\"slm40\":30.0,\"status\":\"1\",\"stcd\":\"S0009\",\"stnm\":\"汉南东城垸\",\"tm\":1655346600000,\"type\":\"1\"},{\"id\":\"84c141de17d93330b9caab3126286b5f\",\"slm10\":8.5,\"slm20\":13.9,\"slm40\":36.6,\"status\":\"1\",\"stcd\":\"S0009\",\"stnm\":\"汉南东城垸\",\"tm\":1655346600000,\"type\":\"2\"},{\"id\":\"8138f84947113518badd0ac513cf85fb\",\"slm10\":25.0,\"slm20\":41.0,\"slm40\":108.0,\"status\":\"1\",\"stcd\":\"S0009\",\"stnm\":\"汉南东城垸\",\"tm\":1655346600000,\"type\":\"3\"},{\"id\":\"b0663a1e7f12ce543eda5afe67034e53\",\"slm10\":6.1,\"slm20\":9.9,\"slm40\":26.1,\"status\":\"1\",\"stcd\":\"S0009\",\"stnm\":\"汉南东城垸\",\"tm\":1655346600000,\"type\":\"4\"},{\"id\":\"6156da2dc5f95ebd0ba56570c1c6b5fa\",\"slm10\":4.0,\"slm20\":14.0,\"slm40\":23.0,\"status\":\"1\",\"stcd\":\"S0014\",\"stnm\":\"汉南邓南\",\"tm\":1655347200000,\"type\":\"1\"},{\"id\":\"4c4af235e56ec1ad00d54f84eb4cd378\",\"slm10\":11.2,\"slm20\":21.0,\"slm40\":30.2,\"status\":\"1\",\"stcd\":\"S0014\",\"stnm\":\"汉南邓南\",\"tm\":1655347200000,\"type\":\"2\"},{\"id\":\"e1fe7b8485086a4c489aff9dd0ac13c7\",\"slm10\":33.0,\"slm20\":62.0,\"slm40\":90.0,\"status\":\"1\",\"stcd\":\"S0014\",\"stnm\":\"汉南邓南\",\"tm\":1655347200000,\"type\":\"3\"},{\"id\":\"fb7bb23562b34304daeb3384cd198f3d\",\"slm10\":8.0,\"slm20\":15.0,\"slm40\":21.6,\"status\":\"1\",\"stcd\":\"S0014\",\"stnm\":\"汉南邓南\",\"tm\":1655347200000,\"type\":\"4\"},{\"id\":\"138575d92673da4881e2865f1a4c9e73\",\"slm10\":2.0,\"slm20\":7.0,\"slm40\":30.0,\"status\":\"1\",\"stcd\":\"S0009\",\"stnm\":\"汉南东城垸\",\"tm\":1655347200000,\"type\":\"1\"},{\"id\":\"cc628a754fab7ccd8118c3db6b5e20bc\",\"slm10\":8.5,\"slm20\":13.8,\"slm40\":36.6,\"status\":\"1\",\"stcd\":\"S0009\",\"stnm\":\"汉南东城垸\",\"tm\":1655347200000,\"type\":\"2\"},{\"id\":\"cd60dda7505782ab378b585c9e729f7b\",\"slm10\":25.0,\"slm20\":41.0,\"slm40\":108.0,\"status\":\"1\",\"stcd\":\"S0009\",\"stnm\":\"汉南东城垸\",\"tm\":1655347200000,\"type\":\"3\"},{\"id\":\"96ff00bad7fbb22f1fc85d5b1a1c2802\",\"slm10\":6.1,\"slm20\":9.9,\"slm40\":26.1,\"status\":\"1\",\"stcd\":\"S0009\",\"stnm\":\"汉南东城垸\",\"tm\":1655347200000,\"type\":\"4\"},{\"id\":\"2d14193ced7a9ee5b8f8cc59a7b5e236\",\"slm10\":5.0,\"slm20\":8.0,\"slm40\":24.0,\"status\":\"1\",\"stcd\":\"S0015\",\"stnm\":\"汉南纱帽\",\"tm\":1655347200000,\"type\":\"1\"},{\"id\":\"1cb67b3c66dc662223b75c6ea26f3205\",\"slm10\":11.7,\"slm20\":15.3,\"slm40\":31.0,\"status\":\"1\",\"stcd\":\"S0015\",\"stnm\":\"汉南纱帽\",\"tm\":1655347200000,\"type\":\"2\"},{\"id\":\"13384c0cc7bc8264ff432a452c2f2989\",\"slm10\":35.0,\"slm20\":45.0,\"slm40\":92.0,\"status\":\"1\",\"stcd\":\"S0015\",\"stnm\":\"汉南纱帽\",\"tm\":1655347200000,\"type\":\"3\"},{\"id\":\"37bff9754539c05d6cd2a13817fc369a\",\"slm10\":8.4,\"slm20\":10.9,\"slm40\":22.1,\"status\":\"1\",\"stcd\":\"S0015\",\"stnm\":\"汉南纱帽\",\"tm\":1655347200000,\"type\":\"4\"},{\"id\":\"c2aa39ca60699aed55c2d098306ca3cf\",\"slm10\":5.0,\"slm20\":8.0,\"slm40\":24.0,\"status\":\"1\",\"stcd\":\"S0015\",\"stnm\":\"汉南纱帽\",\"tm\":1655347800000,\"type\":\"1\"},{\"id\":\"45c9ced15dfbc5a990dec88c03029792\",\"slm10\":11.7,\"slm20\":15.3,\"slm40\":31.0,\"status\":\"1\",\"stcd\":\"S0015\",\"stnm\":\"汉南纱帽\",\"tm\":1655347800000,\"type\":\"2\"},{\"id\":\"7bfc1f877eaf7c20d0f514cfb64a6bf0\",\"slm10\":35.0,\"slm20\":45.0,\"slm40\":92.0,\"status\":\"1\",\"stcd\":\"S0015\",\"stnm\":\"汉南纱帽\",\"tm\":1655347800000,\"type\":\"3\"},{\"id\":\"e760ce4405238874830bd9c80b6647ac\",\"slm10\":8.4,\"slm20\":10.9,\"slm40\":22.1,\"status\":\"1\",\"stcd\":\"S0015\",\"stnm\":\"汉南纱帽\",\"tm\":1655347800000,\"type\":\"4\"},{\"id\":\"42ecc613de2d894fbc1cd8fdc79930ac\",\"slm10\":4.0,\"slm20\":14.0,\"slm40\":23.0,\"status\":\"1\",\"stcd\":\"S0014\",\"stnm\":\"汉南邓南\",\"tm\":1655347800000,\"type\":\"1\"},{\"id\":\"6e968bc90ebb2be35209aec1b0f3770b\",\"slm10\":11.2,\"slm20\":21.0,\"slm40\":30.2,\"status\":\"1\",\"stcd\":\"S0014\",\"stnm\":\"汉南邓南\",\"tm\":1655347800000,\"type\":\"2\"},{\"id\":\"224c4c698d40733a606a8db463d56dab\",\"slm10\":33.0,\"slm20\":62.0,\"slm40\":90.0,\"status\":\"1\",\"stcd\":\"S0014\",\"stnm\":\"汉南邓南\",\"tm\":1655347800000,\"type\":\"3\"},{\"id\":\"442a43789acf1907995eeec7cb4b8dab\",\"slm10\":8.0,\"slm20\":15.0,\"slm40\":21.6,\"status\":\"1\",\"stcd\":\"S0014\",\"stnm\":\"汉南邓南\",\"tm\":1655347800000,\"type\":\"4\"},{\"id\":\"95b735c1a0722cd13a8afd0152c8c26f\",\"slm10\":2.0,\"slm20\":7.0,\"slm40\":30.0,\"status\":\"1\",\"stcd\":\"S0009\",\"stnm\":\"汉南东城垸\",\"tm\":1655347800000,\"type\":\"1\"},{\"id\":\"3781beaf95a5cad6eae81f1afdd62876\",\"slm10\":8.5,\"slm20\":13.8,\"slm40\":36.6,\"status\":\"1\",\"stcd\":\"S0009\",\"stnm\":\"汉南东城垸\",\"tm\":1655347800000,\"type\":\"2\"},{\"id\":\"47d8ee6189ce90c9a1b61f9af3edf83e\",\"slm10\":25.0,\"slm20\":41.0,\"slm40\":108.0,\"status\":\"1\",\"stcd\":\"S0009\",\"stnm\":\"汉南东城垸\",\"tm\":1655347800000,\"type\":\"3\"},{\"id\":\"b06d266ea39503605ba62bc797ed8072\",\"slm10\":6.1,\"slm20\":9.9,\"slm40\":26.1,\"status\":\"1\",\"stcd\":\"S0009\",\"stnm\":\"汉南东城垸\",\"tm\":1655347800000,\"type\":\"4\"}]\n"); List<MonitorSoilData> monitorSoilDataList = JSONObject.parseArray(data, MonitorSoilData.class); List<? extends BaseXfInterfaceEntity> DTO = MonitorSoilData.coverDto(monitorSoilDataList); DTO.forEach((i) -> { PtReceiveBaseModel model = RealTimeSerializer.xfObjectToRealMap(i); log.info("cover:{}", JSONObject.toJSONString(model)); // rabbitTemplate.convertAndSend(JSONObject.toJSONString(model)); }); } }