From 4624b6fd58f262ab95f2d60472560b9fc162d677 Mon Sep 17 00:00:00 2001 From: dongyukun <1208714201@qq.com> Date: 星期二, 01 四月 2025 14:56:15 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/StAlarmAndSuggestReqVO.java | 24 ++++++++++++ iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleSuggestServiceImpl.java | 12 ++++++ iailab-module-data/iailab-module-data-biz/db/mysql/tenant.sql | 2 + iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/collection/utils/IndSqlUtils.java | 34 ++++++++++++++-- iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/entity/IndItemDerEntity.java | 5 ++ iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/PredictSampleDataConstructor.java | 9 ---- iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/StAlarmAndSuggestRespVO.java | 2 + iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/vo/IndItemDerVO.java | 5 ++ iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java | 5 ++ iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java | 5 ++ iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleSuggestService.java | 4 ++ iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/StScheduleSchemeDao.xml | 5 +- 12 files changed, 96 insertions(+), 16 deletions(-) diff --git a/iailab-module-data/iailab-module-data-biz/db/mysql/tenant.sql b/iailab-module-data/iailab-module-data-biz/db/mysql/tenant.sql index 9f63ba2..31bcd5a 100644 --- a/iailab-module-data/iailab-module-data-biz/db/mysql/tenant.sql +++ b/iailab-module-data/iailab-module-data-biz/db/mysql/tenant.sql @@ -324,6 +324,8 @@ UNIQUE KEY `uk_item_id` (`item_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT = '派生指标'; +ALTER TABLE t_ind_item_der ADD COLUMN month_start int COMMENT '月周期开始日'; + CREATE TABLE t_ind_item_cal( `id` VARCHAR(36) NOT NULL COMMENT 'ID' , `item_id` VARCHAR(36) COMMENT '指标ID' , diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/collection/utils/IndSqlUtils.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/collection/utils/IndSqlUtils.java index 96a9661..8de5cd4 100644 --- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/collection/utils/IndSqlUtils.java +++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/collection/utils/IndSqlUtils.java @@ -16,6 +16,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import java.text.SimpleDateFormat; +import java.time.YearMonth; +import java.time.format.DateTimeFormatter; import java.util.Calendar; import java.util.Date; @@ -160,29 +163,29 @@ case THIS_MONTH: whereSql.append(indItem.getTimeLabel()); whereSql.append("='"); - whereSql.append(DateUtils.format(calendar.getTime(), PATTERN_MON)); + whereSql.append(getYearMonth(calendar,indItem.getMonthStart())); whereSql.append("'"); break; case LAST_MONTH: whereSql.append(indItem.getTimeLabel()); whereSql.append("' < '"); - whereSql.append(DateUtils.format(calendar.getTime(), PATTERN_MON)); + whereSql.append(getYearMonth(calendar,indItem.getMonthStart())); whereSql.append("' AND "); whereSql.append(indItem.getTimeLabel()); whereSql.append(" >= '"); calendar.add(Calendar.MONTH, -1); - whereSql.append(DateUtils.format(calendar.getTime(), PATTERN_MON)); + whereSql.append(getYearMonth(calendar,indItem.getMonthStart())); whereSql.append("'"); break; case LAST_MONTH_12: whereSql.append(indItem.getTimeLabel()); whereSql.append(" <= '"); - whereSql.append(DateUtils.format(calendar.getTime(), PATTERN_MON)); + whereSql.append(getYearMonth(calendar,indItem.getMonthStart())); whereSql.append("' AND "); whereSql.append(indItem.getTimeLabel()); whereSql.append("' >= '"); calendar.add(Calendar.MONTH, -12); - whereSql.append(DateUtils.format(calendar.getTime(), PATTERN_MON)); + whereSql.append(getYearMonth(calendar,indItem.getMonthStart())); whereSql.append("'"); break; case THIS_YEAR_MONTH: @@ -255,6 +258,27 @@ return result; } + public static String getYearMonth(Calendar now,Integer monthStart) { + int day = now.get(Calendar.DAY_OF_MONTH); + + // 当前月 + if (monthStart > 0) { + if (day < monthStart) { + now.add(Calendar.MONTH, -1); + } + } + + if (monthStart < 0) { + if (day >= Math.abs(monthStart)) { + now.add(Calendar.MONTH, 1); + } + } + // 定义日期格式化对象,指定格式为 yyyy-MM + SimpleDateFormat sdf = new SimpleDateFormat(PATTERN_MON); + // 格式化日期并返回结果 + return sdf.format(now.getTime()); + } + public QuerySourceValueDTO getDerSql(String itemId, Date startTime, Date endTime) { QuerySourceValueDTO result = getAtomSql(itemId); IndItemDerVO indItem = indItemDerService.getByItemId(itemId); diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/entity/IndItemDerEntity.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/entity/IndItemDerEntity.java index 1c1b12e..0e2591f 100644 --- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/entity/IndItemDerEntity.java +++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/entity/IndItemDerEntity.java @@ -58,4 +58,9 @@ * 分析维度 */ private String dimension; + + /** + * 月周期开始日 + */ + private Integer monthStart; } \ No newline at end of file diff --git a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/vo/IndItemDerVO.java b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/vo/IndItemDerVO.java index af9424d..ade22f8 100644 --- a/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/vo/IndItemDerVO.java +++ b/iailab-module-data/iailab-module-data-biz/src/main/java/com/iailab/module/data/ind/item/vo/IndItemDerVO.java @@ -53,4 +53,9 @@ * 分析维度 */ private String dimension; + + /** + * 月周期开始日 + */ + private Integer monthStart; } \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java index fcb8ff0..5186674 100644 --- a/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java +++ b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java @@ -152,4 +152,9 @@ @PostMapping(PREFIX + "/item/result/last-point") @Operation(summary = "获取") List<Object[]> getItemResultLastPoint(@RequestBody PreItemResultReqVO reqVO); + + @PostMapping(PREFIX + "/schedule-suggest/update-status") + @Operation(summary = "修改调度建议状态") + Boolean updateSuggestStatus(@RequestBody StAlarmAndSuggestReqVO reqVO); + } \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/StAlarmAndSuggestReqVO.java b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/StAlarmAndSuggestReqVO.java new file mode 100644 index 0000000..00ffd2e --- /dev/null +++ b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/StAlarmAndSuggestReqVO.java @@ -0,0 +1,24 @@ +package com.iailab.module.model.api.mcs.dto; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * @author PanZhibao + * @Description + * @createTime 2025年01月07日 + */ +@Schema(description = "RPC 模型 - 预警和建议 DTO") +@Data +public class StAlarmAndSuggestReqVO implements Serializable { + + private static final long serialVersionUID = 1L; + + private String id; + + private Integer status; +} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/StAlarmAndSuggestRespVO.java b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/StAlarmAndSuggestRespVO.java index c9678be..bcd927b 100644 --- a/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/StAlarmAndSuggestRespVO.java +++ b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/StAlarmAndSuggestRespVO.java @@ -18,6 +18,8 @@ private static final long serialVersionUID = 1L; + private String id; + @Schema(description = "类型(1:预警,2:建议)") private String type; diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java index b4b3cfa..0911d2f 100644 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java @@ -877,6 +877,11 @@ return mmItemResultLastPointService.getData(reqVO.getOutputid(),reqVO.getStartTime(),reqVO.getEndTime(),reqVO.getTimeFormat()); } + @Override + public Boolean updateSuggestStatus(StAlarmAndSuggestReqVO reqVO) { + return stScheduleSuggestService.updateSuggestStatus(reqVO); + } + private Date[] calResultTime(ItemVO predictItem, Date startTimeReq, Date endTimeReq, int lengthLeft, int lengthRight) { Date[] result = new Date[3]; Date predictTime = predictItem.getLastTime(); diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleSuggestService.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleSuggestService.java index 4fae173..de7c43b 100644 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleSuggestService.java +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleSuggestService.java @@ -4,6 +4,8 @@ import com.iailab.framework.common.service.BaseService; import com.iailab.module.model.api.mcs.dto.ScheduleSuggestReqDTO; import com.iailab.module.model.api.mcs.dto.ScheduleSuggestRespDTO; +import com.iailab.module.model.api.mcs.dto.StAlarmAndSuggestReqVO; +import com.iailab.module.model.api.mcs.dto.StAlarmAndSuggestRespVO; import com.iailab.module.model.mcs.sche.entity.StScheduleSuggestEntity; import com.iailab.module.model.mcs.sche.vo.StScheduleSuggestPageReqVO; import com.iailab.module.model.mcs.sche.vo.StScheduleSuggestSaveReqVO; @@ -36,4 +38,6 @@ List<ScheduleSuggestRespDTO> list(ScheduleSuggestReqDTO vo); List<StScheduleSuggestEntity> getList(List<String> scheduleObjList, Date predictTime); + + Boolean updateSuggestStatus(StAlarmAndSuggestReqVO reqVO); } diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleSuggestServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleSuggestServiceImpl.java index 1d4db1b..45037e1 100644 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleSuggestServiceImpl.java +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleSuggestServiceImpl.java @@ -7,8 +7,11 @@ import com.iailab.framework.common.util.object.ConvertUtils; import com.iailab.module.model.api.mcs.dto.ScheduleSuggestReqDTO; import com.iailab.module.model.api.mcs.dto.ScheduleSuggestRespDTO; +import com.iailab.module.model.api.mcs.dto.StAlarmAndSuggestReqVO; +import com.iailab.module.model.api.mcs.dto.StAlarmAndSuggestRespVO; import com.iailab.module.model.common.enums.ScheduleSuggestStatusEnum; import com.iailab.module.model.mcs.sche.dao.StScheduleSuggestDao; +import com.iailab.module.model.mcs.sche.entity.StScheduleSchemeEntity; import com.iailab.module.model.mcs.sche.entity.StScheduleSuggestEntity; import com.iailab.module.model.mcs.sche.service.StScheduleSuggestService; import com.iailab.module.model.mcs.sche.vo.StScheduleSuggestPageReqVO; @@ -91,4 +94,13 @@ queryWrapper.eq("schedule_time", predictTime); return baseDao.selectList(queryWrapper); } + + @Override + public Boolean updateSuggestStatus(StAlarmAndSuggestReqVO reqVO) { + StScheduleSuggestEntity entity = new StScheduleSuggestEntity(); + entity.setId(reqVO.getId()); + entity.setStatus(reqVO.getStatus()); + baseDao.updateById(entity); + return true; + } } \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/PredictSampleDataConstructor.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/PredictSampleDataConstructor.java index 7723944..9f5f731 100644 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/PredictSampleDataConstructor.java +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/PredictSampleDataConstructor.java @@ -81,15 +81,6 @@ } } - // 判断要调整的列 - for (ColumnItemPort itemPort : sampleInfo.getColumnInfo()) { - - for (ColumnItem columnItem : itemPort.getColumnItemList()) { - - } - } - - int portIdx = 1; //对每个爪分别进行计算 for (ColumnItemPort entry : sampleInfo.getColumnInfo()) { diff --git a/iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/StScheduleSchemeDao.xml b/iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/StScheduleSchemeDao.xml index 3e4049e..45155f6 100644 --- a/iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/StScheduleSchemeDao.xml +++ b/iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/StScheduleSchemeDao.xml @@ -4,6 +4,7 @@ <select id="getAlarmAndSuggestPage" resultType="com.iailab.module.model.api.mcs.dto.StAlarmAndSuggestRespVO"> select + t.id, t.type, t.title, t.content, @@ -11,10 +12,10 @@ t.obj, t.status from ( - select 'alarm' type, t1.title, t1.content, t1.alarm_time `time`, t1.alarm_obj obj,0 status + select id,'alarm' type, t1.title, t1.content, t1.alarm_time `time`, t1.alarm_obj obj,0 status from t_mm_predict_alarm_message t1 UNION - select 'suggest' type, t2.title, t2.content, t2.schedule_time `time`, t2.schedule_obj obj,t2.status + select id,'suggest' type, t2.title, t2.content, t2.schedule_time `time`, t2.schedule_obj obj,t2.status from t_st_schedule_suggest t2 ) t <where> -- Gitblit v1.9.3