Newer
Older
newfiber-data-adapter / src / main / java / org / springnewfiber / dataadapter / xf / entity / MonitorSoilData.java
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));
        });
    }
}