elkers
10 天以前 806cbe242deee0ddbcdc9dc898150c3af836cc0d
显示数据
已修改13个文件
已添加12个文件
1275 ■■■■■ 文件已修改
src/main/java/com/nanjing/water/entity/request/alarmhistory/ReqCreateAlarmHistory.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/request/alarmhistory/ReqModifyAlarmHistory.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/request/datauploadrecord/ReqCreateDataUploadRecord.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/request/datauploadrecord/ReqModifyDataUploadRecord.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/search/SearchDataUploadRecord.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/host/controller/CommonParametersController.java 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/host/controller/DataUploadRecordController.java 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/host/controller/WaterFacilityParameterController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/host/mqtt/CountVO.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/impl/AlarmHistoryMapperImpl.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/impl/DataUploadRecordMapperImpl.java 137 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/mapper/AlarmHistoryMapper.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/mapper/DataUploadRecordMapper.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/po/AlarmHistoryPO.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/po/CommonParametersPO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/po/DataUploadRecordPO.java 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/po/WaterFacilityParameterPO.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/vo/DataUploadRecordVO.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/repository/vo/WaterFacilityVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/service/AlarmHistoryService.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/service/DataUploadRecordService.java 407 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/service/WaterFacilityParameterService.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/service/convert/DataUploadRecordConvert.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application-dev.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/test/java/com/nanjing/water/DateTimeTest.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/nanjing/water/entity/request/alarmhistory/ReqCreateAlarmHistory.java
@@ -54,10 +54,7 @@
     * 是否处理
     */
    private Integer isSolve;
    /**
     * 是否确认(10误报 20已证实,200已处理)
     */
    private Integer isConfirm;
    /**
     * 最后报警时间
     */
src/main/java/com/nanjing/water/entity/request/alarmhistory/ReqModifyAlarmHistory.java
@@ -45,7 +45,7 @@
    /**
     * 报警参数
     */
    private Integer code;
    private String code;
    /**
     * 报警描述
     */
@@ -58,10 +58,7 @@
     * 是否处理
     */
    private Integer isSolve;
    /**
     * 是否确认(10误报 20已证实,200已处理)
     */
    private Integer isConfirm;
    /**
     * 最后报警时间
     */
src/main/java/com/nanjing/water/entity/request/datauploadrecord/ReqCreateDataUploadRecord.java
对比新文件
@@ -0,0 +1,62 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.entity.request.datauploadrecord;
import lombok.Data;
import java.math.BigDecimal;
/**
 * 数据上报记录
 * @author lin.liu
 */
@Data
public class ReqCreateDataUploadRecord {
    /**
     * 关联设备
     */
    private Long facilityId;
    /**
     * 设备名称
     */
    private String facilityName;
    /**
     * 字段名
     */
    private String columnsCode;
    /**
     * 字段展示
     */
    private String columnsShow;
    /**
     * 字段值
     */
    private BigDecimal columnsValue;
    /**
     * 数据上传时间
     */
    private Long uploadTime;
    /**
     * 数据上传日期
     */
    private String uploadDate;
}
src/main/java/com/nanjing/water/entity/request/datauploadrecord/ReqModifyDataUploadRecord.java
对比新文件
@@ -0,0 +1,66 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.entity.request.datauploadrecord;
import lombok.Data;
import java.math.BigDecimal;
/**
 * 数据上报记录
 * @author lin.liu
 */
@Data
public class ReqModifyDataUploadRecord {
    /**
     * 主键
     */
    private Long id;
    /**
     * 关联设备
     */
    private Long facilityId;
    /**
     * 设备名称
     */
    private String facilityName;
    /**
     * 字段名
     */
    private String columnsCode;
    /**
     * 字段展示
     */
    private String columnsShow;
    /**
     * 字段值
     */
    private BigDecimal columnsValue;
    /**
     * 数据上传时间
     */
    private Long uploadTime;
    /**
     * 数据上传日期
     */
    private String uploadDate;
}
src/main/java/com/nanjing/water/entity/search/SearchDataUploadRecord.java
对比新文件
@@ -0,0 +1,14 @@
package com.nanjing.water.entity.search;
import lombok.Data;
import com.nanjing.water.entity.dto.SearchBasicDTO;
/**
 * 数据上报记录
 * @author lin.liu
 */
@Data
public class SearchDataUploadRecord extends SearchBasicDTO {
}
src/main/java/com/nanjing/water/host/controller/CommonParametersController.java
对比新文件
@@ -0,0 +1,128 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.host.controller;
import com.nanjing.water.common.ExecutedResult;
import com.nanjing.water.common.PagerResult;
import com.nanjing.water.common.util.ParameterUtil;
import com.nanjing.water.common.validator.ParameterValidateResult;
import com.nanjing.water.common.validator.ParameterValidator;
import com.nanjing.water.entity.request.commonparameters.ReqCreateCommonParameters;
import com.nanjing.water.entity.request.commonparameters.ReqModifyCommonParameters;
import com.nanjing.water.entity.search.SearchCommonParameters;
import com.nanjing.water.host.BasicController;
import com.nanjing.water.repository.vo.CommonParametersVO;
import com.nanjing.water.service.CommonParametersService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
 * 130.公共参数
 * @author lin.liu
 * @description 公共参数
 * @order 130
 */
@RestController
@RequestMapping(value = "commonParameters")
public class CommonParametersController extends BasicController {
    @Autowired
    private CommonParametersService service;
    /**
     * 创建[公共参数]
     * @author lin.liu
     * @description 创建[公共参数]
     */
    @PostMapping(value = "create")
    public ExecutedResult<Long> create(@RequestBody ReqCreateCommonParameters request) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                // 非空
                .addNotNullOrEmpty(ParameterUtil.named("名称"), request.getName())
                .addNotNullOrEmpty(ParameterUtil.named("标识"), request.getMark())
                // 限制最大长度
                //.addLengthMax(ParameterUtil.named("名称"), request.getName(), ConstantFactory.LENGTH_MAX50)
                ;
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return failed(result.getErrorMsg());
        }
        //#endregion
        return this.service.create(request);
    }
    /**
     * 编辑[公共参数]
     * @author lin.liu
     * @description 编辑[公共参数]
     */
    @PostMapping(value = "modify")
    public ExecutedResult<String> modify(@RequestBody ReqModifyCommonParameters request) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                // 必须大于0
                .addGreater(ParameterUtil.named("[公共参数]id"), request.getId(), 0L)
                // 非空
                //.addNotNullOrEmpty(ParameterUtil.named("名称"), request.getName())
                // 限制最大长度
                //.addLengthMax(ParameterUtil.named("名称"), request.getName(), ConstantFactory.LENGTH_MAX50)
                ;
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return failed(result.getErrorMsg());
        }
        //#endregion
        return this.service.modify(request);
    }
    /**
     * 获取[公共参数]
     * @author lin.liu
     * @description 获取[公共参数]
     */
    @GetMapping(value = "get")
    public ExecutedResult<CommonParametersVO> get(@RequestParam Long id) {
        return this.service.get(id);
    }
    /**
     * 删除[公共参数]
     * @author lin.liu
     * @description 删除[公共参数]
     */
    @GetMapping(value = "remove")
    public ExecutedResult<String> remove(@RequestParam Long id) {
        return this.service.remove(id);
    }
    /**
     * 查询[公共参数]
     * @author lin.liu
     * @description 查询[公共参数]
     */
    @PostMapping(value = "search")
    public ExecutedResult<PagerResult<CommonParametersVO>> search(@RequestBody SearchCommonParameters request) {
        return this.service.search(request);
    }
}
src/main/java/com/nanjing/water/host/controller/DataUploadRecordController.java
对比新文件
@@ -0,0 +1,113 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.host.controller;
import com.nanjing.water.common.ExecutedResult;
import com.nanjing.water.common.PagerResult;
import com.nanjing.water.common.util.ParameterUtil;
import com.nanjing.water.common.validator.ParameterValidateResult;
import com.nanjing.water.common.validator.ParameterValidator;
import com.nanjing.water.entity.request.ReqListId;
import com.nanjing.water.host.BasicController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import com.nanjing.water.service.DataUploadRecordService;
import com.nanjing.water.entity.request.datauploadrecord.ReqCreateDataUploadRecord;
import com.nanjing.water.entity.request.datauploadrecord.ReqModifyDataUploadRecord;
import com.nanjing.water.entity.search.SearchDataUploadRecord;
import com.nanjing.water.repository.vo.DataUploadRecordVO;
/**
 * 9000.数据上报记录
 * @author lin.liu
 * @order 9000
 */
@RestController
@RequestMapping(value = "dataUploadRecord")
public class DataUploadRecordController extends BasicController {
    @Autowired
    private DataUploadRecordService service;
    /**
     * 创建[数据上报记录]
     * @author lin.liu
     */
    @PostMapping(value = "create")
    public ExecutedResult<Long> create(@RequestBody ReqCreateDataUploadRecord request) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                // 非空
                //.addNotNullOrEmpty(ParameterUtil.named("名称"), request.getName())
                // 限制最大长度
                //.addLengthMax(ParameterUtil.named("名称"), request.getName(), ConstantFactory.LENGTH_MAX50)
                ;
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return failed(result.getErrorMsg());
        }
        //#endregion
        return service.create(request);
    }
    /**
     * 编辑[数据上报记录]
     * @author lin.liu
     */
    @PostMapping(value = "modify")
    public ExecutedResult<String> modify(@RequestBody ReqModifyDataUploadRecord request) {
        //#region 参数验证
        ParameterValidator validator = new ParameterValidator()
                // 必须大于0
                .addGreater(ParameterUtil.named("[数据上报记录]id"), request.getId(), 0L)
                // 非空
                //.addNotNullOrEmpty(ParameterUtil.named("名称"), request.getName())
                // 限制最大长度
                //.addLengthMax(ParameterUtil.named("名称"), request.getName(), ConstantFactory.LENGTH_MAX50)
                ;
        ParameterValidateResult result = validator.validate();
        if (result.getIsFiled()) {
            return failed(result.getErrorMsg());
        }
        //#endregion
        return service.modify(request);
    }
    /**
     * 获取[数据上报记录]
     * @author lin.liu
     */
    @GetMapping(value = "get/{id}")
    public ExecutedResult<DataUploadRecordVO> get(@PathVariable Long id) {
        return service.get(id);
    }
    /**
     * 查询[数据上报记录]
     * @author lin.liu
     */
    @PostMapping(value = "search")
    public ExecutedResult<PagerResult<DataUploadRecordVO>> search(@RequestBody SearchDataUploadRecord request) {
        return service.search(request);
    }
}
src/main/java/com/nanjing/water/host/controller/WaterFacilityParameterController.java
@@ -33,6 +33,7 @@
import com.nanjing.water.host.BasicController;
import com.nanjing.water.repository.po.WaterFacilityParameterPO;
import com.nanjing.water.repository.vo.WaterFacilityParameterVO;
import com.nanjing.water.repository.vo.WaterFacilityVO;
import com.nanjing.water.service.WaterFacilityParameterService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -126,4 +127,13 @@
    public ExecutedResult<PagerResult<WaterFacilityParameterVO>> search(@RequestBody SearchWaterFacilityParameter request) {
        return this.service.search(request);
    }
    /**
     * 获取最新数据
     * @author lin.liu
     * @description 查询[设备设定参数]
     */
    @PostMapping(value = "getData")
    public ExecutedResult<List<WaterFacilityVO>> getData() {
        return this.service.getData();
    }
}
src/main/java/com/nanjing/water/host/mqtt/CountVO.java
对比新文件
@@ -0,0 +1,12 @@
package com.nanjing.water.host.mqtt;
import lombok.Data;
@Data
public class CountVO {
 private String name;
 private String code;
 private String value;
}
src/main/java/com/nanjing/water/repository/impl/AlarmHistoryMapperImpl.java
@@ -135,18 +135,13 @@
        return super.getList(listId);
    }
    public Integer deleteList(Long facilityId, String code){
        return DB.deleteList(facilityId,code);
    }
    public List<AlarmHistoryPO> getListByTime(Long  beginTime,Long  endTime) {
        LambdaQueryWrapper<AlarmHistoryPO> queryWrapper = this.query();
        queryWrapper.between(AlarmHistoryPO::getLastTime,beginTime,endTime);
        return super.selectList(queryWrapper);
    }
    public AlarmHistoryPO getListByFacilityId(Long  facilityId,Integer  code) {
        LambdaQueryWrapper<AlarmHistoryPO> queryWrapper = this.query();
        queryWrapper.eq(AlarmHistoryPO::getFacilityId,facilityId);
        queryWrapper.eq(AlarmHistoryPO::getCode,code);
        queryWrapper.ne(AlarmHistoryPO::getIsConfirm,30);
        queryWrapper.ne(AlarmHistoryPO::getIsConfirm,200);
        return super.selectOne(queryWrapper);
    }
}
src/main/java/com/nanjing/water/repository/impl/DataUploadRecordMapperImpl.java
对比新文件
@@ -0,0 +1,137 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nanjing.water.common.PagerResult;
import com.nanjing.water.common.enums.EYesOrNo;
import com.nanjing.water.common.util.*;
import com.nanjing.water.entity.dto.*;
import com.nanjing.water.entity.enums.*;
import com.nanjing.water.repository.BasicMapperImpl;
import org.springframework.stereotype.Repository;
import java.util.List;
import com.nanjing.water.entity.search.SearchDataUploadRecord;
import com.nanjing.water.repository.mapper.DataUploadRecordMapper;
import com.nanjing.water.repository.po.DataUploadRecordPO;
/**
 * 数据上报记录
 * @author lin.liu
 */
@Repository
public class DataUploadRecordMapperImpl extends BasicMapperImpl<DataUploadRecordPO, DataUploadRecordMapper> {
    DataUploadRecordMapperImpl(DataUploadRecordMapper mapper) {
        super(mapper);
    }
    @Override
    public PagerResult<DataUploadRecordPO> search(SearchBasicDTO request) {
        // 还原查询条件真实类型
        SearchDataUploadRecord search = (SearchDataUploadRecord)request;
        // 查询条件
        LambdaQueryWrapper<DataUploadRecordPO> queryWrapper = this.query();
        // 非逻辑删除
        queryWrapper.eq(DataUploadRecordPO::getIsDelete, EYesOrNo.NO.getValue());
        // 状态
        //queryWrapper.eq(NumericUtil.tryParseInt(search.getStatus()).compareTo(0) > 0, DataUploadRecordPO::getStatus, search.getStatus());
        // 状态列表
        //queryWrapper.in(ListUtil.isNotNullOrEmpty(search.getListStatus()), DataUploadRecordPO::getStatus, search.getListStatus());
        // 数据创建时间-起始
        queryWrapper.ge(NumericUtil.tryParseLong(search.getCreateTimeStart()).compareTo(0L) > 0, DataUploadRecordPO::getCreateTime, search.getCreateTimeStart());
        // 数据创建时间-截止
        queryWrapper.le(NumericUtil.tryParseLong(search.getCreateTimeEnd()).compareTo(0L) > 0, DataUploadRecordPO::getCreateTime, search.getCreateTimeEnd());
        // 关键字
        //if (StringUtil.isNotNullOrEmpty(search.getKeywords())) {
        //    queryWrapper.and(q ->
        //        q.like(DataUploadRecordPO::getName, search.getKeywords())
        //        .or().like(DataUploadRecordPO::getPhone, search.getKeywords())
        //    );
        //}
        // 排序处理
        if (ListUtil.isNotNullOrEmpty(search.getOrderBy())) {
            for (OrderByDTO item : search.getOrderBy()) {
                EOrderBy orderBy = EOrderBy.getByValue(item.getOrderBy());
                // 顺序排序
                if (item.getIsAsc()) {
                    switch (orderBy) {
                        // 主键
                        case ID:
                            queryWrapper.orderByAsc(DataUploadRecordPO::getId);
                            break;
                        // 数据创建时间
                        case CREATE_TIME:
                            queryWrapper.orderByAsc(DataUploadRecordPO::getCreateTime);
                            break;
                        // 最后更新时间
                        case UPDATE_TIME:
                            queryWrapper.orderByAsc(DataUploadRecordPO::getUpdateTime);
                            break;
                    }
                } else {
                    // 倒叙排序
                    switch (orderBy) {
                        // 主键
                        case ID:
                            queryWrapper.orderByDesc(DataUploadRecordPO::getId);
                            break;
                        // 数据创建时间
                        case CREATE_TIME:
                            queryWrapper.orderByDesc(DataUploadRecordPO::getCreateTime);
                            break;
                        // 最后更新时间
                        case UPDATE_TIME:
                            queryWrapper.orderByDesc(DataUploadRecordPO::getUpdateTime);
                            break;
                    }
                }
            }
        } else {
            queryWrapper.orderByDesc(DataUploadRecordPO::getId);
        }
        Page<DataUploadRecordPO> pageResult = super.selectPage(new Page<>(search.getPage(), search.getLimit()), queryWrapper);
        return new PagerResult<>(pageResult.getSize(), pageResult.getCurrent(), pageResult.getTotal(), pageResult.getRecords());
    }
    public Boolean add(DataUploadRecordPO item) {
        int rowCount = super.insert(item);
        return rowCount == 1;
    }
    public Boolean addNotIncrement(DataUploadRecordPO item) {
        int rowCount = super.insert(item);
        return rowCount == 1;
    }
    public DataUploadRecordPO getById(Long id) {
        return super.get(id);
    }
    public List<DataUploadRecordPO> getListById(List<Long> listId) {
        return super.getList(listId);
    }
}
src/main/java/com/nanjing/water/repository/mapper/AlarmHistoryMapper.java
@@ -2,10 +2,15 @@
import com.nanjing.water.repository.BasicMapper;
import com.nanjing.water.repository.po.AlarmHistoryPO;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Select;
/**
 * 报警信息 mapper
 * @author lin.liu
 */
public interface AlarmHistoryMapper extends BasicMapper<AlarmHistoryPO> {
    @Delete("DELETE FROM alarm_history where facility_id=#{facilityId} and code=#{code}")
    Integer deleteList(Long facilityId, String code);
}
src/main/java/com/nanjing/water/repository/mapper/DataUploadRecordMapper.java
对比新文件
@@ -0,0 +1,10 @@
package com.nanjing.water.repository.mapper;
import com.nanjing.water.repository.BasicMapper;import com.nanjing.water.repository.po.DataUploadRecordPO;
/**
 * 数据上报记录 mapper
 * @author lin.liu
 */
public interface DataUploadRecordMapper extends BasicMapper<DataUploadRecordPO> {
}
src/main/java/com/nanjing/water/repository/po/AlarmHistoryPO.java
@@ -55,7 +55,7 @@
     * 报警参数
     */
    @TableField(value = "code")
    private Integer code;
    private String code;
    /**
     * 报警描述
     */
@@ -71,11 +71,6 @@
     */
    @TableField(value = "is_solve")
    private Integer isSolve;
    /**
     * 是否确认(10误报 20已证实,200已处理)
     */
    @TableField(value = "is_confirm")
    private Integer isConfirm;
    /**
     * 是否删除
     */
src/main/java/com/nanjing/water/repository/po/CommonParametersPO.java
@@ -77,4 +77,7 @@
    @TableLogic
    @TableField(value = "is_delete")
    private Integer isDelete;
    @TableField(value = "parameter_type")
    private Integer parameterType;
}
src/main/java/com/nanjing/water/repository/po/DataUploadRecordPO.java
对比新文件
@@ -0,0 +1,95 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.po;
import lombok.Data;
import com.baomidou.mybatisplus.annotation.*;
import java.io.Serializable;
import java.sql.Timestamp;
import java.math.BigDecimal;
/**
 * 数据上报记录
 * @author lin.liu
 */
@Data
@TableName("data_upload_record")
public class DataUploadRecordPO implements Serializable {
    /**
     * 主键
     */
    private Long id;
    /**
     * 关联设备
     */
    @TableField(value = "facility_id")
    private Long facilityId;
    /**
     * 设备名称
     */
    @TableField(value = "facility_name")
    private String facilityName;
    /**
     * 字段名
     */
    @TableField(value = "columns_code")
    private String columnsCode;
    /**
     * 字段展示
     */
    @TableField(value = "columns_show")
    private String columnsShow;
    /**
     * 字段值
     */
    @TableField(value = "columns_value")
    private BigDecimal columnsValue;
    /**
     * 是否删除(逻辑删除)
     */
    @TableLogic
    @TableField(value = "is_delete")
    private Integer isDelete;
    /**
     * 数据创建时间
     */
    @TableField(value = "create_time")
    private Long createTime;
    /**
     * 数据更新时间
     */
    @TableField(value = "update_time")
    private Timestamp updateTime;
    /**
     * 数据上传时间
     */
    @TableField(value = "upload_time")
    private Long uploadTime;
    /**
     * 数据上传日期
     */
    @TableField(value = "upload_date")
    private String uploadDate;
}
src/main/java/com/nanjing/water/repository/po/WaterFacilityParameterPO.java
@@ -92,4 +92,14 @@
     */
    @TableField(value = "last_time")
    private String lastTime;
    /**
     * 排序
     */
    @TableField(value = "sort")
    private Integer sort;
    /**
     * 绑定参数类型(1环境参数 2运行参数)
     */
    @TableField(value = "parameter_type")
    private Integer parameterType;
}
src/main/java/com/nanjing/water/repository/vo/DataUploadRecordVO.java
对比新文件
@@ -0,0 +1,54 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.repository.vo;
import lombok.Data;
import com.nanjing.water.common.util.LocalDateTimeUtil;
import com.nanjing.water.common.util.NumericUtil;
import java.util.Objects;
import com.nanjing.water.repository.po.DataUploadRecordPO;
/**
 * 数据上报记录
 * @author lin.liu
 */
@Data
public class DataUploadRecordVO extends DataUploadRecordPO implements BasicVO {
    @Override
    public String getCreateTimeView() {
        if (NumericUtil.tryParseLong(this.getCreateTime()).compareTo(0L) > 0) {
            return LocalDateTimeUtil.toFormatString(this.getCreateTime());
        }
        return "";
    }
    @Override
    public String getUpdateTimeView() {
        if (Objects.isNull(this.getUpdateTime())) {
            return "";
        }
        return LocalDateTimeUtil.toFormatFullString(this.getUpdateTime());
    }
}
src/main/java/com/nanjing/water/repository/vo/WaterFacilityVO.java
@@ -27,6 +27,8 @@
import com.nanjing.water.repository.po.WaterFacilityPO;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
/**
@@ -37,6 +39,7 @@
public class WaterFacilityVO extends WaterFacilityPO implements BasicVO {
    private String pointName;
    private String facilityTypeName;
    private List<WaterFacilityParameterVO> parameterVOList;
    @Override
    public String getCreateTimeView() {
src/main/java/com/nanjing/water/service/AlarmHistoryService.java
@@ -55,15 +55,7 @@
    public ExecutedResult<String> create(ReqCreateAlarmHistory request) {
        //查询报警记录是否存在
        AlarmHistoryPO historyPO = mapper.getListByFacilityId(request.getFacilityId(), request.getCode());
        if(Objects.nonNull(historyPO)){
            historyPO.setTotalCount(historyPO.getTotalCount()+1);
            historyPO.setLastTime(LocalDateTimeUtil.nowTimeStamp());
            int i = mapper.updateById(historyPO);
            if (i != 1) {
                return ExecutedResult.failed("创建[报警信息]失败。");
            }
        }else {
            // 转换po
            AlarmHistoryPO item = AlarmHistoryConvert.INSTANCE.toCreate(request);
            // 设置记录创建时间
@@ -75,7 +67,6 @@
            if (rowCount != 1) {
                return ExecutedResult.failed("创建[报警信息]失败。");
            }
        }
        return ExecutedResult.success();
    }
@@ -102,7 +93,6 @@
            return ExecutedResult.failed(checkExists.getMsg());
        }
        AlarmHistoryPO data = checkExists.getData();
        data.setIsConfirm(status);
        int i = mapper.updateById(data);
        if(i!=1){
            return ExecutedResult.failed("编辑[报警信息]失败。");
src/main/java/com/nanjing/water/service/DataUploadRecordService.java
对比新文件
@@ -0,0 +1,407 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.service;
import com.baomidou.mybatisplus.core.toolkit.Sequence;
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.google.gson.reflect.TypeToken;
import com.nanjing.water.common.*;
import com.nanjing.water.common.enums.*;
import com.nanjing.water.common.model.Tuple;
import com.nanjing.water.common.util.*;
import com.nanjing.water.host.mqtt.CountVO;
import com.nanjing.water.repository.impl.*;
import com.nanjing.water.repository.po.*;
import org.apache.commons.lang3.BooleanUtils;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.lang.reflect.Type;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import com.nanjing.water.entity.request.datauploadrecord.ReqCreateDataUploadRecord;
import com.nanjing.water.entity.request.datauploadrecord.ReqModifyDataUploadRecord;
import com.nanjing.water.entity.search.SearchDataUploadRecord;
import com.nanjing.water.repository.vo.DataUploadRecordVO;
import com.nanjing.water.service.convert.DataUploadRecordConvert;
/**
 * 数据上报记录
 * @author lin.liu
 */
@Service
public class DataUploadRecordService extends BaseService {
    private static final Logger ERROR_LOGGER = LoggerUtil.get(ELogger.SYS_ERROR);
    @Autowired
    private DataUploadRecordMapperImpl mapper;
    @Autowired
    private WaterFacilityMapperImpl waterFacilityMapper;
    @Autowired
    private WaterFacilityParameterMapperImpl waterFacilityParameterMapper;
    @Autowired
    private WaterMonitoryPointMapperImpl waterMonitoryPointMapper;
    @Autowired
    private AlarmHistoryMapperImpl alarmHistoryMapper;
    public ExecutedResult<Long> create(ReqCreateDataUploadRecord request) {
        // 转换po
        DataUploadRecordPO item = DataUploadRecordConvert.INSTANCE.toCreate(request);
        // 设置状态
        //item.setStatus(EState.NORMAL.getValue());
        // 设置记录创建时间
        item.setCreateTime(LocalDateTimeUtil.nowTimeStamp());
        // 是否删除(逻辑删除)初始值
        item.setIsDelete(EYesOrNo.NO.getValue());
        int rowCount = mapper.insert(item);
        if (rowCount != 1) {
            return ExecutedResult.failed("创建[数据上报记录]失败。");
        }
        return ExecutedResult.success(item.getId());
    }
    public ExecutedResult<String> modify(ReqModifyDataUploadRecord request) {
        // 验证记录是否存在
        ExecutedResult<DataUploadRecordPO> checkExists = this.check4Id(request.getId());
        if (checkExists.isFailed()) {
            return ExecutedResult.failed(checkExists.getMsg());
        }
        // 转换po
        DataUploadRecordPO item = DataUploadRecordConvert.INSTANCE.toModify(request);
        int rowCount = mapper.updateById(item);
        if (rowCount != 1) {
            return ExecutedResult.failed("编辑[数据上报记录]失败。");
        }
        return ExecutedResult.success();
    }
    public ExecutedResult<DataUploadRecordVO> get(Long id) {
        DataUploadRecordVO result = new DataUploadRecordVO();
        DataUploadRecordPO find = mapper.get(id);
        if (null != find) {
            // 转换vo
            result = DataUploadRecordConvert.INSTANCE.toVo(find);
        }
        return ExecutedResult.success(result);
    }
//    public ExecutedResult<String> stop(Long id) {
//        // 验证记录是否存在
//        ExecutedResult<DataUploadRecordPO> checkExists = this.check4Id(id);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        DataUploadRecordPO item = new DataUploadRecordPO();
//        item.setId(id);
//        item.setStatus(EState.DISABLED.getValue());
//
//        int rowCount = mapper.updateById(item);
//        if (rowCount != 1) {
//           return ExecutedResult.failed("停用[数据上报记录]失败。");
//       }
//       return ExecutedResult.success();
//   }
//
//    public ExecutedResult<String> enable(Long id) {
//        // 验证记录是否存在
//        ExecutedResult<DataUploadRecordPO> checkExists = this.check4Id(id);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        DataUploadRecordPO item = new DataUploadRecordPO();
//        item.setId(id);
//        item.setStatus(EState.NORMAL.getValue());
//
//        int rowCount = mapper.updateById(item);
//        if (rowCount != 1) {
//            return ExecutedResult.failed("启用[数据上报记录]失败。");
//        }
//        return ExecutedResult.success();
//    }
//
//    public ExecutedResult<String> setSort(ReqSetSort request) {
//        // 验证记录是否存在
//        ExecutedResult<DataUploadRecordPO> checkExists = this.check4Id(request.getId());
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//        DataUploadRecordPO item = new DataUploadRecordPO();
//        item.setId(request.getId());
//        item.setSort(request.getSort());
//
//        int rowCount = mapper.updateById(item);
//        if (rowCount != 1) {
//            return ExecutedResult.failed("设置[数据上报记录]排序值失败。");
//        }
//        return ExecutedResult.success();
//    }
//
//    public ExecutedResult<String> listSetSort(ReqListSetSort request) {
//        // id列表
//        List<Long> listId = request.getList().stream().map(ReqSetSort::getId).collect(Collectors.toList());
//        // 验证记录是否存在
//        ExecutedResult<List<DataUploadRecordPO>> checkExists = this.check4Id(listId);
//        if (checkExists.isFailed()) {
//            return ExecutedResult.failed(checkExists.getMsg());
//        }
//
//        List<DataUploadRecordPO> listUpdate = request.getList().stream()
//                .map(c -> {
//                    DataUploadRecordPO item = new DataUploadRecordPO();
//                    item.setId(c.getId());
//                    item.setSort(c.getSort());
//                    return item;
//                })
//                .collect(Collectors.toList());
//        Boolean result = mapper.modifyList(listUpdate);
//        if (result) {
//            return ExecutedResult.success();
//        }
//        return ExecutedResult.failed("[数据上报记录]设置排序值失败");
//    }
//
//    public ExecutedResult<String> remove(Long id) {
//        Boolean result = mapper.deleteLogic(id);
//        if (BooleanUtils.isFalse(result)) {
//            return ExecutedResult.failed("删除[数据上报记录]失败。");
//        }
//        return ExecutedResult.success();
//    }
//
//    public ExecutedResult<String> removeList(List<Long> ids) {
//        Boolean result = mapper.deleteLogic(ids);
//        if (BooleanUtils.isFalse(result)) {
//            return ExecutedResult.failed("删除[数据上报记录]失败。");
//        }
//        return ExecutedResult.success();
//    }
    public ExecutedResult<List<DataUploadRecordVO>> getList(List<Long> listId) {
        List<DataUploadRecordVO> result = new ArrayList<>();
        List<DataUploadRecordPO> list = mapper.getList(listId);
        if (ListUtil.isNotNullOrEmpty(list)) {
            // 转换vo
            result = DataUploadRecordConvert.INSTANCE.toVo(list);
        }
        return ExecutedResult.success(result);
    }
    public ExecutedResult<PagerResult<DataUploadRecordVO>> search(SearchDataUploadRecord search) {
        // 处理创建时间范围-查询参数
        Tuple<String, String> createTimeRange = ParameterUtil.getTimeRange(search.getCreateTimeRange());
        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem1())) {
            search.setCreateTimeStart(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem1()).getTime());
        }
        if (StringUtil.isNotNullOrEmpty(createTimeRange.getItem2())) {
            search.setCreateTimeEnd(LocalDateTimeUtil.getTimeStamp(createTimeRange.getItem2()).getTime());
        }
        PagerResult<DataUploadRecordPO> pageList = mapper.search(search);
        List<DataUploadRecordVO> listVo = new ArrayList<>();
        List<DataUploadRecordPO> list = pageList.getList();
        if (ListUtil.isNotNullOrEmpty(list)) {
            pageList.setLastId(list.get(list.size() - 1).getId());
            // 转换vo
            listVo = DataUploadRecordConvert.INSTANCE.toVo(list);
        }
        PagerResult<DataUploadRecordVO> result = new PagerResult<>(pageList.getLimit(), pageList.getPage(), pageList.getTotal(), listVo);
        result.setLastId(pageList.getLastId());
        return ExecutedResult.success(result);
    }
    protected ExecutedResult<DataUploadRecordPO> check4Id(Long id) {
        DataUploadRecordPO exists = mapper.get(id);
        if (Objects.isNull(exists)) {
            return ExecutedResult.failed("[数据上报记录]不存在:" + id);
        }
        return ExecutedResult.success(exists);
    }
    protected ExecutedResult<List<DataUploadRecordPO>> check4Id(List<Long> listId) {
        // 从数据库查找数据上报记录
        List<DataUploadRecordPO> list = mapper.getList(listId);
        if (ListUtil.isNullOrEmpty(list)) {
            return ExecutedResult.failed("[数据上报记录]不存在." + listId);
        }
        // 数据库找到的id列表
        List<Long> listIdFind = list.stream().map(DataUploadRecordPO::getId).collect(Collectors.toList());
        // 数量不一致
        if (listId.size() != listIdFind.size()) {
            // 筛选数据库不存在的数据上报记录
            List<Long> listIdNotFound = listId.stream().filter(c -> !listIdFind.contains(c)).collect(Collectors.toList());
            if (ListUtil.isNullOrEmpty(list)) {
                return ExecutedResult.failed("[数据上报记录]不存在." + listIdNotFound);
            }
        }
        return ExecutedResult.success(list);
    }
    /**
     * mqtt收到消息
     * @param topic 主题
     * @param msg 消息内容
     */
    public void mqttReceived(String topic, String msg) {
        String action = "mqtt收到消息";
        if (StringUtil.isNullOrEmpty(topic)) {
            ERROR_LOGGER.error(action, "主题不能为空");
            return;
        }
        if (StringUtil.isNullOrEmpty(msg)) {
            ERROR_LOGGER.error(action, "消息不能为空");
            return;
        }
        Gson gson = new Gson();
        JsonObject object = gson.fromJson(msg, JsonObject.class);
        String asJsonObject = object.get("time").getAsString();
        Type listType = new TypeToken<List<CountVO>>() {
        }.getType();
        //获取data数据
        JsonArray data = object.getAsJsonArray("Data");
        List<CountVO> listVo = gson.fromJson(data, listType);
        for(CountVO vo:listVo){
            String[] split = vo.getName().split("-");
            vo.setName(split[0]);
            vo.setCode(split[1]);
        }
        List<WaterFacilityPO> facilityPOList = waterFacilityMapper.getList();
        List<WaterFacilityParameterPO> parameterPOList = waterFacilityParameterMapper.getList();
       // List<AlarmHistoryPO> historyPOList = alarmHistoryMapper.getList();
        //根据设备编号分组
        Map<String, List<CountVO>> collect = listVo.stream().collect(Collectors.groupingBy(CountVO::getName));
        for (Map.Entry<String, List<CountVO>> entry : collect.entrySet()) {
            //获取设备信息
            WaterFacilityPO facilityPO = facilityPOList.stream().filter(x -> x.getFacilityCode().equals(entry.getKey())).findFirst().orElse(null);
            //获取设备所属监控点
            List<WaterFacilityParameterPO>parameterList=new ArrayList<>();
            //循环上报数据
            for(CountVO vo:entry.getValue()){
                //保存数据
                WaterFacilityParameterPO parameterPO1 = parameterPOList.stream().filter(item -> item.getFacilityId().equals(facilityPO.getId()) && item.getColumnsCode().equals(vo.getCode())).findFirst().orElse(null);
                if(Objects.nonNull(parameterPO1)){
                    parameterPO1.setColumnValue(vo.getValue());
                    parameterPO1.setLastTime(asJsonObject);
                    parameterList.add(parameterPO1);
                }
                //判断报警
              //  AlarmHistoryPO alarmHistoryPO=null;
//                if(ListUtil.isNotNullOrEmpty(historyPOList)){
//                 alarmHistoryPO = historyPOList.stream().filter(item -> item.getFacilityId().equals(parameterPO1.getFacilityId()) && item.getCode().equals(parameterPO1.getColumnsCode()) && item.getIsSolve() == 0).findFirst().orElse(null);
//                }
                switch (vo.getCode()){
                    case "QF1":
                        //1号空开吸合关闭报警
                        QFCreateAlarm(facilityPO,parameterPO1, vo.getValue() );
                        break;
                    case "QF2":
                        //2号空开吸合关闭报警
                        QFCreateAlarm(facilityPO,parameterPO1, vo.getValue());
                        break;
                    case "QF3":
                        //3号空开吸合关闭报警
                        QFCreateAlarm(facilityPO,parameterPO1, vo.getValue());
                        break;
                    case "QF4":
                        //4号空开吸合关闭报警
                        QFCreateAlarm(facilityPO,parameterPO1, vo.getValue());
                        break;
                    case "B001Fault":
                        //1号泵综合故障
                        faultCreateAlarm(facilityPO,parameterPO1, vo.getValue());
                        break;
                    case "B002Fault":
                        //2号泵综合故障
                        faultCreateAlarm(facilityPO,parameterPO1, vo.getValue());
                        break;
                    case "SQ":
                        //水侵报警
                        SQFaultCreateAlarm(facilityPO,parameterPO1, vo.getValue());
                        break;
                    case "H1001Fault":
                        //高水位报警
                        faultCreateAlarm(facilityPO,parameterPO1, vo.getValue());
                        break;
                    case "L1001Fault":
                        //低水位报警
                        faultCreateAlarm(facilityPO,parameterPO1, vo.getValue());
                        break;
                }
            }
            waterFacilityParameterMapper.updateById(parameterList);
        }
    }
     public void QFCreateAlarm(WaterFacilityPO facilityPO,WaterFacilityParameterPO parameterPO,String value){
        if(value.equals("false")){
                alarmHistoryMapper.deleteList(parameterPO.getFacilityId(),parameterPO.getColumnsCode());
                AlarmHistoryPO alarmHistoryPO=new AlarmHistoryPO();
                alarmHistoryPO.setFacilityId(facilityPO.getId());
                alarmHistoryPO.setFacilityName(facilityPO.getFacilityName());
                alarmHistoryPO.setCode(parameterPO.getColumnsCode());
                alarmHistoryPO.setDescription(parameterPO.getColumnsShow()+"关闭");
                alarmHistoryPO.setCreateTime(LocalDateTimeUtil.nowTimeStamp());
                alarmHistoryPO.setLastTime(LocalDateTimeUtil.nowTimeStamp());
                alarmHistoryMapper.insert(alarmHistoryPO);
        }
     }
    public void faultCreateAlarm(WaterFacilityPO facilityPO,WaterFacilityParameterPO parameterPO,String value){
        if(value.equals("true")){
            alarmHistoryMapper.deleteList(parameterPO.getFacilityId(),parameterPO.getColumnsCode());
            AlarmHistoryPO alarmHistoryPO=new AlarmHistoryPO();
            alarmHistoryPO.setFacilityId(facilityPO.getId());
            alarmHistoryPO.setFacilityName(facilityPO.getFacilityName());
            alarmHistoryPO.setCode(parameterPO.getColumnsCode());
            alarmHistoryPO.setDescription(parameterPO.getColumnsShow()+"关闭");
            alarmHistoryPO.setCreateTime(LocalDateTimeUtil.nowTimeStamp());
            alarmHistoryPO.setLastTime(LocalDateTimeUtil.nowTimeStamp());
            alarmHistoryMapper.insert(alarmHistoryPO);
        }
    }
    public void SQFaultCreateAlarm(WaterFacilityPO facilityPO,WaterFacilityParameterPO parameterPO,String value){
        if(value.equals("1")){
            alarmHistoryMapper.deleteList(parameterPO.getFacilityId(),parameterPO.getColumnsCode());
            AlarmHistoryPO alarmHistoryPO=new AlarmHistoryPO();
            alarmHistoryPO.setFacilityId(facilityPO.getId());
            alarmHistoryPO.setFacilityName(facilityPO.getFacilityName());
            alarmHistoryPO.setCode(parameterPO.getColumnsCode());
            alarmHistoryPO.setDescription(parameterPO.getColumnsShow()+"关闭");
            alarmHistoryPO.setCreateTime(LocalDateTimeUtil.nowTimeStamp());
            alarmHistoryPO.setLastTime(LocalDateTimeUtil.nowTimeStamp());
            alarmHistoryMapper.insert(alarmHistoryPO);
        }
    }
}
src/main/java/com/nanjing/water/service/WaterFacilityParameterService.java
@@ -36,9 +36,12 @@
import com.nanjing.water.repository.po.WaterFacilityPO;
import com.nanjing.water.repository.po.WaterFacilityParameterPO;
import com.nanjing.water.repository.vo.WaterFacilityParameterVO;
import com.nanjing.water.repository.vo.WaterFacilityVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
@@ -253,7 +256,49 @@
        result.setLastId(pageList.getLastId());
        return ExecutedResult.success(result);
    }
    public ExecutedResult<List<WaterFacilityVO>> getData(){
        List<WaterFacilityVO>result=new ArrayList<>();
        //获取泵房数据
        List<WaterFacilityPO> facilityPOList = waterFacilityMapper.getList();
        //获取泵房设备参数
        List<WaterFacilityParameterPO> parameterPOList = mapper.getList();
        if(ListUtil.isNotNullOrEmpty(facilityPOList)){
            result = CopierUtil.mapTo(facilityPOList, WaterFacilityVO.class);
            for(WaterFacilityVO facilityVO:result){
                List<WaterFacilityParameterPO> collect = parameterPOList.stream().filter(x -> x.getFacilityId().equals(facilityVO.getId())).collect(Collectors.toList());
                if(ListUtil.isNotNullOrEmpty(collect)){
                    List<WaterFacilityParameterVO>parameterVOList=CopierUtil.mapTo(collect, WaterFacilityParameterVO.class);
                    for(WaterFacilityParameterVO parameterVO:parameterVOList){
                        boolean matches = parameterVO.getColumnValue().matches("-?\\d+(\\.\\d+)?");
                        if (matches) {
                            BigDecimal value = new BigDecimal(parameterVO.getColumnValue()).setScale(3, BigDecimal.ROUND_DOWN);
                            parameterVO.setColumnValue(value.toString());
                        }
                        if("false".equals(parameterVO.getColumnValue())){
                            parameterVO.setColumnValue("关");
                        }
                        if("true".equals(parameterVO.getColumnValue())){
                            parameterVO.setColumnValue("开");
                        }
//                        if(parameterVO.getColumnsCode().equals("B001Time")||parameterVO.getColumnsCode().equals("B002Time")){
//                            BigDecimal bigDecimal=new BigDecimal(parameterVO.getColumnValue()).setScale(2,RoundingMode.DOWN);
//                            if(bigDecimal.compareTo(new BigDecimal(60).setScale(2,RoundingMode.DOWN))>0){
//                                BigDecimal data = bigDecimal.divide(new BigDecimal(60),2,BigDecimal.ROUND_HALF_UP);
//                                parameterVO.setColumnValue(data+"分");
//                            }
//                            if(bigDecimal.compareTo(new BigDecimal(3600))>0){
//                                BigDecimal data = bigDecimal.divide(new BigDecimal(3600),2,BigDecimal.ROUND_HALF_UP);
//                                parameterVO.setColumnValue(data+"时");
//                            }
//                        }
                    }
                    facilityVO.setParameterVOList(parameterVOList);
                }
            }
        }
        return ExecutedResult.success(result);
    }
    protected ExecutedResult<WaterFacilityParameterPO> check4Id(Long id) {
        WaterFacilityParameterPO exists = mapper.get(id);
        if (Objects.isNull(exists)) {
src/main/java/com/nanjing/water/service/convert/DataUploadRecordConvert.java
对比新文件
@@ -0,0 +1,48 @@
/**
#                                                    __----~~~~~~~~~~~------___
#                                   .  .   ~~//====......          __--~ ~~
#                   -.            \_|//     |||\\  ~~~~~~::::... /~
#                ___-==_       _-~o~  \/    |||  \\            _/~~-
#        __---~~~.==~||\=_    -_--~/_-~|-   |\\   \\        _/~
#    _-~~     .=~    |  \\-_    '-~7  /-   /  ||    \      /
#  .~       .~       |   \\ -_    /  /-   /   ||      \   /
# /  ____  /         |     \\ ~-_/  /|- _/   .||       \ /
# |~~    ~~|--~~~~--_ \     ~==-/   | \~--===~~        .\
#          '         ~-|      /|    |-~\~~       __--~~
#                      |-~~-_/ |    |   ~\_   _-~            /\
#                           /  \     \__   \/~                \__
#                       _--~ _/ | .-~~____--~-/                  ~~==.
#                      ((->/~   '.|||' -_|    ~~-/ ,              . _||
#                                 -_     ~\      ~~---l__i__i__i--~~_/
#                                 _-~-__   ~)  \--______________--~~
#                               //.-~~~-~_--~- |-------~~~~~~~~
#                                      //.-~~~--\
#                  神兽保佑
#                  永无BUG!
*/
package com.nanjing.water.service.convert;
import com.nanjing.water.entity.request.datauploadrecord.ReqCreateDataUploadRecord;
import com.nanjing.water.entity.request.datauploadrecord.ReqModifyDataUploadRecord;
import com.nanjing.water.repository.po.DataUploadRecordPO;
import com.nanjing.water.repository.vo.DataUploadRecordVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import java.util.List;
/**
 * 数据上报记录
 * @author {#=author}
 */
@Mapper
public interface DataUploadRecordConvert {
    DataUploadRecordConvert INSTANCE = Mappers.getMapper(DataUploadRecordConvert.class);
    DataUploadRecordPO toCreate(ReqCreateDataUploadRecord request);
    DataUploadRecordPO toModify(ReqModifyDataUploadRecord request);
    DataUploadRecordVO toVo(DataUploadRecordPO item);
    List<DataUploadRecordVO> toVo(List<DataUploadRecordPO> list);
}
src/main/resources/application-dev.yml
@@ -6,7 +6,7 @@
    date-format: yyyy-MM-dd HH:mm:ss
  datasource:
    driver-class-name: org.postgresql.Driver
    url: jdbc:postgresql://113.250.189.120:57654/test_db1
    url: jdbc:postgresql://113.250.189.120:57654/nanjing_water_system
    username: lunhan
    password: lunhan.20240330
    druid:
src/test/java/com/nanjing/water/DateTimeTest.java
@@ -5,11 +5,16 @@
import org.junit.runner.RunWith;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.math.BigDecimal;
import java.math.RoundingMode;
@RunWith(SpringJUnit4ClassRunner.class)
public class DateTimeTest {
    @Test
    public void time2BCDTest() {
        String timeStr = LocalDateTimeUtil.nowTimeBCD("yyMMddHHmmss");
        System.out.println(timeStr);
        BigDecimal a=BigDecimal.valueOf(80);
        BigDecimal b = BigDecimal.valueOf(60);
        BigDecimal bigDecimal = a.divide(b,2,BigDecimal.ROUND_HALF_UP);
        System.out.println(bigDecimal);
    }
}