| | |
| | | @Operation(summary = "获取调度建议列表") |
| | | List<ScheduleSuggestRespDTO> getLastLimitScheduleSuggest(@RequestParam("scheduleObj") String scheduleObj, @RequestParam("limit") Integer limit); |
| | | |
| | | |
| | | @PostMapping(PREFIX + "/schedule-model-setting/modify") |
| | | @Operation(summary = "修改调度模型设置参数") |
| | | Boolean modifyScheduleModelSetting(@RequestBody List<ScheduleModelSettingReqDTO> dtos); |
| | | |
| | | @GetMapping(PREFIX + "/schedule-model/out") |
| | | @Operation(summary = "调度模型数据下发") |
| | | Boolean scheduleModelOut(@RequestParam MdkScheduleRespDTO dto); |
| | | |
| | | @GetMapping(PREFIX + "/schedule-scheme/list") |
| | | @Operation(summary = "获取调度方案列表") |
| | |
| | | @PostMapping(PREFIX + "/schedule-scheme") |
| | | @Operation(summary = "执行调度方案") |
| | | MdkScheduleRespDTO doSchedule(@Valid @RequestBody MdkScheduleReqDTO reqDTO); |
| | | |
| | | @PostMapping(PREFIX + "/schedule-model/out") |
| | | @Operation(summary = "调度模型数据下发") |
| | | Boolean scheduleModelOut(@RequestBody MdkScheduleRespDTO dto); |
| | | } |
| | |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | | private Date scheduleTime; |
| | | |
| | | private String statusCode; |
| | | |
| | | private Map<String, Object> result; |
| | | } |
| | |
| | | `disturbance_point_no` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '无扰切换点位', |
| | | PRIMARY KEY (`id`) USING BTREE, |
| | | INDEX `ind_model_id`(`model_id` ASC) USING BTREE |
| | | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='模型下发信息表'; |
| | | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='模型下发信息表'; |
| | | |
| | | alter table t_st_schedule_scheme add column `run_status` varchar(4) DEFAULT NULL COMMENT '运行状态'; |
| | |
| | | @Autowired |
| | | private StScheduleSchemeService stScheduleSchemeService; |
| | | |
| | | @Autowired |
| | | private StScheduleModelOutService stScheduleModelOutService; |
| | | |
| | | private int HOUR_MINS = 60; |
| | | |
| | | @Override |
| | |
| | | params.put("triggerMethod", triggerMethod); |
| | | params.put("triggerCondition", triggerCondition); |
| | | return stScheduleSchemeService.list(params); |
| | | } |
| | | |
| | | @Override |
| | | public Boolean scheduleModelOut(MdkScheduleRespDTO dto) { |
| | | String modelId = stScheduleSchemeService.getByCode(dto.getScheduleCode()).getModelId(); |
| | | Map<String,Object> result = dto.getResult(); |
| | | List<StScheduleModelOutDTO> list = stScheduleModelOutService.list(modelId); |
| | | try{ |
| | | list.forEach( |
| | | item -> { |
| | | double value = 0; |
| | | //判断点位是否下发以及返回结果是否存在 |
| | | if(item.getIsWrite()==1){ |
| | | if(result.get(item.getResultKey())==null){ |
| | | log.error(result.get(item.getResultKey()) + "resultKey匹配失败"); |
| | | } |
| | | Object resultValue = result.get(item.getResultKey()); |
| | | //判断解析方式 |
| | | if(item.getResultType().equals("double")){ |
| | | if(resultValue instanceof Double) { |
| | | value = (Double) resultValue; |
| | | } |
| | | }else if(item.getResultType().equals("double[]")){ |
| | | ArrayList<Double> doubleList = (ArrayList<Double>) resultValue; |
| | | double[] array = new double[doubleList.size()]; |
| | | for (int i = 0; i < doubleList.size(); i++) { |
| | | array[i] = doubleList.get(i); |
| | | } |
| | | if(array!= null && item.getResultPort() < array.length){ |
| | | value = array[item.getResultPort()]; |
| | | }else{ |
| | | log.error(result.get(item.getResultKey()) + "下角标超限"); |
| | | } |
| | | |
| | | }else if(item.getResultType().equals("double[][]")){ |
| | | if (item.getResultType().equals("double[][]")) { |
| | | if (resultValue instanceof ArrayList) { |
| | | ArrayList<ArrayList<Double>> doubleListList = (ArrayList<ArrayList<Double>>) resultValue; |
| | | double[][] array = new double[doubleListList.size()][]; |
| | | for (int i = 0; i < doubleListList.size(); i++) { |
| | | ArrayList<Double> doubleList = doubleListList.get(i); |
| | | array[i] = new double[doubleList.size()]; |
| | | for (int j = 0; j < doubleList.size(); j++) { |
| | | array[i][j] = doubleList.get(j); |
| | | } |
| | | } |
| | | if (array != null && item.getResultPort() < array.length && item.getResultIndex() < array[item.getResultPort()].length) { |
| | | value = array[item.getResultPort()][item.getResultIndex()]; |
| | | } else { |
| | | log.error(result.get(item.getResultKey()) + "下标超限"); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | //下发到point点位 |
| | | ApiPointValueWriteDTO ApiPointValueWriteDTO = new ApiPointValueWriteDTO(); |
| | | ApiPointValueWriteDTO.setPointNo(item.getPointNo()); |
| | | ApiPointValueWriteDTO.setValue(value); |
| | | if (!dataPointApi.writePointRealValue(ApiPointValueWriteDTO)) { |
| | | log.error(result.get(item.getResultKey()) + "下发数据异常"); |
| | | } |
| | | |
| | | } |
| | | } |
| | | ); |
| | | }catch (Exception ex){ |
| | | log.error("下发数据异常"); |
| | | ex.printStackTrace(); |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | private Date[] calResultTime(ItemVO predictItem, Date startTimeReq, Date endTimeReq, int lengthLeft, int lengthRight) { |
| | |
| | | package com.iailab.module.model.api; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.iailab.module.data.api.point.DataPointApi; |
| | | import com.iailab.module.data.api.point.dto.ApiPointValueWriteDTO; |
| | | import com.iailab.module.model.api.mcs.dto.StScheduleModelOutDTO; |
| | | import com.iailab.module.model.api.mdk.MdkApi; |
| | | import com.iailab.module.model.api.mdk.dto.*; |
| | | import com.iailab.module.model.common.enums.IsWriteEnum; |
| | | import com.iailab.module.model.common.enums.ModelOutResultType; |
| | | import com.iailab.module.model.common.enums.OutResultType; |
| | | import com.iailab.module.model.mcs.pre.entity.DmModuleEntity; |
| | | import com.iailab.module.model.mcs.pre.service.DmModuleService; |
| | | import com.iailab.module.model.mcs.pre.service.MmPredictItemService; |
| | | import com.iailab.module.model.mcs.sche.service.StScheduleModelOutService; |
| | | import com.iailab.module.model.mcs.sche.service.StScheduleRecordService; |
| | | import com.iailab.module.model.mcs.sche.service.StScheduleSchemeService; |
| | | import com.iailab.module.model.mdk.predict.PredictModuleHandler; |
| | |
| | | |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import static com.iailab.module.model.common.enums.ModelOutResultType.D; |
| | | |
| | | /** |
| | | * @author PanZhibao |
| | |
| | | |
| | | @Autowired |
| | | private StScheduleSchemeService stScheduleSchemeService; |
| | | |
| | | @Autowired |
| | | private StScheduleModelOutService stScheduleModelOutService; |
| | | |
| | | @Autowired |
| | | private DataPointApi dataPointApi; |
| | | |
| | | /** |
| | | * 按模块预测 |
| | |
| | | try { |
| | | log.info("调度计算开始: " + System.currentTimeMillis()); |
| | | ScheduleResultVO scheduleResult = scheduleModelHandler.doSchedule(reqDTO.getScheduleCode(), reqDTO.getScheduleTime()); |
| | | resp.setStatusCode(scheduleResult.getResultCode()); |
| | | resp.setResult(scheduleResult.getResult()); |
| | | stScheduleRecordService.create(scheduleResult); |
| | | stScheduleSchemeService.updateTime(scheduleResult.getSchemeId(), scheduleResult.getScheduleTime()); |
| | | stScheduleSchemeService.updateTime(scheduleResult.getSchemeId(), scheduleResult.getScheduleTime(), scheduleResult.getResultCode()); |
| | | log.info("预测计算结束: " + System.currentTimeMillis()); |
| | | } catch (Exception ex) { |
| | | log.info("调度计算异常: " + System.currentTimeMillis()); |
| | |
| | | } |
| | | return resp; |
| | | } |
| | | |
| | | @Override |
| | | public Boolean scheduleModelOut(MdkScheduleRespDTO dto) { |
| | | String modelId = stScheduleSchemeService.getByCode(dto.getScheduleCode()).getModelId(); |
| | | Map<String, Object> result = dto.getResult(); |
| | | List<StScheduleModelOutDTO> list = stScheduleModelOutService.list(modelId); |
| | | try { |
| | | for (StScheduleModelOutDTO stScheduleModelOutDTO : list) { |
| | | double value = 0; |
| | | //判断点位是否下发 |
| | | if (stScheduleModelOutDTO.getIsWrite().equals(IsWriteEnum.NOTWRITE.value())) { |
| | | continue; |
| | | } |
| | | //返回结果是否存在 |
| | | if (result.get(stScheduleModelOutDTO.getResultKey()) == null) { |
| | | log.error(result.get(stScheduleModelOutDTO.getResultKey()) + "resultKey匹配失败"); |
| | | continue; |
| | | } |
| | | Object resultValue = result.get(stScheduleModelOutDTO.getResultKey()); |
| | | //判断解析方式 |
| | | ModelOutResultType modelOutResultType = ModelOutResultType.getEumByCode(stScheduleModelOutDTO.getResultType()); |
| | | switch (modelOutResultType) { |
| | | case D: |
| | | value = (Double) resultValue; |
| | | break; |
| | | case D1: |
| | | ArrayList<Double> doubleList = (ArrayList<Double>) resultValue; |
| | | double[] array1 = new double[doubleList.size()]; |
| | | for (int i = 0; i < doubleList.size(); i++) { |
| | | array1[i] = doubleList.get(i); |
| | | } |
| | | if (stScheduleModelOutDTO.getResultPort() < array1.length) { |
| | | value = array1[stScheduleModelOutDTO.getResultPort()]; |
| | | } else { |
| | | log.error(result.get(stScheduleModelOutDTO.getResultKey()) + "下角标超限"); |
| | | } |
| | | break; |
| | | case D2: |
| | | ArrayList<ArrayList<Double>> doubleListList = (ArrayList<ArrayList<Double>>) resultValue; |
| | | double[][] array2 = new double[doubleListList.size()][]; |
| | | for (int i = 0; i < doubleListList.size(); i++) { |
| | | ArrayList<Double> doubleList2 = doubleListList.get(i); |
| | | array2[i] = new double[doubleList2.size()]; |
| | | for (int j = 0; j < doubleList2.size(); j++) { |
| | | array2[i][j] = doubleList2.get(j); |
| | | } |
| | | } |
| | | if (stScheduleModelOutDTO.getResultPort() < array2.length && stScheduleModelOutDTO.getResultIndex() < array2[stScheduleModelOutDTO.getResultPort()].length) { |
| | | value = array2[stScheduleModelOutDTO.getResultPort()][stScheduleModelOutDTO.getResultIndex()]; |
| | | } else { |
| | | log.error(result.get(stScheduleModelOutDTO.getResultKey()) + "下标超限"); |
| | | } |
| | | break; |
| | | } |
| | | //下发到point点位 |
| | | ApiPointValueWriteDTO ApiPointValueWriteDTO = new ApiPointValueWriteDTO(); |
| | | ApiPointValueWriteDTO.setPointNo(stScheduleModelOutDTO.getPointNo()); |
| | | ApiPointValueWriteDTO.setValue(value); |
| | | if (!dataPointApi.writePointRealValue(ApiPointValueWriteDTO)) { |
| | | log.error(result.get(stScheduleModelOutDTO.getResultKey()) + "下发数据异常"); |
| | | } |
| | | } |
| | | } catch (Exception ex) { |
| | | log.error("下发数据异常"); |
| | | ex.printStackTrace(); |
| | | } |
| | | return true; |
| | | } |
| | | } |
| | |
| | | List<ScheduleSuggestRespDTO> data = mcsApi.getLastLimitScheduleSuggest(scheduleObj, limit); |
| | | return CommonResult.success(data); |
| | | } |
| | | |
| | | @PostMapping("/schedule-model/out") |
| | | @Operation(summary = "调度模型数据下发") |
| | | public Boolean scheduleModelOut(HttpServletResponse response, HttpServletRequest |
| | | request, @RequestBody MdkScheduleRespDTO dto) throws Exception { |
| | | apiSecurityUtils.validate(request); |
| | | return mcsApi.scheduleModelOut(dto); |
| | | } |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.model.api.controller.admin; |
| | | import com.iailab.module.model.api.mdk.MdkApi; |
| | | import com.iailab.module.model.api.mdk.dto.MdkScheduleRespDTO; |
| | | import com.iailab.module.model.common.utils.ApiSecurityUtils; |
| | | import io.swagger.v3.oas.annotations.Operation; |
| | | import io.swagger.v3.oas.annotations.tags.Tag; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.annotation.Resource; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | |
| | | /** |
| | | * @author DongYukun |
| | | * @Description |
| | | * @createTime 2025年1月2日 |
| | | */ |
| | | @Slf4j |
| | | @RestController |
| | | @RequestMapping("/model/api/mdk") |
| | | @Tag(name = "数据") |
| | | public class MdkApiController { |
| | | |
| | | @Resource |
| | | private ApiSecurityUtils apiSecurityUtils; |
| | | |
| | | @Autowired |
| | | private MdkApi mdkApi; |
| | | |
| | | @PostMapping("/schedule-model/out") |
| | | @Operation(summary = "调度模型数据下发") |
| | | public Boolean scheduleModelOut(HttpServletResponse response, HttpServletRequest |
| | | request, @RequestBody MdkScheduleRespDTO dto) throws Exception { |
| | | apiSecurityUtils.validate(request); |
| | | return mdkApi.scheduleModelOut(dto); |
| | | } |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.model.common.enums; |
| | | |
| | | /** |
| | | * @author DongYukun |
| | | * @Description |
| | | * @createTime 2025年01月02日 13:43:00 |
| | | */ |
| | | public enum IsWriteEnum { |
| | | ISWRITE(1), // 写入 |
| | | NOTWRITE(0); //不写入 |
| | | |
| | | private Integer value; |
| | | |
| | | IsWriteEnum(Integer value) { |
| | | this.value = value; |
| | | } |
| | | |
| | | public Integer value() { |
| | | return this.value; |
| | | } |
| | | } |
对比新文件 |
| | |
| | | package com.iailab.module.model.common.enums; |
| | | |
| | | import lombok.AllArgsConstructor; |
| | | import lombok.Getter; |
| | | |
| | | /** |
| | | * @author DongYukun |
| | | * @Description |
| | | * @createTime 2024年1月2日 |
| | | */ |
| | | @Getter |
| | | @AllArgsConstructor |
| | | public enum ModelOutResultType { |
| | | D("double", "double"), |
| | | D1("double[]", "double[]"), |
| | | D2("double[][]", "double[][]"); |
| | | |
| | | private String code; |
| | | private String desc; |
| | | |
| | | public static ModelOutResultType getEumByCode(String code) { |
| | | if (code == null) { |
| | | return null; |
| | | } |
| | | |
| | | for (ModelOutResultType statusEnum : ModelOutResultType.values()) { |
| | | if (statusEnum.getCode().equals(code)) { |
| | | return statusEnum; |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | } |
| | |
| | | /** |
| | | * 预测时间 |
| | | */ |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8") |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | | private Date predicttime; |
| | | |
| | | /** |
| | | * 收集时间 |
| | | */ |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8") |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | | private Date collecttime; |
| | | |
| | | /** |
| | |
| | | * 项目ID |
| | | */ |
| | | private String mpkprojectid; |
| | | |
| | | /** |
| | | * 运行状态 |
| | | */ |
| | | private String runStatus; |
| | | } |
| | |
| | | |
| | | StScheduleSchemeEntity getInfo(String id); |
| | | |
| | | void updateTime(String id, Date scheduleTime); |
| | | void updateTime(String id, Date scheduleTime, String statusCode); |
| | | |
| | | StScheduleSchemeEntity getByCode(String code); |
| | | |
| | |
| | | @Override |
| | | public List<StScheduleModelOutDTO> list(String modelId) { |
| | | QueryWrapper<StScheduleModelOutEntity> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.eq("model_id", modelId); |
| | | queryWrapper.eq("model_id", modelId) |
| | | .orderByAsc("sort"); |
| | | List<StScheduleModelOutEntity> list = baseDao.selectList(queryWrapper); |
| | | return ConvertUtils.sourceToTarget(list, StScheduleModelOutDTO.class); |
| | | } |
| | |
| | | } |
| | | |
| | | @Override |
| | | public void updateTime(String id, Date scheduleTime) { |
| | | public void updateTime(String id, Date scheduleTime, String statusCode) { |
| | | StScheduleSchemeEntity entity = new StScheduleSchemeEntity(); |
| | | entity.setId(id); |
| | | entity.setRunStatus(statusCode); |
| | | entity.setScheduleTime(scheduleTime); |
| | | baseDao.updateById(entity); |
| | | } |
| | |
| | | package com.iailab.module.model.mcs.sche.vo; |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import io.swagger.v3.oas.annotations.media.Schema; |
| | | import lombok.Data; |
| | | |
| | |
| | | private String modelId; |
| | | |
| | | @Schema(description = "调度时间", example = "2024-09-01 00:00:00") |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | | private Date scheduleTime; |
| | | |
| | | @Schema(description = "备注", example = "备注") |
| | |
| | | |
| | | @Schema(description = "项目ID") |
| | | private String mpkprojectid; |
| | | |
| | | @Schema(description = "运行状态") |
| | | private String runStatus; |
| | | } |
| | |
| | | log.info("参数: " + JSON.toJSONString(param2Values)); |
| | | //IAILMDK.run |
| | | HashMap<String, Object> modelResult = DllUtils.run(newModelBean, param2Values, scheduleScheme.getMpkprojectid()); |
| | | if (!modelResult.containsKey(CommonConstant.MDK_STATUS_CODE) || !modelResult.containsKey(CommonConstant.MDK_RESULT) || |
| | | !modelResult.get(CommonConstant.MDK_STATUS_CODE).toString().equals(CommonConstant.MDK_STATUS_100)) { |
| | | throw new RuntimeException("模型结果异常:" + modelResult); |
| | | if (!modelResult.containsKey(CommonConstant.MDK_STATUS_CODE) || !modelResult.containsKey(CommonConstant.MDK_RESULT)) { |
| | | log.info("模型结果异常:" + modelResult); |
| | | } |
| | | String statusCode = modelResult.get(CommonConstant.MDK_STATUS_CODE).toString(); |
| | | modelResult = (HashMap<String, Object>) modelResult.get(CommonConstant.MDK_RESULT); |
| | | HashMap<String, Object> result = new HashMap<>(); |
| | | if (modelResult.containsKey(CommonConstant.MDK_RESULT) && modelResult.get(CommonConstant.MDK_RESULT) != null && |
| | | CommonConstant.MDK_STATUS_100.equals(modelResult.get(CommonConstant.MDK_STATUS_CODE).toString())) { |
| | | result = (HashMap<String, Object>) modelResult.get(CommonConstant.MDK_RESULT); |
| | | } |
| | | //打印结果 |
| | | JSONObject jsonObjResult = new JSONObject(); |
| | | jsonObjResult.put("result", modelResult); |
| | | jsonObjResult.put("result", result); |
| | | log.info(String.valueOf(jsonObjResult)); |
| | | |
| | | //5.返回调度结果 |
| | | scheduleResult.setResultCode(statusCode); |
| | | scheduleResult.setResult(modelResult); |
| | | scheduleResult.setResult(result); |
| | | scheduleResult.setModelId(modelId); |
| | | scheduleResult.setSchemeId(scheduleScheme.getId()); |
| | | scheduleResult.setScheduleTime(scheduleTime); |
| | |
| | | - t_st_schedule_suggest |
| | | - t_st_schedule_record |
| | | - t_st_schedule_record_detail |
| | | - t_st_schedule_model_out |
| | | - t_mpk_file |
| | | - t_mpk_generator_code_history |
| | | - t_mpk_method_setting |
对比新文件 |
| | |
| | | INSERT INTO `iailab_plat_system`.`system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1722, 2, 'double[][]', 'double[][]', 'result_type', 0, '', '', '', '1', '2025-01-02 14:13:01', '1', '2025-01-02 14:13:01', b'0'); |
| | | INSERT INTO `iailab_plat_system`.`system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1721, 1, 'double[]', 'double[]', 'result_type', 0, '', '', '', '1', '2025-01-02 14:12:45', '1', '2025-01-02 14:12:45', b'0'); |
| | | INSERT INTO `iailab_plat_system`.`system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1720, 0, 'double', 'double', 'result_type', 0, '', '', '', '1', '2025-01-02 14:12:33', '1', '2025-01-02 14:12:33', b'0'); |
| | | INSERT INTO `iailab_plat_system`.`system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1719, 1, 'Bad', 'Bad', 'data_quality', 0, '', '', '', '142', '2024-12-19 13:11:57', '142', '2024-12-19 13:11:57', b'0'); |
| | | INSERT INTO `iailab_plat_system`.`system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1718, 0, 'Good', 'Good', 'data_quality', 0, '', '', '', '142', '2024-12-19 13:11:48', '142', '2024-12-19 13:11:48', b'0'); |
| | | INSERT INTO `iailab_plat_system`.`system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (681, '模型下发数据类型', 'result_type', 0, '', '1', '2025-01-02 14:12:12', '1', '2025-01-02 14:12:12', b'0', '1970-01-01 00:00:00'); |
| | | INSERT INTO `iailab_plat_system`.`system_dict_type` (`id`, `name`, `type`, `status`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `deleted_time`) VALUES (680, '采集质量', 'data_quality', 0, '', '142', '2024-12-19 13:11:05', '142', '2024-12-19 13:11:05', b'0', '1970-01-01 00:00:00'); |