ke
2024-08-05 181164e578bb0412a252c71a16500e6a62258d05
Merge remote-tracking branch 'origin/jtdev' into jtdev
20 files modified
25 files added
1510 ■■■■■ changed files
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/entity/DamAlarmRecord.java 77 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/entity/DamAlarmRecordDetail.java 72 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/enums/DamEnum.java 95 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/fegin/INkyClient.java 10 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/fegin/INkyClientFallback.java 3 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/requestpojo/RealStationReqPo.java 12 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/requestpojo/waterLevelInfoReqPo.java 11 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/resultpojo/DamAlarmRecordReqPo.java 13 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/vo/DamAlarmRecordDetailVO.java 9 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/vo/DamAlarmRecordVO.java 37 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/constant/ZtApiDataColumnConstant.java 2 ●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeStrategyImpl.java 12 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/impl/SmsServiceImpl.java 8 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/pom.xml 8 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/constant/OpenApiConstant.java 32 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/constant/ZtConfigConstant.java 29 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/controller/DamAlarmRecordController.java 99 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/controller/DamAlarmRecordDetailController.java 100 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/controller/OpenApiController.java 53 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/feign/NkyClientImpl.java 11 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/DamAlarmRecordDetailMapper.java 26 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/DamAlarmRecordDetailMapper.xml 12 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/DamAlarmRecordMapper.java 26 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/DamAlarmRecordMapper.xml 47 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/OpenApiMapper.java 18 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/OpenApiMapper.xml 46 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/rabbitmq/MyRabbitReceiver.java 72 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/DamAlarmRecordDetailService.java 22 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/DamAlarmRecordService.java 22 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/IOpenApiService.java 32 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/DamAlarmRecordDetailServiceImpl.java 31 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/DamAlarmRecordServiceImpl.java 31 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/OpenApiServiceImpl.java 295 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/resources/application-dev.yml 12 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/reportFlood/mapper/ReportFloodRecordMapper.xml 18 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/reportFlood/vo/ReportFloodRecordVO.java 5 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgGxStepMapper.xml 2 ●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgGxStepServiceImpl.java 23 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/dto/TbProjectIsfillDTO.java 8 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbProjectMapper.xml 25 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/statisticsVO/StatisticsTableProject.java 10 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/vo/TbProjectIsfillVO.java 8 ●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/controller/DownTemplateController.java 2 ●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/word/doc/overFloodTemplate.docx patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/NkyXxlJob.java 24 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/entity/DamAlarmRecord.java
New file
@@ -0,0 +1,77 @@
package cn.gistack.nky.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
 * 南科院大坝告警记录信息表
 * @author zhongrj
 * @date 2024-07-25
 */
@Data
@TableName( value = "NKY_DAM_ALARM_RECORD")
@ApiModel(value = "DamAlarmRecord对象", description = "DamAlarmRecord对象")
public class DamAlarmRecord implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;
    /**
     * 测点编号
     */
    @ApiModelProperty(value = "测点编号")
    private String pointId;
    /**
     * 水库编号
     */
    @ApiModelProperty(value = "水库编号")
    private String resGuid;
    /**
     * 测点安全评估等级
     */
    @ApiModelProperty(value = "测点安全评估等级")
    private Integer pointWarnLevel;
    /**
     * 测点告警信息
     */
    @ApiModelProperty(value = "测点告警信息")
    private String pointWarnInfo;
    /**
     * 测点值
     */
    @ApiModelProperty(value = "测点值")
    private String pointValue;
    /**
     * 采集时间
     */
    @ApiModelProperty(value = "采集时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date collecTime;
    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
}
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/entity/DamAlarmRecordDetail.java
New file
@@ -0,0 +1,72 @@
package cn.gistack.nky.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
 * 南科院大坝告警记录详情信息表
 * @author zhongrj
 * @date 2024-07-25
 */
@Data
@TableName( value = "NKY_DAM_ALARM_RECORD_DETAIL",autoResultMap = true)
@ApiModel(value = "DamAlarmRecordDetail对象", description = "DamAlarmRecordDetail对象")
public class DamAlarmRecordDetail implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;
    /**
     * 大坝告警记录ID
     */
    @ApiModelProperty(value = "大坝告警记录ID")
    private String DamAlarmRecordId;
    /**
     * 算法名称
     */
    @ApiModelProperty(value = "算法名称")
    private String algorithmName;
    /**
     * 算法告警等级
     */
    @ApiModelProperty(value = "算法告警等级")
    private Integer algorithmWarnLevel;
    /**
     * 算法告警信息
     */
    @ApiModelProperty(value = "算法告警信息")
    private String algorithmWarnInfo;
    /**
     * 算法告警依据
     */
    @ApiModelProperty(value = "算法告警依据")
    @TableField(value = "ALGORITHM_WARN_EXPLAIN",typeHandler = FastjsonTypeHandler.class)
    private String algorithmWarnExplain;
    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
}
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/enums/DamEnum.java
New file
@@ -0,0 +1,95 @@
package cn.gistack.nky.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
 * 大坝安全监测类型 南科院 枚举类
 *
 * @author zhongrj
 * @apiNote 该枚举类对应南科院的资源编码,可根据业务需求自行拓展
 */
@Getter
@AllArgsConstructor
public enum DamEnum {
    /**
     * 渗压
     */
    SY("1","seepage","/services/1234567890ABCDEFGHIJKLMN/realtime/op/sy/api"),
    /**
     * 渗流
     */
    SL("2","lsy" ,"/services/1234567890ABCDEFGHIJKLMN/realtime/op/sl/api"),
    /**
     * x 位移
     */
    X("3","deform_x","/services/1234567890ABCDEFGHIJKLMN/"),
    /**
     * y 位移
     */
    Y("4","deform_y","/services/1234567890ABCDEFGHIJKLMN/"),
    /**
     * z 位移
     */
    Z("5","deform_z","/services/1234567890ABCDEFGHIJKLMN/"),
    ;
    /**
     * 类型名称
     */
    final String key;
    /**
     * 类型编号
     */
    final String name;
    /**
     * API URL
     */
    final String apiUrl;
    /**
     * 匹配枚举值
     *
     * @param name 名称
     * @return BladeUserEnum
     */
    public static DamEnum ofName(String name) {
        if (name == null) {
            return null;
        }
        DamEnum[] values = DamEnum.values();
        for (DamEnum damEnum : values) {
            if (damEnum.name.equals(name)) {
                return damEnum;
            }
        }
        return null;
    }
    /**
     * 匹配枚举值
     *
     * @param type 类型
     * @return BladeUserEnum
     */
    public static DamEnum ofType(String type) {
        if (type == null) {
            return null;
        }
        DamEnum[] values = DamEnum.values();
        for (DamEnum damEnum : values) {
            if (damEnum.key.equals(type)) {
                return damEnum;
            }
        }
        return null;
    }
}
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/fegin/INkyClient.java
@@ -46,6 +46,9 @@
    String INIT_ALGORITHM = API_PREFIX + "initAlgorithm";
    // 实时测点输入
    String POINT_VALUE_INLET = API_PREFIX + "pointValueInlet";
    /**
     * 获取arima预测结果
     * @param type
@@ -106,4 +109,11 @@
    @PostMapping(INIT_ALGORITHM)
    void initAlgorithm(@RequestBody List<String> resList);
    /**
     * 实时测点测值输入
     * @param type 1:渗压,2:渗流,3:X位移,4:Y位移,5:Z位移
     */
    @GetMapping(POINT_VALUE_INLET)
    void pointValueInlet(@RequestParam("type") String type);
}
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/fegin/INkyClientFallback.java
@@ -74,5 +74,8 @@
    }
    @Override
    public void pointValueInlet(String type) {
    }
}
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/requestpojo/RealStationReqPo.java
New file
@@ -0,0 +1,12 @@
package cn.gistack.nky.requestpojo;
import lombok.Data;
/**
 * 实时测点请求对象参数
 */
@Data
public class RealStationReqPo {
}
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/requestpojo/waterLevelInfoReqPo.java
New file
@@ -0,0 +1,11 @@
package cn.gistack.nky.requestpojo;
import lombok.Data;
/**
 * 水位信息
 */
@Data
public class waterLevelInfoReqPo {
}
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/resultpojo/DamAlarmRecordReqPo.java
New file
@@ -0,0 +1,13 @@
package cn.gistack.nky.resultpojo;
import cn.gistack.nky.vo.DamAlarmRecordVO;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@Data
public class DamAlarmRecordReqPo {
    private List<DamAlarmRecordVO> data = new ArrayList<>();
}
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/vo/DamAlarmRecordDetailVO.java
New file
@@ -0,0 +1,9 @@
package cn.gistack.nky.vo;
import cn.gistack.nky.entity.DamAlarmRecordDetail;
import lombok.Data;
@Data
public class DamAlarmRecordDetailVO extends DamAlarmRecordDetail {
}
skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/vo/DamAlarmRecordVO.java
New file
@@ -0,0 +1,37 @@
package cn.gistack.nky.vo;
import cn.gistack.nky.entity.DamAlarmRecord;
import cn.gistack.nky.entity.DamAlarmRecordDetail;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@Data
public class DamAlarmRecordVO extends DamAlarmRecord {
    /**
     * 详情对象
     */
    private List<DamAlarmRecordDetail> damAlarmRecordDetail = new ArrayList<>();
    /**
     * 类型
     */
    private Integer type;
    /**
     * 水库名称
     */
    private String resName;
    /**
     * 开始时间
     */
    private String startTime;
    /**
     * 结束时间
     */
    private String endTime;
}
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/constant/ZtApiDataColumnConstant.java
@@ -487,7 +487,7 @@
     */
    public static List<String>  videoOffline = new ArrayList<String>()
    {{
        add("res_nm");
        add("county_nm,town_nm,res_nm");
        add("video_name");
    }};
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/notice/service/impl/NoticeStrategyImpl.java
@@ -197,15 +197,15 @@
    /**
     * 策略6: 水位初次超汛限告警(当前测试发送站内信)
     * 策略6: 水位初次超汛限告警
     *
     * @param arg1
     * @param arg2
     * @return
     */
    public String waterFirstOverHandle(String arg1, String arg2) {
        String adCode = "421303000000";
//        String adCode = null;
//        String adCode = "421303000000";
        String adCode = null;
        // 查询当前策略对应的告警规则信息
        AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
        // 调用中台服务接口查询数据
@@ -242,7 +242,7 @@
        // 查询当前策略对应的告警规则信息
        AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
        // 调用中台服务接口查询数据
        JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.res_over_z_small_over_api);
        JSONArray ztData = noticeHandle.getZtData("?diff_value=0", ZtApiUrlConstant.res_over_z_small_over_api);
        // 获取告警规则详情,判断告警类型(短信,电话,站内信)
        if (null != alarmRule) {
            // 查询告警详情信息
@@ -524,7 +524,7 @@
        // 查询当前策略对应的告警规则信息
        AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
        // 调用中台服务接口查询数据
        JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_rain_dy_api);
        JSONArray ztData = noticeHandle.getZtData("?is_over_z=1", ZtApiUrlConstant.alarm_rain_dy_api);
        // 获取告警规则详情,判断告警类型(短信,电话,站内信)
        if (null != alarmRule) {
            // 查询告警详情信息
@@ -555,7 +555,7 @@
        // 查询当前策略对应的告警规则信息
        AlarmRule alarmRule = alarmRuleService.getOne(new QueryWrapper<AlarmRule>().eq("rule_name", arg1));
        // 调用中台服务接口查询数据
        JSONArray ztData = noticeHandle.getZtData("", ZtApiUrlConstant.alarm_rain_by_api);
        JSONArray ztData = noticeHandle.getZtData("?is_over_z=1", ZtApiUrlConstant.alarm_rain_by_api);
        // 获取告警规则详情,判断告警类型(短信,电话,站内信)
        if (null != alarmRule) {
            // 查询告警详情信息
skjcmanager/skjcmanager-service/skjcmanager-alerts/src/main/java/cn/gistack/alerts/sms/service/impl/SmsServiceImpl.java
@@ -980,7 +980,11 @@
        return null;
    }
    /**
     * 视频数据接收不到
     * @param smsRequestTemplate
     * @return
     */
    @Override
    public Map<String, Object> sendSignMsgMergeCdVideo(SmsRequestTemplate smsRequestTemplate) {
@@ -1031,7 +1035,7 @@
            // 如果一人对应水库数量超过30个,则分批发送
            List<List<Temp>> lists = Lists.partition(new ArrayList<>(infoList), 30);
            List<List<Temp>> lists = Lists.partition(new ArrayList<>(infoList), 15);
            for (List<Temp> list : lists) {
                List<AlarmRecordDetailVO> alarmRecordDetailList = new ArrayList<>();
                // 遍历
skjcmanager/skjcmanager-service/skjcmanager-nky/pom.xml
@@ -31,10 +31,10 @@
            <version>3.0.1.RELEASE</version>
        </dependency>
        <!--rabit消息队列-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
        </dependency>
<!--        <dependency>-->
<!--            <groupId>org.springframework.boot</groupId>-->
<!--            <artifactId>spring-boot-starter-amqp</artifactId>-->
<!--        </dependency>-->
        <dependency>
            <groupId>cn.gistack</groupId>
            <artifactId>skjcmanager-sm-api</artifactId>
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/constant/OpenApiConstant.java
New file
@@ -0,0 +1,32 @@
package cn.gistack.nky.constant;
/**
 * 南科院预警算法平台api 常量配置信息
 */
public class OpenApiConstant {
    /**
     * 基础url
     */
    public static final String BASE_URL = "http://42.194.236.87:9607";
    /**
     * 水库信息注册接口
     */
    public static final String DAM_REGISTER_URL = BASE_URL + "/openApi/damRegister";
    /**
     * 测点信息注册接口
     */
    public static final String POINT_REGISTER_URL = BASE_URL + "openApi/pointRegister";
    /**
     * 实时测点测值输入接口
     */
    public static final String POINT_VALUE_INLET_URL = BASE_URL + "/openApi/pointValueInlet";
    /**
     * serial_no 计数key
     */
    public static final String serial_no_key = "nky:serial_no:";
}
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/constant/ZtConfigConstant.java
New file
@@ -0,0 +1,29 @@
package cn.gistack.nky.constant;
/**
 * 中台接口请求信息常量
 * @author zhongrj
 * @since 2023-04-21
 */
public class ZtConfigConstant {
    /**
     * 请求头 key
     */
    public static final String header_key = "apiKey";
    /**
     * 请求头 value
     */
    public static final String header_value = "F1DBECD719108635189480CF60E6553ADB3109616426BD537F25A430DFC613B491A025C4A51E77FD08C6E5B7CBE05917A461286E7B6D69F1AB1B14F946149D2065B0C675F8FEDF4B9B05C1496881BC5A";
    /**
     * 请求头url 前缀(prod)
     */
    public static final String url_prefix = "http://10.42.6.192";
    /**
     *  水位数据缺失
     */
    public static final String realtime_op_sy_api = url_prefix + "/services/1234567890ABCDEFGHIJKLMN/realtime/op/sy/api";
}
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/controller/DamAlarmRecordController.java
New file
@@ -0,0 +1,99 @@
package cn.gistack.nky.controller;
import cn.gistack.nky.entity.DamAlarmRecord;
import cn.gistack.nky.service.DamAlarmRecordService;
import cn.gistack.nky.vo.DamAlarmRecordVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
/**
 * 大坝告警记录控制层
 * @author zhongrj
 * @date 2024-07-25
 */
@RestController
@AllArgsConstructor
@RequestMapping("/damAlarmRecord/damAlarmRecord")
public class DamAlarmRecordController{
    private final DamAlarmRecordService damAlarmRecordService;
    /**
     * 分页列表查询
     *
     * @param damAlarmRecord
     * @return
     */
    @ApiOperation(value="告警记录-分页列表查询", notes="告警记录-分页列表查询")
    @GetMapping(value = "/list")
    public R queryPageList(DamAlarmRecord damAlarmRecord, Query query) {
        IPage<DamAlarmRecord> pageList = damAlarmRecordService.page(Condition.getPage(query), Condition.getQueryWrapper(damAlarmRecord));
        return R.data(pageList);
    }
    /**
     * 自定义分页列表查询
     * @param query
     * @param damAlarmRecord
     * @return
     */
    @ApiOperation(value="告警记录-自定义分页列表查询", notes="告警记录-自定义分页列表查询")
    @GetMapping(value = "/page")
    public R selectAlarmPage(DamAlarmRecordVO damAlarmRecord, Query query) {
        return R.data(damAlarmRecordService.selectDamAlarmRecordPage(Condition.getPage(query),damAlarmRecord));
    }
    /**
     * 添加
     *
     * @param damAlarmRecord
     * @return
     */
    @ApiOperation(value="告警记录-添加", notes="告警记录-添加")
    @PostMapping(value = "/add")
    public R add(@RequestBody DamAlarmRecord damAlarmRecord) {
        return R.data(damAlarmRecordService.save(damAlarmRecord));
    }
    /**
     * 编辑
     *
     * @param damAlarmRecord
     * @return
     */
    @ApiOperation(value="告警记录-编辑", notes="告警记录-编辑")
    @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
    public R edit(@RequestBody DamAlarmRecord damAlarmRecord) {
        return R.data(damAlarmRecordService.updateById(damAlarmRecord));
    }
    /**
     * 通过id删除
     * @param id
     * @return
     */
    @ApiOperation(value="告警记录-通过id删除", notes="告警记录-通过id删除")
    @DeleteMapping(value = "/delete")
    public R delete(@RequestParam(name="id",required=true) String id) {
        return R.data(damAlarmRecordService.removeById(id));
    }
    /**
     * 批量删除
     *
     * @param ids
     * @return
     */
    @ApiOperation(value="告警记录-批量删除", notes="告警记录-批量删除")
    @DeleteMapping(value = "/deleteBatch")
    public R deleteBatch(@RequestParam(name="ids",required=true) String ids) {
        return R.data(this.damAlarmRecordService.removeByIds(Arrays.asList(ids.split(","))));
    }
}
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/controller/DamAlarmRecordDetailController.java
New file
@@ -0,0 +1,100 @@
package cn.gistack.nky.controller;
import cn.gistack.nky.entity.DamAlarmRecordDetail;
import cn.gistack.nky.service.DamAlarmRecordDetailService;
import cn.gistack.nky.vo.DamAlarmRecordDetailVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
/**
 * 大坝告警记录详情控制层
 * @author zhongrj
 * @date 2024-07-25
 */
@RestController
@AllArgsConstructor
@RequestMapping("/damAlarmRecordDetail/damAlarmRecordDetail")
public class DamAlarmRecordDetailController {
    private final DamAlarmRecordDetailService damAlarmRecordDetailService;
    /**
     * 分页列表查询
     *
     * @param damAlarmRecordDetail
     * @return
     */
    @ApiOperation(value="告警记录-分页列表查询", notes="告警记录-分页列表查询")
    @GetMapping(value = "/list")
    public R queryPageList(DamAlarmRecordDetail damAlarmRecordDetail, Query query) {
        IPage<DamAlarmRecordDetail> pageList = damAlarmRecordDetailService.page(Condition.getPage(query), Condition.getQueryWrapper(damAlarmRecordDetail));
        return R.data(pageList);
    }
    /**
     * 自定义分页列表查询
     * @param query
     * @param damAlarmRecordDetail
     * @return
     */
    @ApiOperation(value="告警记录-自定义分页列表查询", notes="告警记录-自定义分页列表查询")
    @GetMapping(value = "/page")
    public R selectAlarmPage(DamAlarmRecordDetailVO damAlarmRecordDetail, Query query) {
        return R.data(damAlarmRecordDetailService.selectDamAlarmRecordDetailPage(Condition.getPage(query),damAlarmRecordDetail));
    }
    /**
     * 添加
     *
     * @param damAlarmRecordDetail
     * @return
     */
    @ApiOperation(value="告警记录-添加", notes="告警记录-添加")
    @PostMapping(value = "/add")
    public R add(@RequestBody DamAlarmRecordDetail damAlarmRecordDetail) {
        return R.data(damAlarmRecordDetailService.save(damAlarmRecordDetail));
    }
    /**
     * 编辑
     *
     * @param damAlarmRecordDetail
     * @return
     */
    @ApiOperation(value="告警记录-编辑", notes="告警记录-编辑")
    @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
    public R edit(@RequestBody DamAlarmRecordDetail damAlarmRecordDetail) {
        return R.data(damAlarmRecordDetailService.updateById(damAlarmRecordDetail));
    }
    /**
     * 通过id删除
     * @param id
     * @return
     */
    @ApiOperation(value="告警记录-通过id删除", notes="告警记录-通过id删除")
    @DeleteMapping(value = "/delete")
    public R delete(@RequestParam(name="id",required=true) String id) {
        return R.data(damAlarmRecordDetailService.removeById(id));
    }
    /**
     * 批量删除
     *
     * @param ids
     * @return
     */
    @ApiOperation(value="告警记录-批量删除", notes="告警记录-批量删除")
    @DeleteMapping(value = "/deleteBatch")
    public R deleteBatch(@RequestParam(name="ids",required=true) String ids) {
        return R.data(this.damAlarmRecordDetailService.removeByIds(Arrays.asList(ids.split(","))));
    }
}
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/controller/OpenApiController.java
New file
@@ -0,0 +1,53 @@
package cn.gistack.nky.controller;
import cn.gistack.nky.service.DamAlarmRecordDetailService;
import cn.gistack.nky.service.DamAlarmRecordService;
import cn.gistack.nky.service.IOpenApiService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.tool.api.R;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
 * 南科院水库预警算法api调用
 * @author zhongrj
 * @date 2024-07-25
 */
@Slf4j
@RestController
@AllArgsConstructor
@RequestMapping("/openApi/openApi")
public class OpenApiController {
    private IOpenApiService openApiService;
    /**
     * 水库及测点信息注册-调用南科院接口
     * @param resGuidList 水库编号集合
     * @return
     */
    @PostMapping("/waterAndPointRegister")
    public R waterAndPointRegister(@RequestBody List<String> resGuidList){
        return R.status(openApiService.waterAndPointRegister(resGuidList));
    }
    /**
     * 实时测点测值输入-调用南科院接口
     * @return
     */
    @GetMapping("/realStationInput")
    public void realStationInput(){
        openApiService.realStationInput("1");
    }
    /**
     * 预警回调
     * @param data
     * @return
     */
    @PostMapping("/alarmCallBack")
    public R alarmCallBack(@RequestBody String data){
        return R.status(openApiService.alarmCallBack(data));
    }
}
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/feign/NkyClientImpl.java
@@ -22,6 +22,7 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
@@ -42,6 +43,7 @@
    private final IAlarmGetService alarmGetService;
    private final PatrolTaskClient patrolTaskClient;
    private final IZtApiService ztApiService;
    private final IOpenApiService openApiService;
    @Override
@@ -227,4 +229,13 @@
        });
    }
    /**
     * 实时测点测值输入
     * @param type 1:渗压,2:渗流,3:X位移,4:Y位移,5:Z位移
     */
    @GetMapping(POINT_VALUE_INLET)
    public void pointValueInlet(String type){
        openApiService.realStationInput(type);
    }
}
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/DamAlarmRecordDetailMapper.java
New file
@@ -0,0 +1,26 @@
package cn.gistack.nky.mapper;
import cn.gistack.nky.entity.DamAlarmRecordDetail;
import cn.gistack.nky.vo.DamAlarmRecordDetailVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * 大坝告警记录mapper映射层
 * @author zhongrj
 * @date 2024-07-25
 */
public interface DamAlarmRecordDetailMapper extends BaseMapper<DamAlarmRecordDetail> {
    /**
     * 自定义分页列表查询
     * @param page
     * @param damAlarmRecordDetail
     * @return
     */
    List<DamAlarmRecordDetailVO> selectDamAlarmRecordDetailPage(IPage<DamAlarmRecordDetailVO> page,
                                                    @Param("damAlarmRecordDetail") DamAlarmRecordDetailVO damAlarmRecordDetail);
}
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/DamAlarmRecordDetailMapper.xml
New file
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.gistack.nky.mapper.DamAlarmRecordDetailMapper">
    <!--自定义分页列表查询-->
    <select id="selectDamAlarmRecordDetailPage" resultType="cn.gistack.nky.vo.DamAlarmRecordDetailVO">
        select
        sar.*
        from YWXT.nky_dam_alarm_record_detail sar
    </select>
</mapper>
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/DamAlarmRecordMapper.java
New file
@@ -0,0 +1,26 @@
package cn.gistack.nky.mapper;
import cn.gistack.nky.entity.DamAlarmRecord;
import cn.gistack.nky.vo.DamAlarmRecordVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * 大坝告警记录mapper映射层
 * @author zhongrj
 * @date 2024-07-25
 */
public interface DamAlarmRecordMapper extends BaseMapper<DamAlarmRecord> {
    /**
     * 自定义分页列表查询
     * @param page
     * @param damAlarmRecord
     * @return
     */
    List<DamAlarmRecordVO> selectDamAlarmRecordPage(IPage<DamAlarmRecordVO> page,
                                                    @Param("damAlarmRecord") DamAlarmRecordVO damAlarmRecord);
}
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/DamAlarmRecordMapper.xml
New file
@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.gistack.nky.mapper.DamAlarmRecordMapper">
    <!--自定义分页列表查询-->
    <select id="selectDamAlarmRecordPage" resultType="cn.gistack.nky.vo.DamAlarmRecordVO">
        select
        sar.*,
        a."name" as reservoirName,a."res_reg_code" as resRegCode,a."eng_scal" as engScal,
        case when b."ad_grad" = 4 THEN b."ad_name"
            ELSE NULL END AS townName,
        case when b."ad_grad" = 3 THEN b."ad_name"
            when c."ad_grad" = 3 THEN C."ad_name"
            END AS countyName,
        case when b."ad_grad" = 2 THEN b."ad_name"
            when c."ad_grad" = 2 THEN c."ad_name"
            ELSE d."ad_name" END AS cityName
        from YWXT.nky_dam_alarm_record sar
        left join SJZT_MD."att_res_base" a on a."guid" = sar.res_guid
        left join SJZT_MD."att_ad_base" b on b."guid" = a."interior_ad_guid"
        LEFT JOIN SJZT_MD."att_ad_base" c ON b."p_ad_code" = c."guid"
        LEFT JOIN SJZT_MD."att_ad_base" d ON c."p_ad_code" = d."guid"
        LEFT JOIN SJZT_MD."rel_res_bas_loc" rrbl ON rrbl."res_guid" = sar.res_guid
        LEFT JOIN SJZT_MD."att_bas_base" abb ON abb."code" = rrbl."bas_guid"
        LEFT JOIN SJZT_MD."att_bas_base" pabb ON abb."p_code" = pabb."code"
        <if test="damAlarmRecord.type == '渗压监测'">
            LEFT JOIN SJZT_MD."att_cd_base" acb on acb."cd" = sar.point_id and acb."cd_type" = 'sy' and acb."res_cd" = sar.res_guid
        </if>
        <if test="damAlarmRecord.type == '渗流监测'">
            LEFT JOIN SJZT_MD."att_cd_base" acb on acb."cd" = sar.point_id and acb."cd_type" = 'sl' and acb."res_cd" = sar.res_guid
        </if>
        <if test="damAlarmRecord.type == '变形监测'">
            LEFT JOIN SJZT_MD."att_wy_cd_base" acb on acb."cd" = sar.point_id and acb."cd_type" = 'wy' and acb."res_cd" = sar.res_guid
        </if>
        where sar.is_deleted = 0
        <if test="damAlarmRecord.resName!=null and damAlarmRecord.resName!=''">
            and a."name" like concat('%',#{damAlarmRecord.resName},'%')
        </if>
        <if test="damAlarmRecord.startTime!=null and damAlarmRecord.startTime!=''">
            and sar.create_time >= #{damAlarmRecord.startTime}
        </if>
        <if test="damAlarmRecord.endTime!=null and damAlarmRecord.endTime!=''">
            and sar.create_time &lt;= #{damAlarmRecord.endTime}
        </if>
    </select>
</mapper>
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/OpenApiMapper.java
New file
@@ -0,0 +1,18 @@
package cn.gistack.nky.mapper;
import com.baomidou.dynamic.datasource.annotation.DS;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
public interface OpenApiMapper{
    /**
     * 查询水库信息
     * @param resGuidList
     * @return
     */
    @DS("zt")
    List<Map<String, String>> getResInfo(@Param("list") List<String> resGuidList);
}
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/OpenApiMapper.xml
New file
@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.gistack.nky.mapper.OpenApiMapper">
    <!--查询水库信息-->
    <select id="getResInfo" resultType="java.util.Map">
        select
        RES_CODE,
        RES_NAME,
        ifnull(ADDVNM2,'') ADDVNM2,
        ifnull(ADDVNM3,'') ADDVNM3,
        ifnull(DAM_TOP_ELEVATION,'') DAM_TOP_ELEVATION
        from (
            select
            a."guid" as RES_CODE,
            a."name" as RES_NAME,
            case when b."ad_grad" = 3 THEN b."ad_name"
            when c."ad_grad" = 3 THEN C."ad_name"
            END AS ADDVNM3,
            case when b."ad_grad" = 2 THEN b."ad_name"
            when c."ad_grad" = 2 THEN c."ad_name"
            ELSE d."ad_name" END AS ADDVNM2,
            CONCAT('', arwb."dam_top_elevation") as DAM_TOP_ELEVATION
            from SJZT_MD."att_res_base" a
            left join SJZT_MD."att_res_water_block" arwb ON a."guid" = arwb."res_guid"
            left join SJZT_MD."att_ad_base" b on b."guid" = a."interior_ad_guid"
            LEFT JOIN SJZT_MD."att_ad_base" c ON b."p_ad_code" = c."guid"
            LEFT JOIN SJZT_MD."att_ad_base" d ON c."p_ad_code" = d."guid"
            <where>
                <choose>
                    <when test="list.size()>0 and list!=null">
                        a."guid" in
                        <foreach collection="list" item="resGuid" open="(" close=")" separator=",">
                            #{resGuid}
                        </foreach>
                    </when>
                    <otherwise>
                        a."guid" in ('')
                    </otherwise>
                </choose>
            </where>
        )
    </select>
</mapper>
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/rabbitmq/MyRabbitReceiver.java
@@ -1,36 +1,36 @@
package cn.gistack.nky.rabbitmq;
import cn.gistack.nky.entity.AlarmGet;
import cn.gistack.nky.service.IAlarmGetService;
import com.alibaba.fastjson.JSONObject;
import lombok.AllArgsConstructor;
import org.springblade.core.tool.utils.DateUtil;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;
import java.text.SimpleDateFormat;
/**
 * @PROJECT_NAME: skjcmanager
 * @DESCRIPTION: 接收南科院消息队列
 * @USER: aix
 * @DATE: 2023/8/3 15:54
 */
@Component
@AllArgsConstructor
public class MyRabbitReceiver {
    private final IAlarmGetService alarmGetService;
    @RabbitListener(queues = "alarm")
    public void processMessage(Message message) {
        System.out.println("收到消息"+new String(message.getBody()));
        AlarmGet alarmGet = JSONObject.parseObject(new String(message.getBody()), AlarmGet.class);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String format = sdf.format(DateUtil.now());
        alarmGet.setCreateTime(format);
        alarmGetService.save(alarmGet);
    }
}
//package cn.gistack.nky.rabbitmq;
//
//import cn.gistack.nky.entity.AlarmGet;
//import cn.gistack.nky.service.IAlarmGetService;
//import com.alibaba.fastjson.JSONObject;
//import lombok.AllArgsConstructor;
//import org.springblade.core.tool.utils.DateUtil;
//import org.springframework.amqp.core.Message;
//import org.springframework.amqp.rabbit.annotation.RabbitListener;
//import org.springframework.stereotype.Component;
//
//import java.text.SimpleDateFormat;
//
///**
// * @PROJECT_NAME: skjcmanager
// * @DESCRIPTION: 接收南科院消息队列
// * @USER: aix
// * @DATE: 2023/8/3 15:54
// */
//@Component
//@AllArgsConstructor
//public class MyRabbitReceiver {
//    private final IAlarmGetService alarmGetService;
//
//    @RabbitListener(queues = "alarm")
//    public void processMessage(Message message) {
//        System.out.println("收到消息"+new String(message.getBody()));
//        AlarmGet alarmGet = JSONObject.parseObject(new String(message.getBody()), AlarmGet.class);
//
//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//        String format = sdf.format(DateUtil.now());
//        alarmGet.setCreateTime(format);
//        alarmGetService.save(alarmGet);
//    }
//
//}
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/DamAlarmRecordDetailService.java
New file
@@ -0,0 +1,22 @@
package cn.gistack.nky.service;
import cn.gistack.nky.entity.DamAlarmRecordDetail;
import cn.gistack.nky.vo.DamAlarmRecordDetailVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
/**
 * 大坝告警记录详情服务层
 * @author zhongrj
 * @date 2024-07-25
 */
public interface DamAlarmRecordDetailService extends IService<DamAlarmRecordDetail> {
    /**
     * 自定义分页列表查询
     * @param page
     * @param damAlarmRecordDetail
     * @return
     */
    IPage<DamAlarmRecordDetailVO> selectDamAlarmRecordDetailPage(IPage<DamAlarmRecordDetailVO> page, DamAlarmRecordDetailVO damAlarmRecordDetail);
}
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/DamAlarmRecordService.java
New file
@@ -0,0 +1,22 @@
package cn.gistack.nky.service;
import cn.gistack.nky.entity.DamAlarmRecord;
import cn.gistack.nky.vo.DamAlarmRecordVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
/**
 * 大坝告警记录服务层
 * @author zhongrj
 * @date 2024-07-25
 */
public interface DamAlarmRecordService extends IService<DamAlarmRecord> {
    /**
     * 自定义分页列表查询
     * @param page
     * @param damDamAlarmRecord
     * @return
     */
    IPage<DamAlarmRecordVO> selectDamAlarmRecordPage(IPage<DamAlarmRecordVO> page, DamAlarmRecordVO damDamAlarmRecord);
}
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/IOpenApiService.java
New file
@@ -0,0 +1,32 @@
package cn.gistack.nky.service;
import java.util.List;
/**
 * 南科院水库预警算法api调用服务接口
 * @author zhongrj
 * @date 2024-07-25
 */
public interface IOpenApiService {
    /**
     * 水库及测点信息注册-调用南科院接口
     * @param resGuidList 水库编号集合
     * @return
     */
    boolean waterAndPointRegister(List<String> resGuidList);
    /**
     * 实时测点测值输入-调用南科院接口
     * @param type
     * @return
     */
    void realStationInput(String type);
    /**
     * 预警回调
     * @param data
     * @return
     */
    boolean alarmCallBack(String data);
}
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/DamAlarmRecordDetailServiceImpl.java
New file
@@ -0,0 +1,31 @@
package cn.gistack.nky.service.impl;
import cn.gistack.nky.entity.DamAlarmRecordDetail;
import cn.gistack.nky.mapper.DamAlarmRecordDetailMapper;
import cn.gistack.nky.service.DamAlarmRecordDetailService;
import cn.gistack.nky.vo.DamAlarmRecordDetailVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
 * 大坝告警记录详情服务实现层
 * @author zhongrj
 * @date 2024-07-25
 */
@Service
public class DamAlarmRecordDetailServiceImpl extends ServiceImpl<DamAlarmRecordDetailMapper, DamAlarmRecordDetail> implements DamAlarmRecordDetailService {
    /**
     * 自定义分页列表查询
     * @param page
     * @param damAlarmRecordDetail
     * @return
     */
    @Override
    public IPage<DamAlarmRecordDetailVO> selectDamAlarmRecordDetailPage(IPage<DamAlarmRecordDetailVO> page, DamAlarmRecordDetailVO damAlarmRecordDetail) {
        return page.setRecords(baseMapper.selectDamAlarmRecordDetailPage(page,damAlarmRecordDetail));
    }
}
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/DamAlarmRecordServiceImpl.java
New file
@@ -0,0 +1,31 @@
package cn.gistack.nky.service.impl;
import cn.gistack.nky.entity.DamAlarmRecord;
import cn.gistack.nky.mapper.DamAlarmRecordMapper;
import cn.gistack.nky.service.DamAlarmRecordService;
import cn.gistack.nky.vo.DamAlarmRecordVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
 * 大坝告警记录服务实现层
 * @author zhongrj
 * @date 2024-07-25
 */
@Service
public class DamAlarmRecordServiceImpl extends ServiceImpl<DamAlarmRecordMapper, DamAlarmRecord> implements DamAlarmRecordService {
    /**
     * 自定义分页列表查询
     * @param page
     * @param alarmRecord
     * @return
     */
    @Override
    public IPage<DamAlarmRecordVO> selectDamAlarmRecordPage(IPage<DamAlarmRecordVO> page, DamAlarmRecordVO alarmRecord) {
        return page.setRecords(baseMapper.selectDamAlarmRecordPage(page,alarmRecord));
    }
}
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/OpenApiServiceImpl.java
New file
@@ -0,0 +1,295 @@
package cn.gistack.nky.service.impl;
import cn.gistack.nky.constant.OpenApiConstant;
import cn.gistack.nky.constant.ZtConfigConstant;
import cn.gistack.nky.entity.DamAlarmRecord;
import cn.gistack.nky.entity.DamAlarmRecordDetail;
import cn.gistack.nky.enums.DamEnum;
import cn.gistack.nky.mapper.OpenApiMapper;
import cn.gistack.nky.service.DamAlarmRecordDetailService;
import cn.gistack.nky.service.DamAlarmRecordService;
import cn.gistack.nky.service.IOpenApiService;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.redis.cache.BladeRedis;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.*;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
/**
 * 南科院水库预警算法api调用服务接口
 * @author zhongrj
 * @date 2024-07-25
 */
@Service
@Slf4j
public class OpenApiServiceImpl implements IOpenApiService {
    @Autowired
    private OpenApiMapper openApiMapper;
    @Autowired
    private RestTemplate restTemplate;
    @Autowired
    private DamAlarmRecordService damAlarmRecordService;
    @Autowired
    private DamAlarmRecordDetailService damAlarmRecordDetailService;
    @Autowired
    private BladeRedis bladeRedis;
    /**
     * 水库及测点信息注册-调用南科院接口
     * @param resGuidList 水库编号集合
     * @return
     */
    @Override
    public boolean waterAndPointRegister(List<String> resGuidList) {
        boolean damResFlag = false;
        boolean pointResFlag = false;
        // 查询水库信息
        List<Map<String,String>> resInfoList = openApiMapper.getResInfo(resGuidList);
        // 查询水库测点信息
//        List<Map<String,String>> resPointInfo = openApiMapper.getResPointInfo(resGuidList);
        // 发送水库注册请求
        String response = sendPostJsonRequest(OpenApiConstant.DAM_REGISTER_URL,resInfoList);
        // 输出响应
        System.out.println(response);
        JSONObject jsonObject = JSON.parseObject(response);
        Integer status = jsonObject.getInteger("status");
        damResFlag = status==200?true:false;
        // 查询
        return damResFlag && pointResFlag;
    }
    /**
     * 发送post 请求
     * @param url
     * @param object
     * @return
     */
    private String sendPostJsonRequest(String url,Object object) {
        // 转换为JSON
        ObjectMapper objectMapper = new ObjectMapper();
        String json = "";
        try {
            json = objectMapper.writeValueAsString(object);
        } catch (Exception e) {
            e.printStackTrace();
        }
        // 设置HTTP头信息
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_JSON);
        // 创建HttpEntity
        HttpEntity<String> entity = new HttpEntity<>(json, headers);
        // 发送POST请求
        return restTemplate.postForObject(url, entity, String.class);
    }
    /**
     * 实时测点测值输入-调用南科院接口
     * @param type 1:渗压,2:渗流,3:X位移,4:Y位移,5:Z位移
     * @return
     */
    @Override
    public void realStationInput(String type) {
        boolean flag = false;
        // 获取当前时间及前一个小时
        // 获取当前时间
        LocalDateTime now = LocalDateTime.now();
        // 减去一个小时
        LocalDateTime oneHourAgo = now.minusHours(1);
        // 格式化时间
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
        String oneHour = oneHourAgo.format(formatter) + ":00";
        String nowHour = now.format(formatter) + ":00";
        // 调用中台接口获取实时测点数据
        JSONArray ztData = getZtData("",
            ZtConfigConstant.url_prefix + DamEnum.ofType(type).getApiUrl() + "?tm_list=" + "'" + oneHour + "'," + "'" + nowHour + "'");
        // 解析数据
        for (int i = 0; i < ztData.size(); i++) {
            JSONObject jsonObject = ztData.getJSONObject(i);
            Map<String,Object> map = new HashMap<>();
            map.put("batchId",UUID.randomUUID());
            map.put("serialNo",getSerialNo());
            // 水库信息设置
            waterInfoSet(jsonObject, map);
            // 测点信息设置
            pointValueInfoSet(jsonObject,map, DamEnum.ofType(type).getName());
            // 发送请求
//            String response = sendPostJsonRequest(OpenApiConstant.POINT_VALUE_INLET_URL, map);
//            JSONObject parseObject = JSON.parseObject(response);
//            Integer status = parseObject.getInteger("status");
//            flag = status==200?true:false;
            log.info("测点输入结果:" + flag);
        }
    }
    /**
     * 水库信息设置
     * @param jsonObject
     * @param map
     */
    private void waterInfoSet(JSONObject jsonObject, Map<String, Object> map) {
        List<Map<String,Object>> waterLevelInfoList = new ArrayList<>();
        Map<String, Object> waterLevelInfoMap = new HashMap<>();
        waterLevelInfoMap.put("damCode",jsonObject.getString("res_cd"));
        waterLevelInfoMap.put("waterLevel",jsonObject.getString("res_cd"));
        waterLevelInfoMap.put("waterLevelTime",jsonObject.getString("res_cd"));
        waterLevelInfoMap.put("rainCondition",jsonObject.getString("res_cd"));
        waterLevelInfoMap.put("rainConditionTime",jsonObject.getString("res_cd"));
        waterLevelInfoList.add(waterLevelInfoMap);
        map.put("waterLevelInfo",waterLevelInfoList);
    }
    /**
     * 测点信息设置
     * @param map
     */
    private void pointValueInfoSet(JSONObject jsonObject,Map<String, Object> map,String type) {
        List<Map<String,Object>> pointValueInfoList = new ArrayList<>();
        JSONArray childArray = jsonObject.getJSONArray("child");
        //遍历处理
        for (int i = 0; i < childArray.size(); i++) {
            JSONObject childArrayJSONObject = childArray.getJSONObject(i);
            String pointCodeTemp = jsonObject.getString("res_cd") + "_"
                + childArrayJSONObject.getString("cd")
                + "_" + type;
            Map<String, Object> pointValueInfoMap = new HashMap<>();
            pointValueInfoMap.put("damCode",jsonObject.getString("res_cd"));
            pointValueInfoMap.put("pointCode",pointCodeTemp);
            pointValueInfoMap.put("type",type);
            pointValueInfoMap.put("value",childArrayJSONObject.getString("sy_val"));
            pointValueInfoMap.put("time",childArrayJSONObject.getString("tm"));
            pointValueInfoList.add(pointValueInfoMap);
        }
        map.put("pointValueInfo",pointValueInfoList);
    }
    /**
     * 获取序列号
     * @return
     */
    private Integer getSerialNo() {
        //设置默认从1开始
        Integer serialNo = 1;
        //先从redis中获取,拼接当天日期
        String format = new SimpleDateFormat("yyyyMMdd").format(new Date());
        Integer redisSerialNo = bladeRedis.get(OpenApiConstant.serial_no_key + format);
        //如果为空则按默认的来
        if (null==redisSerialNo){
            // 先设置到 redis 序号+1
            bladeRedis.setEx(OpenApiConstant.serial_no_key + format,serialNo+1,9*60*60L);
            // 返回
            return serialNo;
        }
        serialNo = redisSerialNo;
        //更新 序号+1 ,8小时执行一次任务,设置9个小时为过期时间
        bladeRedis.setEx(OpenApiConstant.serial_no_key + format,serialNo+1,9*60*60L);
        //返回
        return serialNo;
    }
    /**
     * 调用中台接口查询数据
     *
     * @param params
     * @param url
     * @return
     */
    public JSONArray getZtData(String params, String url) {
        //设置请求头
        HttpHeaders headers = new HttpHeaders();
        headers.add(ZtConfigConstant.header_key, ZtConfigConstant.header_value);
        //封装请求头
        HttpEntity<MultiValueMap<String, Object>> formEntity = new HttpEntity<MultiValueMap<String, Object>>(headers);
        try {
            //有请求头,有参数请求
            ResponseEntity<String> responseEntity =
                restTemplate.exchange(url + params,
                    HttpMethod.GET,
                    formEntity,
                    String.class);
            JSONObject jsonObject = JSON.parseObject(responseEntity.getBody());
            // 返回
            return JSONArray.parseArray(jsonObject.get("data").toString());
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
    /**
     * 预警回调
     * @param data
     * @return
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean alarmCallBack(String data) {
        boolean flag = false;
        // 解析数据
        JSONObject jsonObject = JSON.parseObject(data);
        JSONArray dataJsonArray = jsonObject.getJSONArray("data");
        for (int i = 0; i < dataJsonArray.size(); i++) {
            DamAlarmRecord damAlarmRecord = new DamAlarmRecord();
            JSONObject alarmRecordJSONObject = dataJsonArray.getJSONObject(i);
            damAlarmRecord.setPointId(alarmRecordJSONObject.getString("pointId"));
            damAlarmRecord.setResGuid(alarmRecordJSONObject.getString("RS_CODE"));
            damAlarmRecord.setCollecTime(alarmRecordJSONObject.getDate("collecTime"));
            damAlarmRecord.setPointValue(alarmRecordJSONObject.getString("ponitValue"));
            JSONObject generalInfo = alarmRecordJSONObject.getJSONObject("generalInfo");
            damAlarmRecord.setPointWarnLevel(generalInfo.getInteger("pointWarnLevel"));
            damAlarmRecord.setPointWarnInfo(generalInfo.getString("pointWarnInfo"));
            damAlarmRecord.setCreateTime(new Date());
            // 保存
            flag = damAlarmRecordService.save(damAlarmRecord);
            if (flag){
                flag = saveDamAlarmRecordDetail(alarmRecordJSONObject.getJSONArray("detailInfo"),damAlarmRecord);
            }
        }
        return flag;
    }
    /**
     * 详情
     * @param detailInfo
     * @param damAlarmRecord
     */
    @Transactional(rollbackFor = Exception.class)
    public boolean saveDamAlarmRecordDetail(JSONArray detailInfo,DamAlarmRecord damAlarmRecord) {
        boolean flag = false;
        List<DamAlarmRecordDetail> list = new ArrayList<>();
        for (int i = 0; i < detailInfo.size(); i++) {
            DamAlarmRecordDetail damAlarmRecordDetail = new DamAlarmRecordDetail();
            JSONObject jsonObject = detailInfo.getJSONObject(i);
            damAlarmRecordDetail.setDamAlarmRecordId(damAlarmRecord.getId());
            damAlarmRecordDetail.setAlgorithmName(jsonObject.getString("algorithmName"));
            damAlarmRecordDetail.setAlgorithmWarnLevel(jsonObject.getInteger("algorithmWarnLevel"));
            damAlarmRecordDetail.setAlgorithmWarnInfo(jsonObject.getString("algorithmWarnInfo"));
            damAlarmRecordDetail.setAlgorithmWarnExplain(jsonObject.getString("algorithmWarnExplain"));
            damAlarmRecordDetail.setCreateTime(new Date());
            // 加入集合
            list.add(damAlarmRecordDetail);
        }
        // 保存
        if (list.size()>0) {
            flag = damAlarmRecordDetailService.saveBatch(list);
        }else {
            flag = true;
        }
        return flag;
    }
}
skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/resources/application-dev.yml
@@ -11,12 +11,12 @@
#多数据源配置
spring:
  rabbitmq:
    host: 10.42.7.146
    port: 5672
    username: algo
    password: P6#yzdd7
    virtual-host: /
#  rabbitmq:
#    host: 10.42.7.146
#    port: 5672
#    username: algo
#    password: P6#yzdd7
#    virtual-host: /
  #排除DruidDataSourceAutoConfigure
  autoconfigure:
    exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/reportFlood/mapper/ReportFloodRecordMapper.xml
@@ -56,7 +56,7 @@
    <select id="selectReportFloodRecordPages" resultMap="vo">
        SELECT R.*,
        SELECT R.*,arfl."tb_flse_lim_stag" tbFlseLimStag,r.main_z - arfl."tb_flse_lim_stag" mainBe,r.person_rz - arfl."tb_flse_lim_stag" personBe,
        arb."name" reservoirName ,
        arb."res_reg_code" as resRegCode,
@@ -88,6 +88,7 @@
        LEFT JOIN SJZT_MD."att_ad_base" county ON town."p_ad_code" = county."guid"
        LEFT JOIN SJZT_MD."att_ad_base" city ON county."p_ad_code" = city."guid"
        LEFT JOIN SJZT_MD."att_ad_base" province ON province."guid" = city."p_ad_code"
        left join sjzt_md."att_res_flse_lim" arfl on arfl."res_guid" = arb."guid" and arfl."is_use" = 1
        WHERE r.is_deleted = 0
        <if test=" reportFloodRecord.adCode!= null and reportFloodRecord.adCode !='' ">
@@ -103,13 +104,22 @@
            AND r.reservoir_id = #{reportFloodRecord.reservoirId}
        </if>
        <if test="reportFloodRecord.startTime !=null and reportFloodRecord.startTime !=''">
            AND DATE_FORMAT(r.create_time,'%Y-%m-%d') &gt;= #{reportFloodRecord.startTime}
            AND r.report_time &gt;= #{reportFloodRecord.startTime}
        </if>
        <if test="reportFloodRecord.endTime !=null and reportFloodRecord.endTime !=''">
            AND DATE_FORMAT(r.create_time,'%Y-%m-%d') &lt;= #{reportFloodRecord.endTime}
            AND r.report_time &lt;= #{reportFloodRecord.endTime}
        </if>
        <if test="reportFloodRecord.createUser !=null and reportFloodRecord.createUser !=''">
            AND r.create_user = #{reportFloodRecord.createUser}
        </if>
        <if test="reportFloodRecord.isOver !=null and reportFloodRecord.isOver !=''">
            AND r.is_over = #{reportFloodRecord.isOver}
        </if>
        <if test="reportFloodRecord.isStatus !=null and reportFloodRecord.isStatus !=''">
            AND r.status = #{reportFloodRecord.isStatus}
        </if>
        <if test="reportFloodRecord.gateStatus !=null and reportFloodRecord.gateStatus !=''">
            AND r.gate_status = #{reportFloodRecord.gateStatus}
        </if>
        <if test="reportFloodRecord.resRegCode != null and reportFloodRecord.resRegCode != ''">
@@ -123,7 +133,7 @@
        </if>
        ORDER BY CREATE_TIME DESC
        --ORDER BY CREATE_TIME DESC
    </select>
    <select id="customizeGetDetail" resultMap="vo">
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/reportFlood/vo/ReportFloodRecordVO.java
@@ -36,4 +36,9 @@
    private String lon;
    private String lat;
    private String isStatus;//是否异常
    private Double tbFlseLimStag;//汛限水位
    private Double mainBe;//主站比汛限
    private Double personBe;//人工报讯比汛限水位
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgGxStepMapper.xml
@@ -3,7 +3,7 @@
<mapper namespace="cn.gistack.sm.sg.mapper.SgGxStepMapper">
    <select id="selectByGxInfoId" resultType="cn.gistack.sm.sg.DO.SgGxStepDO">
        select * from YWXT.SG_GX_STEP step where step.GX_INFO_ID = #{gxInfoId} order by step.GX_STEP_NUM ASC
        select * from YWXT.SG_GX_STEP step where step.GX_INFO_ID = #{gxInfoId} order by step.GX_STEP_NUM desc
    </select>
    <select id="queryPageList" resultType="cn.gistack.sm.sg.DO.SgGxStepDO">
        select step.*,GX.GX_TYPE  from YWXT.SG_GX_STEP step left join YWXT.SG_GX GX ON step.GX_INFO_ID = GX.ID where 1=1
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgGxStepServiceImpl.java
@@ -19,8 +19,10 @@
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
 * <p>
@@ -57,16 +59,19 @@
    }
    @Override
    public void delete(String id) {
        SgGxStepDO sgGxStepDO = sgGxStepMapper.selectById(id);
        if (!new LambdaQueryChainWrapper<>(sgGxRoleMapper).eq(SgGxRoleDO::getGxStepId,id).list().isEmpty()){
            throw  new ServiceException(sgGxStepDO.getGxStepName()+ "已绑定角色,无法删除");
    public void delete(String ids) {
        List<String> idList = Stream.of(ids.split(",")).sorted(Comparator.reverseOrder()) .collect(Collectors.toList());
        for (String id : idList) {
            SgGxStepDO sgGxStepDO = sgGxStepMapper.selectById(id);
            if (!new LambdaQueryChainWrapper<>(sgGxRoleMapper).eq(SgGxRoleDO::getGxStepId,id).list().isEmpty()){
                throw  new ServiceException(sgGxStepDO.getGxStepName()+ "已绑定角色,无法删除");
            }
            List<SgGxStepDO> list= sgGxStepMapper.selectByGxInfoId(sgGxStepDO.getGxInfoId());
            if (!sgGxStepDO.getGxStepNum().equals(list.get(0).getGxStepNum())){
                throw  new ServiceException("请按顺序删除工序步骤");
            }
            this.removeById(id);
        }
        List<SgGxStepDO> list= sgGxStepMapper.selectByGxInfoId(sgGxStepDO.getGxInfoId());
        if (!sgGxStepDO.getGxStepNum().equals(list.get(0).getGxStepNum())){
            throw  new ServiceException("请按顺序删除工序步骤");
        }
        this.removeById(id);
    }
    @Override
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/dto/TbProjectIsfillDTO.java
@@ -14,11 +14,11 @@
    private int isFil;
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date stratTime;
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/mapper/TbProjectMapper.xml
@@ -147,6 +147,11 @@
            ifNull(midNum,0) midNum,
            ifNull(smallOneNum,0) smallOneNum,
            ifNull(smallTwoNum,0) smallTwoNum,
            ifNull(resNumAll,0) resNumAll,
            ifNull(bigNumAll,0) bigNumAll,
            ifNull(midNumAll,0) midNumAll,
            ifNull(smallOneNumAll,0) smallOneNumAll,
            ifNull(smallTwoNumAll,0) smallTwoNumAll,
            dykeLength,
            levelOneLength,
            levelTwoLength,
@@ -170,12 +175,30 @@
             ) arb ON ((arb.townCode = aab."guid")or(arb.countyCode = aab."guid") or (arb.cityCode = aab."guid") or (arb.provinceCode = aab."guid") )
            right join sjzt_md."tb_res_general_investigation_state" trgis on trgis."res_guid" = arb."code"
                    <!--统计待审核和已审核的-->
                and (trgis."check_state" = 1 or trgis."check_state" = 2)
                and (trgis."check_state" = 2)
                <if test="params.tbYear != null and params.tbYear != ''">
                    and trgis."tb_year" = #{params.tbYear}
                </if>
            group by aab."guid",aab."ad_name"
        )res on res."guid" = aab."guid"
        <!-- 所有水库 -->
        left join (
        SELECT
        aab."guid",
        aab."ad_name",
        SUM(CASE WHEN arb."code" is not null then 1 else 0 end) as resNumAll ,
        SUM(CASE WHEN (arb."eng_scal" = '大(1)型' or arb."eng_scal" = '大(2)型') then 1 else 0 end) as bigNumAll ,
        SUM(CASE WHEN (arb."eng_scal" = '中型') then 1 else 0 end) as midNumAll ,
        SUM(CASE WHEN (arb."eng_scal" = '小(1)型') then 1 else 0 end) as smallOneNumAll ,
        SUM(CASE WHEN (arb."eng_scal" = '小(2)型') then 1 else 0 end) as smallTwoNumAll
        FROM YWXT."att_ad_base" aab
        LEFT JOIN
        (
        <include refid="selectResByRegion"/>
        ) arb ON ((arb.townCode = aab."guid")or(arb.countyCode = aab."guid") or (arb.cityCode = aab."guid") or (arb.provinceCode = aab."guid") )
        group by aab."guid",aab."ad_name"
        )res2 on res2."guid" = aab."guid"
        left join (
            SELECT
                aab."guid",
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/statisticsVO/StatisticsTableProject.java
@@ -33,6 +33,16 @@
    private int smallTwoNum;
    private int resNumAll;
    private int bigNumAll;
    private int midNumAll;
    private int smallOneNumAll;
    private int smallTwoNumAll;
    private double dykeLength;
    private double levelOneLength;
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/vo/TbProjectIsfillVO.java
@@ -11,11 +11,11 @@
    private int isFil;
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date stratTime;
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;
}
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/word/controller/DownTemplateController.java
@@ -91,7 +91,7 @@
    @GetMapping("/download/overFloodInfo")
    public ResponseEntity overFloodInfo(String isShow) throws Exception {
        String time = new SimpleDateFormat("yyyy日MM月dd日HH时").format(new Date());
        String time = new SimpleDateFormat("yyyy年MM月dd日HH时").format(new Date());
        String fileName = time + "报汛文件.docx";
        String fileNameURL = URLEncoder.encode(fileName, "UTF-8");
        //获取总览、大中库、明细数据
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/resources/word/doc/overFloodTemplate.docx
Binary files differ
skjcmanager/skjcmanager-service/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/NkyXxlJob.java
@@ -15,6 +15,8 @@
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/**
 * 南科院预测数据定时器
@@ -241,6 +243,28 @@
        return ReturnT.SUCCESS;
    }
    /**
     * 南科院 实时测点测值输入
     * @param param
     * @return
     */
    @XxlJob("pointValueInletHandler")
    public ReturnT<String> pointValueInletHandler(String param) {
        XxlJobLogger.log("实时测点测值输入开始");
        // 创建外呼任务
        ExecutorService executorService = Executors.newSingleThreadExecutor();
        executorService.submit(() -> {
            // 这里是你的异步任务逻辑
            nkyClient.pointValueInlet(SY);
            nkyClient.pointValueInlet(SL);
            nkyClient.pointValueInlet(X);
            nkyClient.pointValueInlet(Y);
            nkyClient.pointValueInlet(Z);
        });
        XxlJobLogger.log("实时测点测值输入结束");
        return ReturnT.SUCCESS;
    }
}