feat: 全过程AI识别监测日历表(文件)
This commit is contained in:
parent
5a3fc371a6
commit
9ce9f273ea
@ -74,4 +74,10 @@ public class WarnDataController {
|
|||||||
public ResponseResult getWarnStcdKendoListCust(@RequestBody DataSourceRequest dataSourceRequest) {
|
public ResponseResult getWarnStcdKendoListCust(@RequestBody DataSourceRequest dataSourceRequest) {
|
||||||
return ResponseResult.successData(warnDataService.getWarnStcdKendoListCust(dataSourceRequest));
|
return ResponseResult.successData(warnDataService.getWarnStcdKendoListCust(dataSourceRequest));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/ai/com/qgc/aiFile/GetKendoListCust")
|
||||||
|
@Operation(summary = "全过程AI识别监测日历表(文件)")
|
||||||
|
public ResponseResult getAiFileKendoListCust(@RequestBody DataSourceRequest dataSourceRequest) {
|
||||||
|
return ResponseResult.successData(warnDataService.getAiFileKendoListCust(dataSourceRequest));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,43 @@
|
|||||||
|
package com.yfd.platform.qgc_env.warn.entity.vo;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* AI文件列表VO - 全过程AI识别监测日历表(文件)
|
||||||
|
*
|
||||||
|
* @author Generated
|
||||||
|
* @since 2025-07-01
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class AiFileVo {
|
||||||
|
|
||||||
|
private String stcd;
|
||||||
|
|
||||||
|
private String stnm;
|
||||||
|
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
private Date tm;
|
||||||
|
|
||||||
|
private String fid;
|
||||||
|
|
||||||
|
private String rstcd;
|
||||||
|
|
||||||
|
private String ennm;
|
||||||
|
|
||||||
|
private String stCode;
|
||||||
|
|
||||||
|
private String stName;
|
||||||
|
|
||||||
|
private Integer baseStepSort;
|
||||||
|
|
||||||
|
private Integer rvcdStepSort;
|
||||||
|
|
||||||
|
private Integer rstcdStepSort;
|
||||||
|
|
||||||
|
private Integer siteStepSort;
|
||||||
|
|
||||||
|
private Integer dataType;
|
||||||
|
}
|
||||||
@ -8,6 +8,7 @@ import com.yfd.platform.qgc_env.warn.entity.vo.AiProtectVo;
|
|||||||
import com.yfd.platform.qgc_env.warn.entity.vo.AiDmRunVo;
|
import com.yfd.platform.qgc_env.warn.entity.vo.AiDmRunVo;
|
||||||
import com.yfd.platform.qgc_env.warn.entity.vo.AiComListVo;
|
import com.yfd.platform.qgc_env.warn.entity.vo.AiComListVo;
|
||||||
import com.yfd.platform.qgc_env.warn.entity.vo.AiRstcdVo;
|
import com.yfd.platform.qgc_env.warn.entity.vo.AiRstcdVo;
|
||||||
|
import com.yfd.platform.qgc_env.warn.entity.vo.AiFileVo;
|
||||||
import com.yfd.platform.qgc_env.warn.entity.vo.EngWarnCountVo;
|
import com.yfd.platform.qgc_env.warn.entity.vo.EngWarnCountVo;
|
||||||
import com.yfd.platform.qgc_env.warn.entity.vo.StcdWarnStateVo;
|
import com.yfd.platform.qgc_env.warn.entity.vo.StcdWarnStateVo;
|
||||||
|
|
||||||
@ -32,4 +33,6 @@ public interface WarnDataService {
|
|||||||
DataSourceResult<AlarmPointVo> getAlarmPointKendoListCust(DataSourceRequest dataSourceRequest);
|
DataSourceResult<AlarmPointVo> getAlarmPointKendoListCust(DataSourceRequest dataSourceRequest);
|
||||||
|
|
||||||
DataSourceResult<StcdWarnStateVo> getWarnStcdKendoListCust(DataSourceRequest dataSourceRequest);
|
DataSourceResult<StcdWarnStateVo> getWarnStcdKendoListCust(DataSourceRequest dataSourceRequest);
|
||||||
|
|
||||||
|
DataSourceResult<AiFileVo> getAiFileKendoListCust(DataSourceRequest dataSourceRequest);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -13,6 +13,7 @@ import com.yfd.platform.common.MicroservicDynamicSQLMapper;
|
|||||||
import com.yfd.platform.qgc_env.warn.entity.vo.AlarmPointVo;
|
import com.yfd.platform.qgc_env.warn.entity.vo.AlarmPointVo;
|
||||||
import com.yfd.platform.qgc_env.warn.entity.vo.AiComListVo;
|
import com.yfd.platform.qgc_env.warn.entity.vo.AiComListVo;
|
||||||
import com.yfd.platform.qgc_env.warn.entity.vo.AiDmRunVo;
|
import com.yfd.platform.qgc_env.warn.entity.vo.AiDmRunVo;
|
||||||
|
import com.yfd.platform.qgc_env.warn.entity.vo.AiFileVo;
|
||||||
import com.yfd.platform.qgc_env.warn.entity.vo.AiProtectVo;
|
import com.yfd.platform.qgc_env.warn.entity.vo.AiProtectVo;
|
||||||
import com.yfd.platform.qgc_env.warn.entity.vo.AiRecordVo;
|
import com.yfd.platform.qgc_env.warn.entity.vo.AiRecordVo;
|
||||||
import com.yfd.platform.qgc_env.warn.entity.vo.AiRstcdVo;
|
import com.yfd.platform.qgc_env.warn.entity.vo.AiRstcdVo;
|
||||||
@ -356,6 +357,254 @@ public class WarnDataServiceImpl implements WarnDataService {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DataSourceResult<AiFileVo> getAiFileKendoListCust(DataSourceRequest dataSourceRequest) {
|
||||||
|
DataSourceLoadOptionsBase loadOptions = dataSourceRequest == null ? null : dataSourceRequest.toDevRequest();
|
||||||
|
String baseId = QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "baseId");
|
||||||
|
String tm = QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "tm");
|
||||||
|
String rstcd = QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "rstcd");
|
||||||
|
String stcd = QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "stcd");
|
||||||
|
String type = QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "type");
|
||||||
|
String dataType = QgcQueryWrapperUtil.getFilterFieldValue(loadOptions, "dataType");
|
||||||
|
|
||||||
|
Date startTime = null, endTime = null;
|
||||||
|
if (StrUtil.isNotBlank(tm)) {
|
||||||
|
String[] ll = tm.split(",");
|
||||||
|
if (ll.length == 2) {
|
||||||
|
startTime = DateUtil.parse(ll[0]);
|
||||||
|
endTime = DateUtil.parse(ll[1]);
|
||||||
|
if (startTime.after(endTime)) {
|
||||||
|
Date tmp = startTime;
|
||||||
|
startTime = endTime;
|
||||||
|
endTime = tmp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (StrUtil.isNotBlank(rstcd)) {
|
||||||
|
rstcd = rstcd.replace("[", "").replace("]", "").replaceAll("\"", "'");
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, Object> paramMap = new HashMap<>();
|
||||||
|
|
||||||
|
StringBuilder sql = new StringBuilder();
|
||||||
|
sql.append("SELECT * FROM (");
|
||||||
|
sql.append(buildAiFileHeartbeatSql(baseId, type, rstcd, stcd, startTime, endTime, paramMap, "hb"));
|
||||||
|
sql.append(" UNION ");
|
||||||
|
sql.append(buildAiFileComSql(baseId, type, rstcd, stcd, startTime, endTime, paramMap, "ac"));
|
||||||
|
sql.append(") WHERE 1=1 ");
|
||||||
|
|
||||||
|
if (StrUtil.isNotBlank(dataType)) {
|
||||||
|
paramMap.put("dataType", Integer.parseInt(dataType));
|
||||||
|
sql.append("AND DATA_TYPE = #{map.dataType} ");
|
||||||
|
}
|
||||||
|
|
||||||
|
sql.append(buildAiFileOrderBySql(dataSourceRequest == null ? null : dataSourceRequest.getSort()));
|
||||||
|
|
||||||
|
Page<?> page = loadOptions == null ? null : QgcQueryWrapperUtil.buildPage(loadOptions, loadOptions.getSkip(), loadOptions.getTake());
|
||||||
|
List<AiFileVo> list = microservicDynamicSQLMapper.pageAllListWithResultType(
|
||||||
|
page,
|
||||||
|
sql.toString(),
|
||||||
|
paramMap,
|
||||||
|
AiFileVo.class
|
||||||
|
);
|
||||||
|
|
||||||
|
DataSourceResult<AiFileVo> result = new DataSourceResult<>();
|
||||||
|
result.setData(list);
|
||||||
|
result.setTotal(page == null ? list.size() : page.getTotal());
|
||||||
|
result.setAggregates(new HashMap<>());
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String buildAiFileHeartbeatSql(String baseId, String type, String rstcd, String stcd,
|
||||||
|
Date startTime, Date endTime, Map<String, Object> paramMap, String keyPrefix) {
|
||||||
|
StringBuilder sql = new StringBuilder();
|
||||||
|
sql.append("SELECT ")
|
||||||
|
.append("a.STCD AS STCD, ")
|
||||||
|
.append("b.RSTCD AS RSTCD, ")
|
||||||
|
.append("eng.ENNM AS ENNM, ")
|
||||||
|
.append("b.STCD AS STCODE, ")
|
||||||
|
.append("b.STNM AS STNAME, ")
|
||||||
|
.append("hb.ORDER_INDEX AS BASESTEPSORT, ")
|
||||||
|
.append("along.ORDER_INDEX AS RVCDSTEPSORT, ")
|
||||||
|
.append("rstSort.SORT AS RSTCDSTEPSORT, ")
|
||||||
|
.append("siteSort.SORT AS SITESTEPSORT, ")
|
||||||
|
.append("b.STNM AS STNM, ")
|
||||||
|
.append("a.TM AS TM, ");
|
||||||
|
|
||||||
|
if (StrUtil.isNotBlank(type)) {
|
||||||
|
if ("AI_5001".equals(type) || "AI_50011".equals(type)) {
|
||||||
|
sql.append("3 AS DATA_TYPE, ");
|
||||||
|
} else {
|
||||||
|
sql.append("1 AS DATA_TYPE, ");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
sql.append("1 AS DATA_TYPE, ");
|
||||||
|
}
|
||||||
|
|
||||||
|
sql.append("REGEXP_SUBSTR(a.FID, '[^,]+', 1, LEVEL) AS FID ");
|
||||||
|
sql.append("FROM SD_AIHEARTBEAT_R a ");
|
||||||
|
sql.append("INNER JOIN SD_AIMONITOR_B_H b ON a.STCD = b.STCD AND NVL(b.IS_DELETED, 0) = 0 AND b.STTP LIKE 'AI_%' ");
|
||||||
|
sql.append("LEFT JOIN SD_ENGINFO_B_H eng ON b.RSTCD = eng.STCD AND NVL(eng.IS_DELETED, 0) = 0 ");
|
||||||
|
sql.append("LEFT JOIN SD_HYDROBASE hb ON b.BASE_ID = hb.BASEID AND NVL(hb.IS_DELETED, 0) = 0 ");
|
||||||
|
sql.append("LEFT JOIN MS_ALONG_B along ON b.HBRVCD = along.RVCD AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 ");
|
||||||
|
sql.append("LEFT JOIN (SELECT det.SORT, cfg.RVCD, det.STCD FROM MS_ALONGDET_B det INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common') rstSort ON rstSort.RVCD = b.HBRVCD AND rstSort.STCD = b.RSTCD ");
|
||||||
|
sql.append("LEFT JOIN (SELECT det.SORT, cfg.RVCD, det.STCD FROM MS_ALONGDET_B det INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common') siteSort ON siteSort.RVCD = b.HBRVCD AND siteSort.STCD = b.STCD ");
|
||||||
|
sql.append("WHERE NVL(a.IS_DELETED, 0) = 0 ");
|
||||||
|
sql.append("AND a.FID NOT LIKE '%ORA-%' AND a.FID NOT LIKE '%Out%' ");
|
||||||
|
|
||||||
|
if (StrUtil.isNotBlank(type)) {
|
||||||
|
if ("AI_50011".equals(type)) {
|
||||||
|
sql.append("AND b.STTP = 'AI_5001' ");
|
||||||
|
} else {
|
||||||
|
sql.append("AND b.STTP = '").append(type).append("' ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (StrUtil.isNotBlank(baseId)) {
|
||||||
|
paramMap.put(keyPrefix + "BaseId", baseId);
|
||||||
|
sql.append("AND b.BASE_ID = #{map.").append(keyPrefix).append("BaseId} ");
|
||||||
|
}
|
||||||
|
if (StrUtil.isNotBlank(stcd)) {
|
||||||
|
paramMap.put(keyPrefix + "Stcd", stcd);
|
||||||
|
sql.append("AND b.STCD = #{map.").append(keyPrefix).append("Stcd} ");
|
||||||
|
}
|
||||||
|
if (StrUtil.isNotBlank(rstcd)) {
|
||||||
|
sql.append("AND b.RSTCD IN (").append(rstcd).append(") ");
|
||||||
|
}
|
||||||
|
if (startTime != null) {
|
||||||
|
paramMap.put(keyPrefix + "StartTime", startTime);
|
||||||
|
sql.append("AND a.TM >= #{map.").append(keyPrefix).append("StartTime} ");
|
||||||
|
}
|
||||||
|
if (endTime != null) {
|
||||||
|
paramMap.put(keyPrefix + "EndTime", endTime);
|
||||||
|
sql.append("AND a.TM <= #{map.").append(keyPrefix).append("EndTime} ");
|
||||||
|
}
|
||||||
|
|
||||||
|
sql.append("CONNECT BY REGEXP_SUBSTR(a.FID, '[^,]+', 1, LEVEL) IS NOT NULL ");
|
||||||
|
sql.append("AND PRIOR a.ID = a.ID ");
|
||||||
|
sql.append("AND PRIOR DBMS_RANDOM.VALUE IS NOT NULL");
|
||||||
|
|
||||||
|
return sql.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
private String buildAiFileComSql(String baseId, String type, String rstcd, String stcd,
|
||||||
|
Date startTime, Date endTime, Map<String, Object> paramMap, String keyPrefix) {
|
||||||
|
StringBuilder sql = new StringBuilder();
|
||||||
|
sql.append("SELECT ")
|
||||||
|
.append("a.STCD AS STCD, ")
|
||||||
|
.append("b.RSTCD AS RSTCD, ")
|
||||||
|
.append("eng.ENNM AS ENNM, ")
|
||||||
|
.append("b.STCD AS STCODE, ")
|
||||||
|
.append("b.STNM AS STNAME, ")
|
||||||
|
.append("hb.ORDER_INDEX AS BASESTEPSORT, ")
|
||||||
|
.append("along.ORDER_INDEX AS RVCDSTEPSORT, ")
|
||||||
|
.append("rstSort.SORT AS RSTCDSTEPSORT, ")
|
||||||
|
.append("siteSort.SORT AS SITESTEPSORT, ")
|
||||||
|
.append("b.STNM AS STNM, ")
|
||||||
|
.append("a.TM AS TM, ");
|
||||||
|
|
||||||
|
if (StrUtil.isNotBlank(type)) {
|
||||||
|
if ("AI_5001".equals(type) || "AI_50011".equals(type)) {
|
||||||
|
sql.append("(CASE WHEN a.TYPE = 'AI_5001' AND (a.IS_BIG_DEBRIS_AREA IS NULL OR a.IS_BIG_DEBRIS_AREA = 0) THEN 4 WHEN a.TYPE = 'AI_5001' AND a.IS_BIG_DEBRIS_AREA > 0 THEN 5 END) AS DATA_TYPE, ");
|
||||||
|
} else {
|
||||||
|
sql.append("2 AS DATA_TYPE, ");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
sql.append("2 AS DATA_TYPE, ");
|
||||||
|
}
|
||||||
|
|
||||||
|
sql.append("REGEXP_SUBSTR(a.FID, '[^,]+', 1, LEVEL) AS FID ");
|
||||||
|
sql.append("FROM SD_AICOM_R a ");
|
||||||
|
sql.append("INNER JOIN SD_AIMONITOR_B_H b ON a.STCD = b.STCD AND NVL(b.IS_DELETED, 0) = 0 AND b.STTP LIKE 'AI_%' ");
|
||||||
|
sql.append("LEFT JOIN SD_ENGINFO_B_H eng ON b.RSTCD = eng.STCD AND NVL(eng.IS_DELETED, 0) = 0 ");
|
||||||
|
sql.append("LEFT JOIN SD_HYDROBASE hb ON b.BASE_ID = hb.BASEID AND NVL(hb.IS_DELETED, 0) = 0 ");
|
||||||
|
sql.append("LEFT JOIN MS_ALONG_B along ON b.HBRVCD = along.RVCD AND along.CODE = 'common' AND NVL(along.IS_DELETED, 0) = 0 ");
|
||||||
|
sql.append("LEFT JOIN (SELECT det.SORT, cfg.RVCD, det.STCD FROM MS_ALONGDET_B det INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common') rstSort ON rstSort.RVCD = b.HBRVCD AND rstSort.STCD = b.RSTCD ");
|
||||||
|
sql.append("LEFT JOIN (SELECT det.SORT, cfg.RVCD, det.STCD FROM MS_ALONGDET_B det INNER JOIN MS_ALONG_B cfg ON det.ALONG_ID = cfg.ID WHERE NVL(det.IS_DELETED, 0) = 0 AND NVL(cfg.IS_DELETED, 0) = 0 AND cfg.CODE = 'common') siteSort ON siteSort.RVCD = b.HBRVCD AND siteSort.STCD = b.STCD ");
|
||||||
|
sql.append("WHERE NVL(a.IS_DELETED, 0) = 0 ");
|
||||||
|
sql.append("AND (a.TASK_STATUS IS NULL OR a.TASK_STATUS = 'Approved') ");
|
||||||
|
sql.append("AND a.FID NOT LIKE '%ORA-%' AND a.FID NOT LIKE '%Out%' ");
|
||||||
|
|
||||||
|
if (StrUtil.isNotBlank(type)) {
|
||||||
|
if ("AI_50011".equals(type)) {
|
||||||
|
paramMap.put(keyPrefix + "Type", "AI_5001");
|
||||||
|
sql.append("AND a.TYPE = #{map.").append(keyPrefix).append("Type} ");
|
||||||
|
} else {
|
||||||
|
paramMap.put(keyPrefix + "Type", type);
|
||||||
|
sql.append("AND a.TYPE = #{map.").append(keyPrefix).append("Type} ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (StrUtil.isNotBlank(baseId)) {
|
||||||
|
paramMap.put(keyPrefix + "BaseId", baseId);
|
||||||
|
sql.append("AND b.BASE_ID = #{map.").append(keyPrefix).append("BaseId} ");
|
||||||
|
}
|
||||||
|
if (StrUtil.isNotBlank(stcd)) {
|
||||||
|
paramMap.put(keyPrefix + "Stcd", stcd);
|
||||||
|
sql.append("AND b.STCD = #{map.").append(keyPrefix).append("Stcd} ");
|
||||||
|
}
|
||||||
|
if (StrUtil.isNotBlank(rstcd)) {
|
||||||
|
sql.append("AND b.RSTCD IN (").append(rstcd).append(") ");
|
||||||
|
}
|
||||||
|
if (startTime != null) {
|
||||||
|
paramMap.put(keyPrefix + "StartTime", startTime);
|
||||||
|
sql.append("AND a.TM >= #{map.").append(keyPrefix).append("StartTime} ");
|
||||||
|
}
|
||||||
|
if (endTime != null) {
|
||||||
|
paramMap.put(keyPrefix + "EndTime", endTime);
|
||||||
|
sql.append("AND a.TM <= #{map.").append(keyPrefix).append("EndTime} ");
|
||||||
|
}
|
||||||
|
|
||||||
|
sql.append("CONNECT BY REGEXP_SUBSTR(a.FID, '[^,]+', 1, LEVEL) IS NOT NULL ");
|
||||||
|
sql.append("AND PRIOR a.ID = a.ID ");
|
||||||
|
sql.append("AND PRIOR DBMS_RANDOM.VALUE IS NOT NULL");
|
||||||
|
|
||||||
|
return sql.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
private String buildAiFileOrderBySql(List<DataSourceRequest.SortDescriptor> sortList) {
|
||||||
|
if (CollUtil.isEmpty(sortList)) {
|
||||||
|
return " ORDER BY STCD, TM DESC ";
|
||||||
|
}
|
||||||
|
List<String> orderItems = new ArrayList<>();
|
||||||
|
for (DataSourceRequest.SortDescriptor item : sortList) {
|
||||||
|
if (item == null || StrUtil.isBlank(item.getField())) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
String column = mapAiFileColumn(item.getField());
|
||||||
|
if (StrUtil.isBlank(column)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
String dir = "desc".equalsIgnoreCase(item.getDir()) ? "DESC" : "ASC";
|
||||||
|
orderItems.add(column + " " + dir);
|
||||||
|
}
|
||||||
|
if (orderItems.isEmpty()) {
|
||||||
|
return " ORDER BY STCD, TM DESC ";
|
||||||
|
}
|
||||||
|
return " ORDER BY " + String.join(", ", orderItems);
|
||||||
|
}
|
||||||
|
|
||||||
|
private String mapAiFileColumn(String field) {
|
||||||
|
if (StrUtil.isBlank(field)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return switch (field) {
|
||||||
|
case "stcd" -> "STCD";
|
||||||
|
case "stnm" -> "STNM";
|
||||||
|
case "tm" -> "TM";
|
||||||
|
case "fid" -> "FID";
|
||||||
|
case "rstcd" -> "RSTCD";
|
||||||
|
case "ennm" -> "ENNM";
|
||||||
|
case "stCode" -> "STCODE";
|
||||||
|
case "stName" -> "STNAME";
|
||||||
|
case "baseStepSort" -> "BASESTEPSORT";
|
||||||
|
case "rvcdStepSort" -> "RVCDSTEPSORT";
|
||||||
|
case "rstcdStepSort" -> "RSTCDSTEPSORT";
|
||||||
|
case "siteStepSort" -> "SITESTEPSORT";
|
||||||
|
case "dataType" -> "DATA_TYPE";
|
||||||
|
default -> null;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
private AiDmRunVo buildAiDmRunVo(Map<String, Object> row) {
|
private AiDmRunVo buildAiDmRunVo(Map<String, Object> row) {
|
||||||
if (row == null || row.isEmpty()) {
|
if (row == null || row.isEmpty()) {
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user