From 7fd198b8ebe97cd06b10f96b9179caebe679783c Mon Sep 17 00:00:00 2001 From: 潘志宝 <979469083@qq.com> Date: 星期四, 05 九月 2024 10:43:26 +0800 Subject: [PATCH] 重构model --- iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mdk/dto/MdkPredictReqDTO.java | 22 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/enums/ItemIncreaseCodeEnum.java | 10 iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/MmItemTypeDao.xml | 24 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmResultTableRespVO.java | 26 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmResultTablePageReqVO.java | 21 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/PredictSampleDataConstructor.java | 148 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/SampleInfoConstructor.java | 197 + iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmResultTableDao.java | 23 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmModelParamDao.java | 13 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/ScheduleSchemeDetailesVo.java | 61 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmItemResultService.java | 22 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/SampleConstructor.java | 43 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleParamServiceImpl.java | 51 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleObjectService.java | 27 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/common/exceptions/RealDataLackException.java | 20 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/controller/MmResultTableController.java | 79 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/DmModuleDao.java | 22 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmPredictMergeItemEntity.java | 41 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleEnergyTypePageReqVO.java | 21 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleService.java | 26 iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mdk/dto/MdkPredictModuleRespDTO.java | 23 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmItemOutputServiceImpl.java | 78 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleSchemeDetailesEntity.java | 46 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/PredictSampleInfoConstructor.java | 142 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleParamSettingServiceImpl.java | 49 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/controller/MmModelResultstrController.java | 40 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleEnergyTypeService.java | 27 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmModelArithSettingsEntity.java | 55 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleParamService.java | 15 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleUserServiceImpl.java | 74 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/DmModuleItemDao.java | 13 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/DmModuleItemServiceImpl.java | 42 iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java | 55 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleEnergyTypeServiceImpl.java | 75 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmPredictModelService.java | 27 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/PredictModuleHandler.java | 73 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/factory/ItemEntityFactory.java | 163 + iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/common/exceptions/SamplePrepareException.java | 19 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/controller/StScheduleController.java | 78 iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/MmItemResultDao.xml | 32 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/dto/SampleInfo.java | 33 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleEnergyTypeDao.java | 22 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/SequenceNumServiceImpl.java | 29 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dto/StScheduleModelDto.java | 80 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/dto/ColumnItemPort.java | 32 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleSchemeEvalValueDao.java | 13 iailab-module-model/iailab-module-model-biz/pom.xml | 90 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmPredictItemServiceImpl.java | 264 + iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mdk/dto/MdkPredictDataDTO.java | 20 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/vo/ModelVO.java | 122 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dto/StSchedulePredictItemDto.java | 81 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleSchemeDetailesDao.java | 25 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmItemTypeImpl.java | 84 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmModelResultstrEntity.java | 29 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleEntity.java | 38 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dto/MmPredictItemDTO.java | 32 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmItemOutputPageReqVO.java | 19 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleSchemeServiceImpl.java | 16 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/controller/DmModuleController.java | 93 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/common/exceptions/DataAccessException.java | 19 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/dto/ColumnItem.java | 61 iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/enums/ApiConstants.java | 21 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/impl/PredictItemNormalHandlerImpl.java | 74 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/MdkApiImpl.java | 137 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmModelResultstrServiceImpl.java | 29 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/SampleFactory.java | 41 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmPredictMergeItemDao.java | 13 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/ModelServiceApplication.java | 21 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmModelResultstrPageReqVO.java | 21 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/factory/PredictItemFactory.java | 40 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/common/exceptions/ModelInvokeException.java | 25 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleObjectRespVO.java | 28 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/vo/ModelInputParamVO.java | 46 iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mdk/dto/MdkScheduleRespDTO.java | 14 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleSchemeService.java | 11 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/vo/ModelArithParamVO.java | 30 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/vo/MmItemOutputVO.java | 17 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/ScheduleModelUserParamVo.java | 90 iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/MmPredictModelDao.xml | 27 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleObjectDao.java | 23 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/common/enums/ItemPredictStatus.java | 27 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/CountItemtypeVO.java | 25 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/common/exceptions/ItemInvokeException.java | 22 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/DmModuleRespVO.java | 59 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleModelUserParamService.java | 21 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/common/exceptions/ErrorCalculateFailedException.java | 19 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmPredictModelEntity.java | 130 iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/AlarmMessageDTO.java | 60 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/dto/SampleData.java | 14 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/SequenceNumDao.java | 13 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleParamDao.java | 13 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmModelResultstrRespVO.java | 27 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/vo/ItemVO.java | 29 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleUserRespVO.java | 28 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmItemOutputRespVO.java | 46 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleSchemeDao.java | 22 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmModelParamEntity.java | 68 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmItemResultServiceImpl.java | 170 + iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleSchemeEvalValueEntity.java | 46 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmPredictItemDao.java | 39 iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mdk/MdkApi.java | 41 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/controller/StScheduleObjectController.java | 80 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/controller/MmItemOutputController.java | 36 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleEnergyTypeRespVO.java | 20 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmPredictMergeItemService.java | 15 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleModelDao.java | 27 iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/PreDataViewRespDTO.java | 94 iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/PreDataViewReqDTO.java | 25 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleSchemeEvalTypeDao.java | 13 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleObjectEntity.java | 37 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleServiceImpl.java | 72 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmResultTableService.java | 25 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmPredictModelServiceImpl.java | 76 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmModelArithSettingsService.java | 17 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleObjectPageReqVO.java | 21 iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/MmPredictItemDao.xml | 121 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/enums/ItemTypeEnum.java | 24 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleSchemeEvalTypeEntity.java | 30 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StSchedulePageReqVO.java | 21 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmItemOutputService.java | 30 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/DmModuleEntity.java | 74 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmResultTableServiceImpl.java | 69 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/SequenceNumService.java | 13 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/common/enums/TypeA.java | 9 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/PredictResultHandler.java | 90 iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/PredictItemInfoDTO.java | 27 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/DmModuleItemService.java | 15 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleModelUserParamServiceImpl.java | 67 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleSchemeDetailesServiceImpl.java | 39 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/impl/PredictModelHandlerImpl.java | 167 + iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleParamSettingService.java | 15 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/common/exceptions/ArithInvokeException.java | 21 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleParamEntity.java | 60 iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/PredictItemTreeDTO.java | 22 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmModelParamService.java | 17 iailab-module-model/iailab-module-model-biz/db/mysql.sql | 79 iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mdk/dto/MdkScheduleReqDTO.java | 20 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmPredictItemEntity.java | 99 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmPredictItemService.java | 46 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/factory/ModelEntityFactory.java | 150 iailab-module-model/iailab-module-model-biz/src/main/resources/iailmdk.properties | 4 iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/MmItemOutputDao.xml | 49 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmItemResultJsonEntity.java | 30 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmModelParamServiceImpl.java | 45 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmPredictMergeItemServiceImpl.java | 47 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmPredictItemPageReqVO.java | 19 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleModelServiceImpl.java | 145 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleModelUserParamDao.java | 26 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmItemResultEntity.java | 39 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmResultTableEntity.java | 31 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dto/MmItemOutputDTO.java | 40 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmItemOutputDao.java | 27 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/vo/DataValueVO.java | 23 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmItemOutputEntity.java | 52 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmPredictItemRespVO.java | 85 iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mdk/dto/MdkPredictItemRespDTO.java | 23 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/impl/PredictItemMergeHandlerImpl.java | 131 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleUserEntity.java | 40 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StSchedulePredictItemEntity.java | 58 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleObjectServiceImpl.java | 76 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/common/exceptions/ArrayLengthMisMatchException.java | 19 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmModelResultstrService.java | 20 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleUserPageReqVO.java | 21 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/vo/MergeItemVO.java | 18 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/controller/StScheduleEnergyTypeController.java | 86 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/DmModuleItemEntity.java | 53 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleParamSettingEntity.java | 50 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmModelArithSettingsServiceImpl.java | 49 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleEnergyTypeEntity.java | 34 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/DmModulePageReqVO.java | 21 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleModelRespVO.java | 75 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/PredictModelHandler.java | 17 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleModelService.java | 31 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleRespVO.java | 30 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/vo/PredictResultVO.java | 51 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/common/dto/MdkDataDTO.java | 9 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleParamSettingDao.java | 13 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/controller/MmItemTypeController.java | 82 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/controller/StScheduleUserController.java | 80 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleSchemeDetailesService.java | 19 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleDao.java | 23 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/controller/StScheduleModelController.java | 85 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleModelPageReqVO.java | 19 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmItemTypeService.java | 27 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmItemResultDao.java | 21 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/DmModuleService.java | 31 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmItemTypeRespVO.java | 36 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmItemTypePageReqVO.java | 21 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/PredictItemHandler.java | 17 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmItemTypeEntity.java | 43 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleUserDao.java | 22 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleSchemeEntity.java | 62 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmModelResultstrDao.java | 22 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleModelEntity.java | 69 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleModelUserParamEntity.java | 81 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmPredictModelDao.java | 22 iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/ScheduleSuggestDTO.java | 74 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/controller/MmPredictItemController.java | 113 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/SampleDataConstructor.java | 95 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmItemTypeDao.java | 26 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/SequenceNumEntity.java | 48 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleUserService.java | 27 /dev/null | 14 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/DmModuleServiceImpl.java | 95 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/enums/ItemStatus.java | 32 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmModelArithSettingsDao.java | 31 206 files changed, 9,552 insertions(+), 107 deletions(-) diff --git a/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/api/mdk/MdkApi.java b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/api/mdk/MdkApi.java deleted file mode 100644 index 006bbba..0000000 --- a/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/api/mdk/MdkApi.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.iailab.api.mdk; - -import com.iailab.api.mdk.dto.MdkPredictReqDTO; -import com.iailab.enums.ApiConstants; -import com.iailab.framework.common.pojo.CommonResult; -import io.swagger.v3.oas.annotations.tags.Tag; -import org.springframework.cloud.openfeign.FeignClient; -import org.springframework.web.bind.annotation.RequestBody; - -import javax.validation.Valid; - -/** - * @author PanZhibao - * @Description - * @createTime 2024年08月26日 - */ -@FeignClient(name = ApiConstants.NAME) -@Tag(name = "RPC 服务 - 部门") -public interface MdkApi { - - CommonResult<Boolean> predict(@Valid @RequestBody MdkPredictReqDTO reqDTO); -} diff --git a/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/api/mdk/dto/MdkPredictReqDTO.java b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/api/mdk/dto/MdkPredictReqDTO.java deleted file mode 100644 index 944b277..0000000 --- a/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/api/mdk/dto/MdkPredictReqDTO.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.iailab.api.mdk.dto; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; - -import java.util.Date; - -/** - * @author PanZhibao - * @Description - * @createTime 2024年08月26日 - */ -@Schema(description = "RPC 模型 - 预测 DTO") -@Data -public class MdkPredictReqDTO { - - private Date predictTime; - - private String moduleType; -} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/enums/ApiConstants.java b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/enums/ApiConstants.java deleted file mode 100644 index 5d8d96c..0000000 --- a/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/enums/ApiConstants.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.iailab.enums; - -import com.iailab.framework.common.enums.RpcConstants; - -/** - * @author PanZhibao - * @Description - * @createTime 2024年08月26日 - */ -public class ApiConstants { - /** - * 服务名 - * - * 注意,需要保证和 spring.application.name 保持一致 - */ - public static final String NAME = "model-server"; - - public static final String PREFIX = RpcConstants.RPC_API_PREFIX + "/model"; - - public static final String VERSION = "1.0.0"; -} \ 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 new file mode 100644 index 0000000..abb31a0 --- /dev/null +++ b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java @@ -0,0 +1,55 @@ +package com.iailab.module.model.api.mcs; + +import com.iailab.framework.common.pojo.CommonResult; +import com.iailab.module.model.api.mcs.dto.AlarmMessageDTO; +import com.iailab.module.model.api.mcs.dto.PredictItemInfoDTO; +import com.iailab.module.model.api.mcs.dto.PredictItemTreeDTO; +import com.iailab.module.model.api.mcs.dto.ScheduleSuggestDTO; +import com.iailab.module.model.enums.ApiConstants; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; + +import java.util.List; +import java.util.Map; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年08月26日 + */ +@FeignClient(name = ApiConstants.NAME) +@Tag(name = "RPC 服务 - MCS") +public interface McsApi { + + String PREFIX = ApiConstants.PREFIX + "/mcs"; + + @GetMapping(PREFIX + "/predict-item-tree") + @Operation(summary = "预测项树") + CommonResult<List<PredictItemTreeDTO>> getPredictItemTree(); + + @GetMapping(PREFIX + "/predict-item-info") + @Operation(summary = "预测项详情") + CommonResult<PredictItemInfoDTO> getPredictItemInfo(@RequestParam Map<String, Object> params); + + @PostMapping(PREFIX + "/alarm-message/create") + @Operation(summary = "添加预警信息") + CommonResult<Boolean> createAlarmMessage(@RequestBody AlarmMessageDTO dto); + + @GetMapping(PREFIX + "/alarm-message/list") + @Operation(summary = "获取预警信息") + CommonResult<AlarmMessageDTO> listAlarmMessage(@RequestParam Map<String, Object> params); + + @PostMapping(PREFIX + "/schedule-suggest/create") + @Operation(summary = "添加调度建议") + CommonResult<Boolean> createScheduleSuggest(@RequestBody ScheduleSuggestDTO dto); + + @GetMapping(PREFIX + "/alarm-message/list") + @Operation(summary = "获取调度建议") + CommonResult<ScheduleSuggestDTO> listScheduleSuggest(@RequestParam Map<String, Object> params); + +} \ 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/AlarmMessageDTO.java b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/AlarmMessageDTO.java new file mode 100644 index 0000000..e4be30f --- /dev/null +++ b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/AlarmMessageDTO.java @@ -0,0 +1,60 @@ +package com.iailab.module.model.api.mcs.dto; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年08月29日 + */ + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年08月29日 + */ +@Schema(description = "RPC 模型 - 预警消息 DTO") +@Data +public class AlarmMessageDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @Schema(description = "ID") + private String id; + + @Schema(description = "消息标题") + private String title; + + @Schema(description = "消息内容") + private String content; + + @Schema(description = "监控对象") + private String alarmObj; + + @Schema(description = "监控点位ID") + private String pointId; + + @Schema(description = "预测项ID") + private String itemId; + + @Schema(description = "当前值") + private BigDecimal currentValue; + + @Schema(description = "超出时间") + private Date outTime; + + @Schema(description = "超出值") + private BigDecimal outValue; + + @Schema(description = "预警类型") + private String alarmType; + + @Schema(description = "预警时间") + private Date alarmTime; + +} \ 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/PreDataViewReqDTO.java b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/PreDataViewReqDTO.java new file mode 100644 index 0000000..3ae56b2 --- /dev/null +++ b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/PreDataViewReqDTO.java @@ -0,0 +1,25 @@ +package com.iailab.module.model.api.mcs.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.Date; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年08月26日 + */ +@Schema(description = "RPC 模型 - 预测数据 DTO") +@Data +public class PreDataViewReqDTO { + + @Schema(description = "预测项ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private String itemId; + + private String startTime; + + private String endTime; + + private Date predictTime; +} \ 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/PreDataViewRespDTO.java b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/PreDataViewRespDTO.java new file mode 100644 index 0000000..add373f --- /dev/null +++ b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/PreDataViewRespDTO.java @@ -0,0 +1,94 @@ +package com.iailab.module.model.api.mcs.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年08月26日 + */ +@Schema(description = "RPC 模型 - 预测数据 DTO") +@Data +public class PreDataViewRespDTO { + + @Schema(description = "预测项ID") + private String itemId; + + @Schema(description = "预测项名称") + private String itemName; + + @Schema(description = "预测时间") + private Date predictTime; + + @Schema(description = "量程上限") + private BigDecimal rangeH; + + @Schema(description = "量程下限") + private BigDecimal rangeL; + + @Schema(description = "柜位上限") + private BigDecimal deadLineH; + + @Schema(description = "柜位下限") + private BigDecimal deadLineL; + + @Schema(description = "运行上限") + private BigDecimal limtH; + + @Schema(description = "运行下限") + private BigDecimal limtL; + + @Schema(description = "最大值") + private BigDecimal maxValue; + + @Schema(description = "最小值") + private BigDecimal minValue; + + @Schema(description = "历史最大值") + private BigDecimal hisMax; + + @Schema(description = "历史最小值") + private BigDecimal hisMin; + + @Schema(description = "历史平均值") + private BigDecimal hisAvg; + + @Schema(description = "历史最大值") + private BigDecimal hisCumulant; + + @Schema(description = "预测最大值") + private BigDecimal preMax; + + @Schema(description = "预测最小值") + private BigDecimal preMin; + + @Schema(description = "预测平均值") + private BigDecimal preAvg; + + @Schema(description = "预测累计值") + private BigDecimal preCumulant; + + @Schema(description = "属性") + private Map<String, Object> prop; + + @Schema(description = "真实值") + private List<Object[]> realData; + + @Schema(description = "T+N预测值,N表示预测频率") + private List<Object[]> preDataN; + + @Schema(description = "T+L预测值,L表示预测长度") + private List<Object[]> preDataL; + + @Schema(description = "当时预测值") + private List<Object[]> curData; + + @Schema(description = "调整值") + private List<Object[]> adjData; +} \ 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/PredictItemInfoDTO.java b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/PredictItemInfoDTO.java new file mode 100644 index 0000000..3e5f060 --- /dev/null +++ b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/PredictItemInfoDTO.java @@ -0,0 +1,27 @@ +package com.iailab.module.model.api.mcs.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年07月31日 + */ +@Data +public class PredictItemInfoDTO implements Serializable { + private static final long serialVersionUID = 1L; + + private String itemId; + + private String itemNo; + + private String itemName; + + private BigDecimal predictLength; +} \ 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/PredictItemTreeDTO.java b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/PredictItemTreeDTO.java new file mode 100644 index 0000000..eee163a --- /dev/null +++ b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/PredictItemTreeDTO.java @@ -0,0 +1,22 @@ +package com.iailab.module.model.api.mcs.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年07月31日 + */ +@Data +public class PredictItemTreeDTO implements Serializable { + private static final long serialVersionUID = 1L; + + private String id; + + private String label; + + private List<PredictItemTreeDTO> children; +} \ 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/ScheduleSuggestDTO.java b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/ScheduleSuggestDTO.java new file mode 100644 index 0000000..9151fae --- /dev/null +++ b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/ScheduleSuggestDTO.java @@ -0,0 +1,74 @@ +package com.iailab.module.model.api.mcs.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年08月29日 + */ +@Schema(description = "RPC 模型 - 调度建议 DTO") +@Data +public class ScheduleSuggestDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @Schema(description = "ID") + private String id; + + @Schema(description = "标题") + private String title; + + @Schema(description = "内容") + private String content; + + @Schema(description = "排序") + private Integer sort; + + @Schema(description = "预警ID") + private String alarmId; + + @Schema(description = "预测项ID") + private String itemId; + + @Schema(description = "模型ID") + private String modelId; + + @Schema(description = "调整对象") + private String adjustObj; + + @Schema(description = "调整介质") + private String adjustMedium; + + @Schema(description = "调整策略") + private String adjustStrategy; + + @Schema(description = "调整方式") + private String adjustMode; + + @Schema(description = "调整值") + private BigDecimal adjustValue; + + @Schema(description = "调整单位") + private String adjustUnit; + + @Schema(description = "持续时长") + private BigDecimal adjustTimes; + + @Schema(description = "调整开始时间") + private Date adjustStart; + + @Schema(description = "调整结束时间") + private Date adjustEnd; + + @Schema(description = "建议时间") + private Date suggestTime; + + @Schema(description = "状态(0未处理 1已采纳 2已忽略)") + 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/mdk/MdkApi.java b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mdk/MdkApi.java new file mode 100644 index 0000000..d098d94 --- /dev/null +++ b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mdk/MdkApi.java @@ -0,0 +1,41 @@ +package com.iailab.module.model.api.mdk; + +import com.iailab.module.model.api.mdk.dto.*; +import com.iailab.module.model.enums.ApiConstants; +import com.iailab.framework.common.pojo.CommonResult; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestBody; + +import javax.validation.Valid; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年08月26日 + */ +@FeignClient(name = ApiConstants.NAME) +@Tag(name = "RPC 服务 - MDK") +public interface MdkApi { + + String PREFIX = ApiConstants.PREFIX + "/mdk"; + + @GetMapping(PREFIX + "/predict-module") + @Operation(summary = "模块预测") + CommonResult<MdkPredictModuleRespDTO> predictModule(@Valid @RequestBody MdkPredictReqDTO reqDTO); + + @GetMapping(PREFIX + "/predict-item") + @Operation(summary = "单独预测") + CommonResult<MdkPredictItemRespDTO> predictItem(@Valid @RequestBody MdkPredictReqDTO reqDTO); + + @GetMapping(PREFIX + "/predict-auto-adjust") + @Operation(summary = "预测自动调整") + CommonResult<Boolean> predictAutoAdjust(@Valid @RequestBody MdkPredictReqDTO reqDTO); + + + @GetMapping(PREFIX + "/schedule") + @Operation(summary = "执行调度") + CommonResult<MdkScheduleRespDTO> doSchedule(@Valid @RequestBody MdkScheduleReqDTO reqDTO); +} diff --git a/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mdk/dto/MdkPredictDataDTO.java b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mdk/dto/MdkPredictDataDTO.java new file mode 100644 index 0000000..2391f63 --- /dev/null +++ b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mdk/dto/MdkPredictDataDTO.java @@ -0,0 +1,20 @@ +package com.iailab.module.model.api.mdk.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.Date; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年08月26日 + */ +@Schema(description = "RPC 模型 - 预测数据 DTO") +@Data +public class MdkPredictDataDTO { + + private Date dataTime; + + private Double dataValue; +} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mdk/dto/MdkPredictItemRespDTO.java b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mdk/dto/MdkPredictItemRespDTO.java new file mode 100644 index 0000000..d67c117 --- /dev/null +++ b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mdk/dto/MdkPredictItemRespDTO.java @@ -0,0 +1,23 @@ +package com.iailab.module.model.api.mdk.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.Date; +import java.util.List; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年08月26日 + */ +@Schema(description = "RPC 模型 - 调度 DTO") +@Data +public class MdkPredictItemRespDTO { + + private String itemId; + + private Date predictTime; + + private List<MdkPredictDataDTO> predictData; +} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mdk/dto/MdkPredictModuleRespDTO.java b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mdk/dto/MdkPredictModuleRespDTO.java new file mode 100644 index 0000000..987fb79 --- /dev/null +++ b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mdk/dto/MdkPredictModuleRespDTO.java @@ -0,0 +1,23 @@ +package com.iailab.module.model.api.mdk.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.Date; +import java.util.Map; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年08月26日 + */ +@Schema(description = "RPC 模型 - 调度 DTO") +@Data +public class MdkPredictModuleRespDTO { + + private Date predictTime; + + private String moduleType; + + private Map<String, MdkPredictItemRespDTO> predictItemRespMap; +} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mdk/dto/MdkPredictReqDTO.java b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mdk/dto/MdkPredictReqDTO.java new file mode 100644 index 0000000..0cef75c --- /dev/null +++ b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mdk/dto/MdkPredictReqDTO.java @@ -0,0 +1,22 @@ +package com.iailab.module.model.api.mdk.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.Date; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年08月26日 + */ +@Schema(description = "RPC 模型 - 预测 DTO") +@Data +public class MdkPredictReqDTO { + + private Date predictTime; + + private String moduleType; + + private String itemNo; +} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mdk/dto/MdkScheduleReqDTO.java b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mdk/dto/MdkScheduleReqDTO.java new file mode 100644 index 0000000..f4bb80e --- /dev/null +++ b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mdk/dto/MdkScheduleReqDTO.java @@ -0,0 +1,20 @@ +package com.iailab.module.model.api.mdk.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.Date; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年08月26日 + */ +@Schema(description = "RPC 模型 - 调度 DTO") +@Data +public class MdkScheduleReqDTO { + + private Date scheduleTime; + + private String modelCode; +} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mdk/dto/MdkScheduleRespDTO.java b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mdk/dto/MdkScheduleRespDTO.java new file mode 100644 index 0000000..40e1861 --- /dev/null +++ b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mdk/dto/MdkScheduleRespDTO.java @@ -0,0 +1,14 @@ +package com.iailab.module.model.api.mdk.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年08月26日 + */ +@Schema(description = "RPC 模型 - 调度 DTO") +@Data +public class MdkScheduleRespDTO { +} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/enums/ApiConstants.java b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/enums/ApiConstants.java new file mode 100644 index 0000000..8d1ef28 --- /dev/null +++ b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/enums/ApiConstants.java @@ -0,0 +1,21 @@ +package com.iailab.module.model.enums; + +import com.iailab.framework.common.enums.RpcConstants; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年08月26日 + */ +public class ApiConstants { + /** + * 服务名 + * + * 注意,需要保证和 spring.application.name 保持一致 + */ + public static final String NAME = "model-server"; + + public static final String PREFIX = RpcConstants.RPC_API_PREFIX + "/model"; + + public static final String VERSION = "1.0.0"; +} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/db/mysql.sql b/iailab-module-model/iailab-module-model-biz/db/mysql.sql index 2b3e68e..4bab7e5 100644 --- a/iailab-module-model/iailab-module-model-biz/db/mysql.sql +++ b/iailab-module-model/iailab-module-model-biz/db/mysql.sql @@ -437,22 +437,47 @@ ) engine = innodb default character set utf8mb4; -create table - t_mm_predict_alarm_message +create table t_mm_predict_alarm_config ( - id varchar(64) not null, - item_id varchar(64), - title varchar(64), - content varchar(128), - predict_time datetime, - out_time datetime, - create_time datetime default current_timestamp, - type varchar(64), + id varchar(36) not null, + title varchar(36) COMMENT '消息标题', + alarm_obj varchar(36) COMMENT '监控对象', + item_id varchar(36) COMMENT '预测项ID', + comp_length int COMMENT '比较长度', + upper_limit decimal(10, 4) COMMENT '上限', + lower_limit decimal(10, 4) COMMENT '下限', + unit varchar(10) COMMENT '单位', + coefficient decimal(10, 4) COMMENT '转换系数', + model_id varchar(36) COMMENT '调度建议模型', + is_enable tinyint NOT NULL COMMENT '是否启用(0禁用 1启用)', + `creator` varchar(64) NOT NULL DEFAULT '' COMMENT '创建者', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updater` varchar(64) DEFAULT '' COMMENT '更新者', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + primary key (id) +) engine = innodb + default character set utf8mb4 COMMENT = '预警配置表'; + +create table t_mm_predict_alarm_message +( + id varchar(36) not null, + title varchar(36) COMMENT '消息标题', + content varchar(128) COMMENT '消息内容', + alarm_obj varchar(36) COMMENT '监控对象', + point_id varchar(36) COMMENT '监控点位ID', + item_id varchar(36) COMMENT '预测项ID', + current_value decimal(18, 4) COMMENT '当前值', + out_time datetime COMMENT '超出时间', + out_value decimal(18, 4) COMMENT '超出值', + alarm_type varchar(10) COMMENT '预警类型', + alarm_time datetime COMMENT '预警时间', + create_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', primary key (id), key idx_item_id (item_id), - key idx_type (type) + key idx_alarm_obj (alarm_obj), + key idx_alarm_time (alarm_time) ) engine = innodb - default character set utf8mb4; + default character set utf8mb4 COMMENT = '预警消息表'; create table t_mm_item_result_json @@ -502,17 +527,27 @@ create table t_st_schedule_suggest ( - id varchar(64) not null, - title varchar(128), - content varchar(256), - order_index integer, - type varchar(64), - item_id varchar(64), - is_adjusted integer, - model_id varchar(64), - create_time datetime default current_timestamp, + id varchar(36) not null, + title varchar(50) COMMENT '标题', + content varchar(256) COMMENT '内容', + sort integer COMMENT '排序', + alarm_id varchar(36) COMMENT '预警ID', + item_id varchar(36) COMMENT '预测项ID', + model_id varchar(36) COMMENT '模型ID', + adjust_obj varchar(20) COMMENT '调整对象', + adjust_medium varchar(20) COMMENT '调整介质', + adjust_strategy varchar(20) COMMENT '调整策略', + adjust_mode varchar(20) COMMENT '调整方式', + adjust_value decimal(18, 4) COMMENT '调整值', + adjust_unit varchar(20) COMMENT '调整单位', + adjust_times decimal(18, 4) COMMENT '持续时长', + adjust_start datetime COMMENT '调整开始时间', + adjust_end datetime COMMENT '调整结束时间', + suggest_time datetime COMMENT '建议时间', + status tinyint NOT NULL COMMENT '状态(0未处理 1已采纳 2已忽略)', + create_time datetime default current_timestamp COMMENT '创建时间', primary key (id), key idx_model_id (model_id), key idx_type (type) ) engine = innodb - default character set utf8mb4; \ No newline at end of file + default character set utf8mb4 COMMENT = '调度建议表'; \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/pom.xml b/iailab-module-model/iailab-module-model-biz/pom.xml index 5627af3..5271e15 100644 --- a/iailab-module-model/iailab-module-model-biz/pom.xml +++ b/iailab-module-model/iailab-module-model-biz/pom.xml @@ -15,6 +15,7 @@ <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <mdk.version>MDK.taisteel.202308231710</mdk.version> </properties> <dependencies> @@ -94,37 +95,6 @@ <version>2.3.2</version> </dependency> -<!-- <dependency>--> -<!-- <groupId>org.quartz-scheduler</groupId>--> -<!-- <artifactId>quartz</artifactId>--> -<!-- <version>${quartz.version}</version>--> -<!-- <exclusions>--> -<!-- <exclusion>--> -<!-- <groupId>com.mchange</groupId>--> -<!-- <artifactId>c3p0</artifactId>--> -<!-- </exclusion>--> -<!-- <exclusion>--> -<!-- <groupId>com.zaxxer</groupId>--> -<!-- <artifactId>HikariCP-java6</artifactId>--> -<!-- </exclusion>--> -<!-- </exclusions>--> -<!-- </dependency>--> -<!-- <dependency>--> -<!-- <groupId>cn.afterturn</groupId>--> -<!-- <artifactId>easypoi-base</artifactId>--> -<!-- <version>${easypoi.version}</version>--> -<!-- </dependency>--> -<!-- <dependency>--> -<!-- <groupId>cn.afterturn</groupId>--> -<!-- <artifactId>easypoi-web</artifactId>--> -<!-- <version>${easypoi.version}</version>--> -<!-- </dependency>--> -<!-- <dependency>--> -<!-- <groupId>cn.afterturn</groupId>--> -<!-- <artifactId>easypoi-annotation</artifactId>--> -<!-- <version>${easypoi.version}</version>--> -<!-- </dependency>--> - <!-- 引用POI --> <dependency> <groupId>org.apache.poi</groupId> @@ -139,46 +109,6 @@ <scope>compile</scope> </dependency> - <!-- ModBus TCP --> - <dependency> - <groupId>com.infiniteautomation</groupId> - <artifactId>modbus4j</artifactId> - <version>3.0.4</version> - </dependency> - - <!-- OPC UA --> - <dependency> - <groupId>org.eclipse.milo</groupId> - <artifactId>sdk-client</artifactId> - <version>0.6.9</version> - </dependency> - <dependency> - <groupId>org.eclipse.milo</groupId> - <artifactId>sdk-server</artifactId> - <version>0.6.9</version> - </dependency> - <dependency> - <groupId>com.google.guava</groupId> - <artifactId>guava</artifactId> - <version>31.0.1-jre</version> - </dependency> - <dependency> - <groupId>org.quartz-scheduler</groupId> - <artifactId>quartz</artifactId> - <version>2.3.2</version> - </dependency> - <!-- influxdb --> - <dependency> - <groupId>com.influxdb</groupId> - <artifactId>influxdb-client-java</artifactId> - <version>6.8.0</version> - </dependency> - - <!-- websocket --> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-websocket</artifactId> - </dependency> <dependency> <groupId>com.iailab</groupId> <artifactId>iailab-module-data-biz</artifactId> @@ -192,6 +122,24 @@ <scope>test</scope> </dependency> + <!-- 引用MDK --> + <dependency> + <groupId>com.iail</groupId> + <artifactId>IAILMDK</artifactId> + <version>0.94.9</version> + </dependency> + <dependency> + <groupId>com.iail</groupId> + <artifactId>MDK</artifactId> + <version>${mdk.version}</version> + </dependency> + <dependency> + <groupId>com.iail</groupId> + <artifactId>IAILMDK</artifactId> + <version>0.94.9</version> + </dependency> + + </dependencies> <build> diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/ModelServiceApplication.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/ModelServiceApplication.java index 18ac48e..2dc1c60 100644 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/ModelServiceApplication.java +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/ModelServiceApplication.java @@ -3,10 +3,31 @@ import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import com.iail.IAILMDK; +import org.springframework.scheduling.annotation.EnableAsync; +import java.io.InputStream; +import java.util.Properties; + +@EnableAsync @SpringBootApplication public class ModelServiceApplication implements CommandLineRunner { + static { + //加载动态链接库 + try { + Properties properties = new Properties(); + InputStream in = ModelServiceApplication.class.getClassLoader().getResourceAsStream("iailmdk.properties"); + properties.load(in); + String mdkInitPath = properties.getProperty("mdk-init-path"); + System.out.println("mdkInitPath=" + mdkInitPath); + IAILMDK.initWithBean(mdkInitPath, false); + } catch (Exception e) { + e.printStackTrace(); + System.out.println("动态链接库IAILMDK初始化失败"); + } + } + public static void main(String[] args) { SpringApplication.run(ModelServiceApplication.class, args); diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/annotation/DataFilter.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/annotation/DataFilter.java deleted file mode 100644 index 3634883..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/annotation/DataFilter.java +++ /dev/null @@ -1,37 +0,0 @@ -/** - * Copyright (c) 2018 人人开源 All rights reserved. - * - * https://www.renren.io - * - * 版权所有,侵权必究! - */ - -package com.iailab.common.annotation; - -import java.lang.annotation.*; - -/** - * 数据过滤注解 - * - * @author Mark sunlightcs@gmail.com - */ -@Target(ElementType.METHOD) -@Retention(RetentionPolicy.RUNTIME) -@Documented -public @interface DataFilter { - /** - * 表的别名 - */ - String tableAlias() default ""; - - /** - * 用户ID - */ - String userId() default "creator"; - - /** - * 部门ID - */ - String deptId() default "dept_id"; - -} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/annotation/LogOperation.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/annotation/LogOperation.java deleted file mode 100644 index 13d06d8..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/annotation/LogOperation.java +++ /dev/null @@ -1,24 +0,0 @@ -/** - * Copyright (c) 2018 人人开源 All rights reserved. - * - * https://www.renren.io - * - * 版权所有,侵权必究! - */ - -package com.iailab.common.annotation; - -import java.lang.annotation.*; - -/** - * 操作日志注解 - * - * @author Mark sunlightcs@gmail.com - */ -@Target(ElementType.METHOD) -@Retention(RetentionPolicy.RUNTIME) -@Documented -public @interface LogOperation { - - String value() default ""; -} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/config/MybatisPlusConfig.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/config/MybatisPlusConfig.java deleted file mode 100644 index 8a07c72..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/config/MybatisPlusConfig.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.iailab.common.config; - -import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; -import com.baomidou.mybatisplus.extension.plugins.inner.BlockAttackInnerInterceptor; -import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor; -import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; -import com.iailab.framework.mybatis.interceptor.DataFilterInterceptor; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -/** - * mybatis-plus配置 - * - * @author Mark sunlightcs@gmail.com - * @since 1.0.0 - */ -@Configuration -public class MybatisPlusConfig { - - @Bean - public MybatisPlusInterceptor mybatisPlusInterceptor() { - MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor(); - // 数据权限 - mybatisPlusInterceptor.addInnerInterceptor(new DataFilterInterceptor()); - // 分页插件 - mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor()); - // 乐观锁 - mybatisPlusInterceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor()); - // 防止全表更新与删除 - mybatisPlusInterceptor.addInnerInterceptor(new BlockAttackInnerInterceptor()); - - return mybatisPlusInterceptor; - } - -} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/enums/CommonConstant.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/enums/CommonConstant.java deleted file mode 100644 index bab24ad..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/enums/CommonConstant.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.iailab.common.enums; - - -/** - * @Description: 通用常量 - */ -public interface CommonConstant { - -} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/enums/HttpMethodEnum.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/enums/HttpMethodEnum.java deleted file mode 100644 index 5191e0c..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/enums/HttpMethodEnum.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.iailab.common.enums; - -/** - * @author PanZhibao - * @Description - * @createTime 2023年07月28日 11:28:00 - */ -public enum HttpMethodEnum { - GET("GET"), - POST("POST"); - - private String value; - - HttpMethodEnum(String value) { - this.value = value; - } - - public String value() { - return this.value; - } -} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/enums/IsEnableEnum.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/enums/IsEnableEnum.java deleted file mode 100644 index 2a8f5fe..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/enums/IsEnableEnum.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.iailab.common.enums; - -/** - * @author PanZhibao - * @Description - * @createTime 2023年07月17日 17:41:00 - */ -public enum IsEnableEnum { - DISABLE(0), // 手动 - ENABLE(1); //自动 - - private Integer value; - - IsEnableEnum(Integer value) { - this.value = value; - } - - public Integer value() { - return this.value; - } -} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/enums/ModelTypeEnum.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/enums/ModelTypeEnum.java deleted file mode 100644 index cb92880..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/enums/ModelTypeEnum.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.iailab.common.enums; - -/** - * @author PanZhibao - * @Description - * @createTime 2023年07月20日 08:47:00 - */ -public enum ModelTypeEnum { - Python("Python"), - MATLAB("MATLAB"); - - private String value; - - ModelTypeEnum(String value) { - this.value = value; - } - - public String value() { - return this.value; - } -} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/exception/RRException.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/exception/RRException.java deleted file mode 100644 index 64788a7..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/exception/RRException.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.iailab.common.exception; - -/** - * 自定义异常 - * - * @author Mark sunlightcs@gmail.com - */ -public class RRException extends RuntimeException { - private static final long serialVersionUID = 1L; - - private String msg; - private int code = 500; - - public RRException(String msg) { - super(msg); - this.msg = msg; - } - - public RRException(String msg, Throwable e) { - super(msg, e); - this.msg = msg; - } - - public RRException(String msg, int code) { - super(msg); - this.msg = msg; - this.code = code; - } - - public RRException(String msg, int code, Throwable e) { - super(msg, e); - this.msg = msg; - this.code = code; - } - - public String getMsg() { - return msg; - } - - public void setMsg(String msg) { - this.msg = msg; - } - - public int getCode() { - return code; - } - - public void setCode(int code) { - this.code = code; - } - - -} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/interceptor/DataFilterInterceptor.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/interceptor/DataFilterInterceptor.java deleted file mode 100644 index 73fc509..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/interceptor/DataFilterInterceptor.java +++ /dev/null @@ -1,89 +0,0 @@ -///** -// * Copyright (c) 2018 人人开源 All rights reserved. -// * -// * https://www.renren.io -// * -// * 版权所有,侵权必究! -// */ -// -//package com.iailab.common.interceptor; -// -//import cn.hutool.core.util.StrUtil; -//import com.baomidou.mybatisplus.core.toolkit.PluginUtils; -//import com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor; -//import net.sf.jsqlparser.JSQLParserException; -//import net.sf.jsqlparser.expression.Expression; -//import net.sf.jsqlparser.expression.StringValue; -//import net.sf.jsqlparser.expression.operators.conditional.AndExpression; -//import net.sf.jsqlparser.parser.CCJSqlParserUtil; -//import net.sf.jsqlparser.statement.select.PlainSelect; -//import net.sf.jsqlparser.statement.select.Select; -//import org.apache.ibatis.executor.Executor; -//import org.apache.ibatis.mapping.BoundSql; -//import org.apache.ibatis.mapping.MappedStatement; -//import org.apache.ibatis.session.ResultHandler; -//import org.apache.ibatis.session.RowBounds; -// -//import java.util.Map; -// -///** -// * 数据过滤 -// * -// * @author Mark sunlightcs@gmail.com -// */ -//public class DataFilterInterceptor implements InnerInterceptor { -// -// @Override -// public void beforeQuery(Executor executor, MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql) { -// DataScope scope = getDataScope(parameter); -// // 不进行数据过滤 -// if(scope == null || StrUtil.isBlank(scope.getSqlFilter())){ -// return; -// } -// -// // 拼接新SQL -// String buildSql = getSelect(boundSql.getSql(), scope); -// -// // 重写SQL -// PluginUtils.mpBoundSql(boundSql).sql(buildSql); -// } -// -// private DataScope getDataScope(Object parameter){ -// if (parameter == null){ -// return null; -// } -// -// // 判断参数里是否有DataScope对象 -// if (parameter instanceof Map) { -// Map<?, ?> parameterMap = (Map<?, ?>) parameter; -// for (Map.Entry entry : parameterMap.entrySet()) { -// if (entry.getValue() != null && entry.getValue() instanceof DataScope) { -// return (DataScope) entry.getValue(); -// } -// } -// } else if (parameter instanceof DataScope) { -// return (DataScope) parameter; -// } -// -// return null; -// } -// -// private String getSelect(String buildSql, DataScope scope){ -// try { -// Select select = (Select) CCJSqlParserUtil.parse(buildSql); -// PlainSelect plainSelect = (PlainSelect) select.getSelectBody(); -// -// Expression expression = plainSelect.getWhere(); -// if(expression == null){ -// plainSelect.setWhere(new StringValue(scope.getSqlFilter())); -// }else{ -// AndExpression andExpression = new AndExpression(expression, new StringValue(scope.getSqlFilter())); -// plainSelect.setWhere(andExpression); -// } -// -// return select.toString().replaceAll("'", ""); -// }catch (JSQLParserException e){ -// return buildSql; -// } -// } -//} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/interceptor/DataScope.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/interceptor/DataScope.java deleted file mode 100644 index a2e5b49..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/interceptor/DataScope.java +++ /dev/null @@ -1,36 +0,0 @@ -///** -// * Copyright (c) 2018 人人开源 All rights reserved. -// * -// * https://www.renren.io -// * -// * 版权所有,侵权必究! -// */ -// -//package com.iailab.common.interceptor; -// -///** -// * 数据范围 -// * -// * @author Mark sunlightcs@gmail.com -// * @since 1.0.0 -// */ -//public class DataScope { -// private String sqlFilter; -// -// public DataScope(String sqlFilter) { -// this.sqlFilter = sqlFilter; -// } -// -// public String getSqlFilter() { -// return sqlFilter; -// } -// -// public void setSqlFilter(String sqlFilter) { -// this.sqlFilter = sqlFilter; -// } -// -// @Override -// public String toString() { -// return this.sqlFilter; -// } -//} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/utils/CommonUtils.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/utils/CommonUtils.java deleted file mode 100644 index 556f90e..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/utils/CommonUtils.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.iailab.common.utils; - -import java.math.BigDecimal; -import java.text.SimpleDateFormat; -import java.util.Date; - -public class CommonUtils { - /** - *<p>获取当前日期<p> - *<p>格式yyyyMMdd<p> - */ - public static String getCurrDate(){ - Date date=new Date(); - SimpleDateFormat df1 = new SimpleDateFormat("yyyyMMdd"); - String tDate = df1.format(date); - return tDate; - } - - /** - *<p>获取当前时间<p> - *<p>格式yyyyMMddHHmmss<p> - */ - public static String getCurrDate2(){ - Date date=new Date(); - SimpleDateFormat df1 = new SimpleDateFormat("yyyyMMddHHmmss"); - String tDate = df1.format(date); - return tDate; - } - - /** - *<p>获取当前时间<p> - *<p>格式yyyy-MM-dd HH:mm:ss<p> - */ - public static String getCurrDate3(){ - Date date=new Date(); - SimpleDateFormat df1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - String tDate = df1.format(date); - return tDate; - } - - /** - * 由年月日时分秒+3位随机数 - * 生成流水号 - * @return - */ - public static Long Getnum(){ - String t = getCurrDate2(); - int x=(int)(Math.random()*900)+100; - String serial = t + x; - Long num = new Long(serial); - return num; - } - - public static BigDecimal getJSONValue(Object obj) { - if (obj == null) { - return null; - } - return new BigDecimal(obj.toString()); - } - -} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/utils/Constant.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/utils/Constant.java deleted file mode 100644 index 03d628e..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/utils/Constant.java +++ /dev/null @@ -1,119 +0,0 @@ -package com.iailab.common.utils; - -/** - * 常量 - * - * @author Mark sunlightcs@gmail.com - */ -public class Constant { - /** 超级管理员ID */ - public static final String SUPER_ADMIN = "1"; - /** - * 当前页码 - */ - public static final String PAGE = "page"; - /** - * 每页显示记录数 - */ - public static final String LIMIT = "limit"; - /** - * 排序字段 - */ - public static final String ORDER_FIELD = "sidx"; - /** - * 排序方式 - */ - public static final String ORDER = "order"; - /** - * 升序 - */ - public static final String ASC = "asc"; - /** - * 菜单类型 - * - * @author chenshun - * @email sunlightcs@gmail.com - * @date 2016年11月15日 下午1:24:29 - */ - public enum MenuType { - /** - * 目录 - */ - CATALOG(0), - /** - * 菜单 - */ - MENU(1), - /** - * 按钮 - */ - BUTTON(2); - - private int value; - - MenuType(int value) { - this.value = value; - } - - public int getValue() { - return value; - } - } - - /** - * 定时任务状态 - * - * @author chenshun - * @email sunlightcs@gmail.com - * @date 2016年12月3日 上午12:07:22 - */ - public enum ScheduleStatus { - /** - * 正常 - */ - NORMAL(0), - /** - * 暂停 - */ - PAUSE(1); - - private int value; - - ScheduleStatus(int value) { - this.value = value; - } - - public int getValue() { - return value; - } - } - - /** - * 云服务商 - */ - public enum CloudService { - /** - * 七牛云 - */ - QINIU(1), - /** - * 阿里云 - */ - ALIYUN(2), - /** - * 腾讯云 - */ - QCLOUD(3); - - private int value; - - CloudService(int value) { - this.value = value; - } - - public int getValue() { - return value; - } - } - -} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/utils/DateUtils.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/utils/DateUtils.java deleted file mode 100644 index ef64f0a..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/utils/DateUtils.java +++ /dev/null @@ -1,219 +0,0 @@ -package com.iailab.common.utils; - -import org.apache.commons.lang3.StringUtils; -import org.joda.time.DateTime; -import org.joda.time.LocalDate; -import org.joda.time.format.DateTimeFormat; -import org.joda.time.format.DateTimeFormatter; - -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.*; - -/** - * 日期处理 - * - * @author Mark sunlightcs@gmail.com - */ -public class DateUtils { - /** 时间格式(yyyy-MM-dd) */ - public final static String DATE_PATTERN = "yyyy-MM-dd"; - /** 时间格式(yyyy-MM-dd HH:mm:ss) */ - public final static String DATE_TIME_PATTERN = "yyyy-MM-dd HH:mm:ss"; - - public final static String DATE_TIME_PATTERN_MIN = "yyyy-MM-dd HH:mm"; - - public final static String TIME2_PATTERN = "mmss"; - - public final static String DATE_PATTERN_MON = "yyyy-MM"; - - public final static String DATE_PATTERN_YEAR = "yyyy-MM"; - - /** - * 日期格式化 日期格式为:yyyy-MM-dd - * @param date 日期 - * @return 返回yyyy-MM-dd格式日期 - */ - public static String format(Date date) { - return format(date, DATE_PATTERN); - } - - /** - * 日期格式化 日期格式为:yyyy-MM-dd - * @param date 日期 - * @param pattern 格式,如:DateUtils.DATE_TIME_PATTERN - * @return 返回yyyy-MM-dd格式日期 - */ - public static String format(Date date, String pattern) { - if (date != null) { - SimpleDateFormat df = new SimpleDateFormat(pattern); - return df.format(date); - } - return null; - } - - /** - * 日期解析 - * @param date 日期 - * @param pattern 格式,如:DateUtils.DATE_TIME_PATTERN - * @return 返回Date - */ - public static Date parse(String date, String pattern) { - try { - return new SimpleDateFormat(pattern).parse(date); - } catch (ParseException e) { - e.printStackTrace(); - } - return null; - } - - /** - * 字符串转换成日期 - * @param strDate 日期字符串 - * @param pattern 日期的格式,如:DateUtils.DATE_TIME_PATTERN - */ - public static Date stringToDate(String strDate, String pattern) { - if (StringUtils.isBlank(strDate)) { - return null; - } - - DateTimeFormatter fmt = DateTimeFormat.forPattern(pattern); - return fmt.parseLocalDateTime(strDate).toDate(); - } - - /** - * 根据周数,获取开始日期、结束日期 - * @param week 周期 0本周,-1上周,-2上上周,1下周,2下下周 - * @return 返回date[0]开始日期、date[1]结束日期 - */ - public static Date[] getWeekStartAndEnd(int week) { - DateTime dateTime = new DateTime(); - LocalDate date = new LocalDate(dateTime.plusWeeks(week)); - - date = date.dayOfWeek().withMinimumValue(); - Date beginDate = date.toDate(); - Date endDate = date.plusDays(6).toDate(); - return new Date[]{beginDate, endDate}; - } - - /** - * 对日期的【秒】进行加/减 - * - * @param date 日期 - * @param seconds 秒数,负数为减 - * @return 加/减几秒后的日期 - */ - public static Date addDateSeconds(Date date, int seconds) { - DateTime dateTime = new DateTime(date); - return dateTime.plusSeconds(seconds).toDate(); - } - - /** - * 对日期的【分钟】进行加/减 - * - * @param date 日期 - * @param minutes 分钟数,负数为减 - * @return 加/减几分钟后的日期 - */ - public static Date addDateMinutes(Date date, int minutes) { - DateTime dateTime = new DateTime(date); - return dateTime.plusMinutes(minutes).toDate(); - } - - /** - * 对日期的【小时】进行加/减 - * - * @param date 日期 - * @param hours 小时数,负数为减 - * @return 加/减几小时后的日期 - */ - public static Date addDateHours(Date date, int hours) { - DateTime dateTime = new DateTime(date); - return dateTime.plusHours(hours).toDate(); - } - - /** - * 对日期的【天】进行加/减 - * - * @param date 日期 - * @param days 天数,负数为减 - * @return 加/减几天后的日期 - */ - public static Date addDateDays(Date date, int days) { - DateTime dateTime = new DateTime(date); - return dateTime.plusDays(days).toDate(); - } - - /** - * 对日期的【周】进行加/减 - * - * @param date 日期 - * @param weeks 周数,负数为减 - * @return 加/减几周后的日期 - */ - public static Date addDateWeeks(Date date, int weeks) { - DateTime dateTime = new DateTime(date); - return dateTime.plusWeeks(weeks).toDate(); - } - - /** - * 对日期的【月】进行加/减 - * - * @param date 日期 - * @param months 月数,负数为减 - * @return 加/减几月后的日期 - */ - public static Date addDateMonths(Date date, int months) { - DateTime dateTime = new DateTime(date); - return dateTime.plusMonths(months).toDate(); - } - - /** - * 对日期的【年】进行加/减 - * - * @param date 日期 - * @param years 年数,负数为减 - * @return 加/减几年后的日期 - */ - public static Date addDateYears(Date date, int years) { - DateTime dateTime = new DateTime(date); - return dateTime.plusYears(years).toDate(); - } - - public static List<String> getDays(Date startDate, Date endDate) { - List<String> days = new ArrayList<String>(); - Calendar calendar = Calendar.getInstance(); - calendar.setTime(startDate); - - while (calendar.getTime().compareTo(endDate) < 0) { - days.add(DateUtils.format(calendar.getTime(), "yyyy-MM-dd")); - calendar.add(6, 1); - } - return days; - } - - public static List<String> getYearTime(Date startDate, Date endDate) { - List<String> days = new ArrayList<String>(); - Calendar calendar = Calendar.getInstance(); - calendar.setTime(startDate); - - while (calendar.getTime().compareTo(endDate) <= 0) { - days.add(DateUtils.format(calendar.getTime(), DATE_PATTERN_YEAR)); - calendar.add(Calendar.YEAR, 1); - } - return days; - } - - public static List<String> getMonTime(Date startDate, Date endDate) { - List<String> days = new ArrayList<String>(); - Calendar calendar = Calendar.getInstance(); - calendar.setTime(startDate); - - while (calendar.getTime().compareTo(endDate) <= 0) { - days.add(DateUtils.format(calendar.getTime(), DATE_PATTERN_MON)); - calendar.add(Calendar.MONTH, 1); - } - return days; - } - -} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/utils/ExcelUtil.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/utils/ExcelUtil.java deleted file mode 100644 index f3e73e7..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/utils/ExcelUtil.java +++ /dev/null @@ -1,140 +0,0 @@ -package com.iailab.common.utils; - -import org.apache.poi.hssf.usermodel.*; -import org.apache.poi.ss.usermodel.HorizontalAlignment; -import org.apache.poi.ss.usermodel.VerticalAlignment; -import org.apache.poi.ss.util.CellRangeAddress; - -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.io.OutputStream; -import java.lang.reflect.Field; -import java.util.List; -import java.util.logging.Level; -import java.util.logging.Logger; - -/** - * Excel 导出通用工具类 - * - * @author PanZhibao - * @date 2021年06月29日 9:06 - */ -public class ExcelUtil { - - /** - * 导出PointValueExcel - * - * @param sheetTitle - * @param title - * @param list - * @param response - * @return - */ - public static byte[] exportPointValue(String sheetTitle, String[] title, List<Object> list, HttpServletResponse response) { - - HSSFWorkbook wb = new HSSFWorkbook();//创建excel表 - HSSFSheet sheet = wb.createSheet(sheetTitle); - sheet.setDefaultColumnWidth(20);//设置默认行宽 - - //表头样式(加粗,水平居中,垂直居中) - HSSFCellStyle cellStyle = wb.createCellStyle(); - cellStyle.setAlignment(HorizontalAlignment.CENTER);//水平居中 - cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);//垂直居中 - - HSSFFont fontStyle = wb.createFont(); - - cellStyle.setFont(fontStyle); - - //标题样式(加粗,垂直居中) - HSSFCellStyle cellStyle2 = wb.createCellStyle(); - cellStyle2.setVerticalAlignment(VerticalAlignment.CENTER);//垂直居中 - cellStyle2.setFont(fontStyle); - - //字段样式(垂直居中) - HSSFCellStyle cellStyle3 = wb.createCellStyle(); - cellStyle3.setVerticalAlignment(VerticalAlignment.CENTER);//垂直居中 - - //数字样式 - HSSFCellStyle cellStyle4 = wb.createCellStyle(); - HSSFDataFormat df = wb.createDataFormat(); // 此处设置数据格式 - cellStyle4.setVerticalAlignment(VerticalAlignment.CENTER);//垂直居中 - cellStyle4.setDataFormat(df.getFormat("#,##0.000000"));//设置数值类型格式为保留两位小数 - - //创建表头 - HSSFRow row = sheet.createRow(0); - //row.setHeightInPoints(20);//行高 - - HSSFCell cell = row.createCell(0); - cell.setCellValue(sheetTitle); - cell.setCellStyle(cellStyle); - - sheet.addMergedRegion(new CellRangeAddress(0,0,0,(title.length-1))); - - //创建标题 - HSSFRow rowTitle = sheet.createRow(1); - //rowTitle.setHeightInPoints(20); - - HSSFCell hc; - for (int i = 0; i < title.length; i++) { - hc = rowTitle.createCell(i); - hc.setCellValue(title[i]); - hc.setCellStyle(cellStyle2); - } - - byte result[] = null; - - try { - //创建表格数据 - Field[] fields; - int i = 2; - for (Object obj : list) { - fields = obj.getClass().getDeclaredFields(); - - HSSFRow rowBody = sheet.createRow(i); - //rowBody.setHeightInPoints(20); - - int j = 0; - for (Field f : fields) { - - f.setAccessible(true); - - Object va = f.get(obj); - if (null == va) { - va = ""; - } - - hc = rowBody.createCell(j); - - if (j == 0) { - hc.setCellValue(Double.parseDouble(va.toString())); - hc.setCellStyle(cellStyle4); - } else { - hc.setCellValue(va.toString()); - hc.setCellStyle(cellStyle3); - } - - - j++; - } - - i++; - } - - //设置Http响应头告诉浏览器下载这个附件 - response.setHeader("Content-Disposition", "attachment;Filename=" + System.currentTimeMillis() + ".xls"); - OutputStream outputStream = response.getOutputStream(); - wb.write(outputStream); - outputStream.close(); - return wb.getBytes(); - } catch (Exception ex) { - Logger.getLogger(ExcelUtil.class.getName()).log(Level.SEVERE, null, ex); - return result; - } finally{ - try { - wb.close(); - } catch (IOException ex) { - Logger.getLogger(ExcelUtil.class.getName()).log(Level.SEVERE, null, ex); - } - } - } -} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/utils/ExcelUtils.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/utils/ExcelUtils.java deleted file mode 100644 index e097b51..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/utils/ExcelUtils.java +++ /dev/null @@ -1,77 +0,0 @@ -///** -// * Copyright (c) 2018 人人开源 All rights reserved. -// * -// * https://www.renren.io -// * -// * 版权所有,侵权必究! -// */ -// -//package com.iailab.common.utils; -// -//import cn.afterturn.easypoi.excel.ExcelExportUtil; -//import cn.afterturn.easypoi.excel.entity.ExportParams; -//import org.apache.commons.lang3.StringUtils; -//import org.apache.poi.ss.usermodel.Workbook; -//import org.springframework.beans.BeanUtils; -// -//import javax.servlet.ServletOutputStream; -//import javax.servlet.http.HttpServletResponse; -//import java.io.IOException; -//import java.net.URLEncoder; -//import java.util.ArrayList; -//import java.util.Collection; -//import java.util.Date; -//import java.util.List; -// -///** -// * excel工具类 -// * -// * @author Mark sunlightcs@gmail.com -// */ -//public class ExcelUtils { -// -// /** -// * Excel导出 -// * -// * @param response response -// * @param fileName 文件名 -// * @param list 数据List -// * @param pojoClass 对象Class -// */ -// public static void exportExcel(HttpServletResponse response, String fileName, Collection<?> list, -// Class<?> pojoClass) throws IOException { -// if(StringUtils.isBlank(fileName)){ -// //当前日期 -// fileName = DateUtils.format(new Date()); -// } -// -// Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), pojoClass, list); -// response.setCharacterEncoding("UTF-8"); -// response.setHeader("content-Type", "application/vnd.ms-excel"); -// response.setHeader("Content-Disposition", -// "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8") + ".xls"); -// ServletOutputStream out = response.getOutputStream(); -// workbook.write(out); -// out.flush(); -// } -// -// /** -// * Excel导出,先sourceList转换成List<targetClass>,再导出 -// * -// * @param response response -// * @param fileName 文件名 -// * @param sourceList 原数据List -// * @param targetClass 目标对象Class -// */ -// public static void exportExcelToTarget(HttpServletResponse response, String fileName, Collection<?> sourceList, -// Class<?> targetClass) throws Exception { -// List targetList = new ArrayList<>(sourceList.size()); -// for(Object source : sourceList){ -// Object target = targetClass.newInstance(); -// BeanUtils.copyProperties(source, target); -// targetList.add(target); -// } -// -// exportExcel(response, fileName, targetList, targetClass); -// } -//} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/utils/HttpRequest.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/utils/HttpRequest.java deleted file mode 100644 index 69f46bf..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/utils/HttpRequest.java +++ /dev/null @@ -1,122 +0,0 @@ -package com.iailab.common.utils; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.PrintWriter; -import java.net.URL; -import java.net.URLConnection; -import java.util.List; -import java.util.Map; - -/** - * @author PanZhibao - * @date 2021年06月03日 15:31 - */ -public class HttpRequest { - /** - * 向指定URL发送GET方法的请求 - * - * @param url 发送请求的URL - * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 - * @return URL 所代表远程资源的响应结果 - */ - public static String sendGet(String url, String param) { - String result = ""; - BufferedReader in = null; - try { - String urlNameString = url + "?" + param; - URL realUrl = new URL(urlNameString); - // 打开和URL之间的连接 - URLConnection connection = realUrl.openConnection(); - // 设置通用的请求属性 - connection.setRequestProperty("accept", "*/*"); - connection.setRequestProperty("connection", "Keep-Alive"); - connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); - - // 建立实际的连接 - connection.connect(); - // 获取所有响应头字段 - Map<String, List<String>> map = connection.getHeaderFields(); - // 遍历所有的响应头字段 - for (String key : map.keySet()) { - System.out.println(key + "--->" + map.get(key)); - } - // 定义 BufferedReader输入流来读取URL的响应 - in = new BufferedReader(new InputStreamReader(connection.getInputStream())); - String line; - while ((line = in.readLine()) != null) { - result += line; - } - } catch (Exception e) { - System.out.println("发送GET请求出现异常!" + e); - e.printStackTrace(); - } - // 使用finally块来关闭输入流 - finally { - try { - if (in != null) { - in.close(); - } - } catch (Exception e2) { - e2.printStackTrace(); - } - } - return result; - } - - /** - * 向指定 URL 发送POST方法的请求 - * - * @param url 发送请求的 URL - * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 - * @return 所代表远程资源的响应结果 - */ - public static String sendPost(String url, String param) { - PrintWriter out = null; - BufferedReader in = null; - String result = ""; - try { - URL realUrl = new URL(url); - // 打开和URL之间的连接 - URLConnection conn = realUrl.openConnection(); - // 设置通用的请求属性 - conn.setRequestProperty("accept", "*/*"); - conn.setRequestProperty("connection", "Keep-Alive"); - conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); - - // 发送POST请求必须设置如下两行 - conn.setDoOutput(true); - conn.setDoInput(true); - // 获取URLConnection对象对应的输出流 - out = new PrintWriter(conn.getOutputStream()); - // 发送请求参数 - out.print(param); - // flush输出流的缓冲 - out.flush(); - // 定义BufferedReader输入流来读取URL的响应 - in = new BufferedReader(new InputStreamReader(conn.getInputStream())); - String line; - while ((line = in.readLine()) != null) { - result += line; - } - } catch (Exception e) { - System.out.println("发送 POST 请求出现异常!" + e); - e.printStackTrace(); - } - //使用finally块来关闭输出流、输入流 - finally { - try { - if (out != null) { - out.close(); - } - if (in != null) { - in.close(); - } - } catch (IOException ex) { - ex.printStackTrace(); - } - } - return result; - } -} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/utils/HttpsRequest.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/utils/HttpsRequest.java deleted file mode 100644 index e442989..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/utils/HttpsRequest.java +++ /dev/null @@ -1,322 +0,0 @@ -package com.iailab.common.utils; - -import lombok.extern.slf4j.Slf4j; -import org.apache.http.Header; -import org.apache.http.HttpEntity; -import org.apache.http.HttpResponse; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.client.methods.HttpPost; -import org.apache.http.entity.StringEntity; -import org.apache.http.util.EntityUtils; -import org.springframework.stereotype.Component; -import org.springframework.util.CollectionUtils; - -import java.io.UnsupportedEncodingException; -import java.net.URLEncoder; -import java.util.Map; - -/** - * @author PanZhibao - * @date 2021年06月03日 16:40 - */ -@Slf4j -@Component -public class HttpsRequest { - - /** - * doGet - * - * @param url - * @param map - * @param charset - * @param token - * @return - */ - public String doGet(String url, Map<String, String> map, String charset, String token) { - org.apache.http.client.HttpClient httpClient = null; - HttpGet httpGet = null; - String result = null; - try { - httpClient = new SSLClient(); - StringBuilder sb = new StringBuilder(); - sb.append(url); - if (!CollectionUtils.isEmpty(map)) { - if ((url.indexOf("?") == -1)) { - sb.append("?"); - } else { - sb.append("&"); - } - map.forEach((k, v) -> { - try { - sb.append(k + "=" + URLEncoder.encode(v, charset) + "&"); - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); - } - }); - sb.append("t=" + System.currentTimeMillis()); - } - log.info("doGet,url=" + sb.toString()); - httpGet = new HttpGet(sb.toString()); - //设置参数 - httpGet.addHeader("Accept", "application/json"); - httpGet.addHeader("Content-Type", "application/json;charset=UTF-8"); - httpGet.addHeader("Authorization", token); - HttpResponse response = httpClient.execute(httpGet); - if (response != null) { - HttpEntity resEntity = response.getEntity(); - if (resEntity != null) { - result = EntityUtils.toString(resEntity, charset); - } - } - } catch (Exception ex) { - ex.printStackTrace(); - } - return result; - } - - /** - * doPost - * - * @param url - * @param map - * @param json - * @param charset - * @param token - * @return - */ - public String doPost(String url, Map<String, String> map, String json, String charset, String token) { - org.apache.http.client.HttpClient httpClient = null; - HttpPost httpPost = null; - String result = null; - try { - httpClient = new SSLClient(); - StringBuilder sb = new StringBuilder(); - sb.append(url); - if (!CollectionUtils.isEmpty(map)) { - sb.append("?"); - map.forEach((k, v) -> { - try { - sb.append(k + "=" + URLEncoder.encode(v, charset) + "&"); - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); - } - }); - sb.append("t=" + System.currentTimeMillis()); - } - httpPost = new HttpPost(sb.toString()); - //设置参数 - httpPost.addHeader("Accept", "application/json"); - httpPost.addHeader("Content-Type", "application/json;charset=UTF-8"); - httpPost.addHeader("token", token); - StringEntity stringEntity = new StringEntity(json); - stringEntity.setContentEncoding("UTF-8"); - stringEntity.setContentType("application/json"); - httpPost.setEntity(stringEntity); - HttpResponse response = httpClient.execute(httpPost); - if (response != null) { - HttpEntity resEntity = response.getEntity(); - if (resEntity != null) { - result = EntityUtils.toString(resEntity, charset); - } - } - } catch (Exception ex) { - ex.printStackTrace(); - } - return result; - } - /** - * doPost - * - * @param url - * @param map - * @param json - * @param charset - * @param token - * @return - */ - public String doPostAuthorization(String url, Map<String, String> map, String json, String charset, String token) { - org.apache.http.client.HttpClient httpClient = null; - HttpPost httpPost = null; - String result = null; - try { - httpClient = new SSLClient(); - StringBuilder sb = new StringBuilder(); - sb.append(url); - if (!CollectionUtils.isEmpty(map)) { - sb.append("?"); - map.forEach((k, v) -> { - try { - sb.append(k + "=" + URLEncoder.encode(v, charset) + "&"); - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); - } - }); - sb.append("t=" + System.currentTimeMillis()); - } - httpPost = new HttpPost(sb.toString()); - //设置参数 - httpPost.addHeader("Accept", "application/json"); - httpPost.addHeader("Content-Type", "application/json;charset=UTF-8"); - httpPost.addHeader("Authorization", "Bearer{" + token + "}"); - StringEntity stringEntity = new StringEntity(json); - stringEntity.setContentEncoding("UTF-8"); - stringEntity.setContentType("application/json"); - httpPost.setEntity(stringEntity); - HttpResponse response = httpClient.execute(httpPost); - if (response != null) { - HttpEntity resEntity = response.getEntity(); - if (resEntity != null) { - result = EntityUtils.toString(resEntity, charset); - } - } - } catch (Exception ex) { - ex.printStackTrace(); - } - return result; - } - - /** - * doPost - * - * @param url - * @param map - * @param json - * @param charset - * @return - */ - public String doPostToken(String url, Map<String, String> map, String json, String charset) { - org.apache.http.client.HttpClient httpClient = null; - HttpPost httpPost = null; - String result = null; - try { - httpClient = new SSLClient(); - StringBuilder sb = new StringBuilder(); - sb.append(url); - if (!CollectionUtils.isEmpty(map)) { - sb.append("?"); - map.forEach((k, v) -> { - try { - sb.append(k + "=" + URLEncoder.encode(v, charset) + "&"); - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); - } - }); - sb.append("t=" + System.currentTimeMillis()); - } - httpPost = new HttpPost(sb.toString()); - //设置参数 - httpPost.addHeader("Accept", "application/json"); - httpPost.addHeader("Content-Type", "application/json;charset=UTF-8"); - StringEntity stringEntity = new StringEntity(json); - stringEntity.setContentEncoding("UTF-8"); - stringEntity.setContentType("application/json"); - httpPost.setEntity(stringEntity); - HttpResponse response = httpClient.execute(httpPost); - if (response != null) { - Header[] resHeader = response.getHeaders("X-Auth-Tkn"); - if (resHeader != null) { - result = resHeader[0].getValue(); - } - } - } catch (Exception ex) { - ex.printStackTrace(); - } - return result; - } - - /** - * doGet - * - * @param url - * @param map - * @param charset - * @param token - * @param tMap - * @return - */ - public String doGetSDData(String url, Map<String, String> map, String charset, String token, Map<String, String> tMap) { - org.apache.http.client.HttpClient httpClient = null; - HttpGet httpGet = null; - String result = null; - try { - httpClient = new SSLClient(); - StringBuilder sb = new StringBuilder(); - sb.append(url); - if (!CollectionUtils.isEmpty(map)) { - sb.append("?"); - map.forEach((k, v) -> { - try { - sb.append(k + "=" + URLEncoder.encode(v, charset) + "&"); - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); - } - }); - sb.append("t=" + System.currentTimeMillis()); - } - log.info("doGet,url=" + sb.toString()); - httpGet = new HttpGet(sb.toString()); - //设置参数 - httpGet.addHeader("Content-Type", "application/json"); - httpGet.addHeader("X-Auth-Tkn", token); - httpGet.addHeader("X-Forwarded-OrgSet", tMap.get("X-Forwarded-OrgSet")); - httpGet.addHeader("X-Forwarded-PrId", tMap.get("X-Forwarded-PrId")); - httpGet.addHeader("X-Request-Id", tMap.get("X-Request-Id")); - HttpResponse response = httpClient.execute(httpGet); - if (response != null) { - HttpEntity resEntity = response.getEntity(); - if (resEntity != null) { - result = EntityUtils.toString(resEntity, charset); - } - } - } catch (Exception ex) { - ex.printStackTrace(); - } - return result; - } - - /** - * doGet - * - * @param url - * @param map - * @param charset - * @param token - * @return - */ - public String doGetDeviceList(String url, Map<String, String> map, String charset, String token) { - org.apache.http.client.HttpClient httpClient = null; - HttpGet httpGet = null; - String result = null; - try { - httpClient = new SSLClient(); - StringBuilder sb = new StringBuilder(); - sb.append(url); - if (!CollectionUtils.isEmpty(map)) { - sb.append("?"); - map.forEach((k, v) -> { - try { - sb.append(k + "=" + URLEncoder.encode(v, charset) + "&"); - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); - } - }); - sb.append("t=" + System.currentTimeMillis()); - } - log.info("doGet,url=" + sb.toString()); - httpGet = new HttpGet(sb.toString()); - //设置参数 - httpGet.addHeader("Content-Type", "application/json"); - httpGet.addHeader("X-App-Secret", token); - HttpResponse response = httpClient.execute(httpGet); - if (response != null) { - HttpEntity resEntity = response.getEntity(); - if (resEntity != null) { - result = EntityUtils.toString(resEntity, charset); - } - } - } catch (Exception ex) { - ex.printStackTrace(); - } - return result; - } -} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/utils/MatlabUtil.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/utils/MatlabUtil.java deleted file mode 100644 index 6e3355a..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/utils/MatlabUtil.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.iailab.common.utils; - -import cn.hutool.core.util.ReflectUtil; -import com.iailab.module.model.IAILModel; -import lombok.extern.slf4j.Slf4j; - -import java.lang.reflect.Method; -import java.util.HashMap; - -/** - * @author PanZhibao - * @Description - * @createTime 2023年01月11日 11:03:00 - */ -@Slf4j -public class MatlabUtil { - - public static HashMap<String, Object> execML(IAILModel model, Object[] paramValues) { - - //获取预测项的预测程序的类 - HashMap<String, Object> tMap = null; - try { -// double[][] realTimeData ={{12.1,5.1,1.45},{12.2,5.2,1.43},{12,3,5.3,1.425},{13.4,5.4,1.46},{14.5,5.5,1.48},{11.6,5.6,1.5},{12.7,5.7,1.47},{12.8,5.8,1.45},{12.9,5.9,1.43},{12.6,6,1.425},{12.1,5.1,1.46},{12.2,5.2,1.47} ,{12.3,5.3,1.5},{13.4,5.4,1.47},{14.5,5.5,1.45},{11.6,5.6,1.43},{12.7,5.7,1.425}, {12.8,5.8,1.46},{12.9,5.9,1.48},{12.6,6,1.5},{12.1,5.1,1.47},{12.2,5.2,1.45},{12.3,5.3,1.43},{13.4,5.4,1.425},{14.5,5.5,1.46},{11.6,5.6,1.47},{12.7,5.7,1.5},{12.8,5.8,1.47},{12.9,5.9,1.45},{12.6,6,1.45}}; - - Class<?> clazz = Class.forName(model.getClassName()); - - Method method = ReflectUtil.getPublicMethod(clazz, model.getMethodName(), model.getParamsArray()); - - //tMap = ReflectUtil.invoke(clazz.newInstance(), method, paramValues); - - tMap = (HashMap<String, Object>) method.invoke(clazz.newInstance(), paramValues); - } catch (Exception e) { - e.printStackTrace(); - log.error("exception message : {}", e.getMessage()); - } - return tMap; - } -} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/utils/PythonUtil.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/utils/PythonUtil.java deleted file mode 100644 index 896d76b..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/utils/PythonUtil.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.iailab.common.utils; - -import com.alibaba.fastjson.JSONObject; -import lombok.extern.slf4j.Slf4j; - -import java.io.BufferedReader; -import java.io.InputStreamReader; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -/** - * @author PanZhibao - * @Description - * @createTime 2023年01月11日 11:03:00 - */ -@Slf4j -public class PythonUtil { - - public static Map<String, Object> execPy(String[] command) throws Exception { - List<String> lines = new ArrayList<>(); - try { - Process proc = Runtime.getRuntime().exec(command); - BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream(), "GBK")); - String line = null; - - while ((line = in.readLine()) != null) { - log.info(line); - lines.add(line); - } - // 0表示成功,1表示远程调用失败,2表示python脚本出错 - int waitFor = proc.waitFor(); - log.info("waitFor=" + waitFor); - if (waitFor == 1) { - throw new Exception("远程调用失败"); - } else if (waitFor == 2) { - throw new Exception("python脚本出错"); - } else if (waitFor == 9009) { - throw new Exception("环境变量配置错误"); - } else if (waitFor != 0) { - throw new Exception("调用python失败"); - } - } catch (Exception ex) { - log.error("运行python异常!command=" + command.toString()); - throw ex; - } - return JSONObject.parseObject(lines.get(0)); - } -} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/utils/SSLClient.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/utils/SSLClient.java deleted file mode 100644 index a3c4051..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/utils/SSLClient.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.iailab.common.utils; - - -import org.apache.http.conn.ClientConnectionManager; -import org.apache.http.conn.scheme.Scheme; -import org.apache.http.conn.scheme.SchemeRegistry; -import org.apache.http.conn.ssl.SSLSocketFactory; -import org.apache.http.impl.client.DefaultHttpClient; - -import javax.net.ssl.SSLContext; -import javax.net.ssl.TrustManager; -import javax.net.ssl.X509TrustManager; -import java.security.cert.CertificateException; -import java.security.cert.X509Certificate; - -/** - * @author PanZhibao - * @date 2021年06月03日 15:35 - */ -public class SSLClient extends DefaultHttpClient { - public SSLClient() throws Exception { - super(); - //传输协议需要根据自己的判断 - SSLContext ctx = SSLContext.getInstance("TLS"); - X509TrustManager tm = new X509TrustManager() { - @Override - public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { - } - - @Override - public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { - } - - @Override - public X509Certificate[] getAcceptedIssuers() { - return null; - } - }; - ctx.init(null, new TrustManager[]{tm}, null); - SSLSocketFactory ssf = new SSLSocketFactory(ctx, SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); - ClientConnectionManager ccm = this.getConnectionManager(); - SchemeRegistry sr = ccm.getSchemeRegistry(); - sr.register(new Scheme("https", 443, ssf)); - } -} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/utils/UnzipUtils.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/utils/UnzipUtils.java deleted file mode 100644 index 2ed4454..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/common/utils/UnzipUtils.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.iailab.common.utils; - -import java.io.*; -import java.nio.charset.Charset; -import java.util.Enumeration; -import java.util.zip.ZipEntry; -import java.util.zip.ZipFile; - -/** - * @author PanZhibao - * @Description - * @createTime 2023年05月25日 15:28:00 - */ -public class UnzipUtils { - /** - * 解压zip压缩文件到指定目录 - * - * @param zipPath zip压缩文件绝对路径 - * @param descDir 指定的解压目录 - */ - public static void unzipFile(String zipPath, String descDir) throws IOException { - try { - File zipFile = new File(zipPath); - if (!zipFile.exists()) { - throw new IOException("要解压的压缩文件不存在"); - } - File pathFile = new File(descDir); - if (!pathFile.exists()) { - pathFile.mkdirs(); - } - unzipWithStream(zipPath, descDir); - } catch (Exception e) { - throw new IOException(e); - } - } - - /** - * 解压 - * - * @param zipPath - * @param descDir - */ - public static void unzipWithStream(String zipPath, String descDir) { - try (ZipFile zipFile = new ZipFile(zipPath, Charset.forName("GBK"))) { - Enumeration e = zipFile.entries(); - while (e.hasMoreElements()) { - ZipEntry zipEntry = (ZipEntry)e.nextElement(); - String zipEntryNameStr = zipEntry.getName(); - String zipEntryName = zipEntryNameStr; - /*if (zipEntryNameStr.contains("/")) { - String str1 = zipEntryNameStr.substring(0, zipEntryNameStr.indexOf("/")); - zipEntryName = zipEntryNameStr.substring(str1.length() + 1); - }*/ - String outPath = (descDir + zipEntryName).replace("\\\\", "/"); - File outFile = new File(outPath.substring(0, outPath.lastIndexOf('/'))); - if (!outFile.exists()) { - outFile.mkdirs(); - } - if (new File(outPath).isDirectory()) { - continue; - } - writeFile(outPath, zipFile.getInputStream(zipEntry)); - } - System.out.println("======解压成功======="); - } catch (IOException e) { - System.out.println("压缩包处理异常,异常信息{}" + e); - } - } - - /** - * 将流写到文件中 - * - * @param filePath - * @param zipInputStream - */ - public static void writeFile(String filePath, InputStream zipInputStream) throws IOException { - try (OutputStream outputStream = new FileOutputStream(filePath)) { - byte[] bytes = new byte[4096]; - int len; - while ((len = zipInputStream.read(bytes)) != -1) { - outputStream.write(bytes, 0, len); - } - } catch (IOException ex) { - System.out.println("解压文件时,写出到文件出错"); - } finally { - zipInputStream.close(); - } - } - - /** - * 测试方法 - * - * @param args - * @throws IOException - */ - public static void test(String[] args) throws IOException { - - String zipPath = "D:/test/测试文件.zip"; - String descDir = "D:/test/解压/"; - - unzipFile(zipPath, descDir); - } -} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/api/MdkApiImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/api/MdkApiImpl.java deleted file mode 100644 index cac50e7..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/api/MdkApiImpl.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.iailab.module.api; - -import com.iailab.api.mdk.MdkApi; -import com.iailab.api.mdk.dto.MdkPredictReqDTO; -import com.iailab.framework.common.pojo.CommonResult; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.RestController; - -import static com.iailab.framework.common.pojo.CommonResult.success; - -/** - * @author PanZhibao - * @Description - * @createTime 2024年08月26日 - */ -@RestController -@Validated -public class MdkApiImpl implements MdkApi { - - @Override - public CommonResult<Boolean> predict(MdkPredictReqDTO reqDTO) { - - return success(true); - } -} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/controller/StModelController.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/controller/StModelController.java deleted file mode 100644 index 5f18372..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/controller/StModelController.java +++ /dev/null @@ -1,250 +0,0 @@ -package com.iailab.module.mcs.controller; - -import com.iailab.common.annotation.LogOperation; -import com.iailab.common.enums.IsEnableEnum; -import com.iailab.framework.common.page.PageData; -import com.iailab.common.utils.Constant; -import com.iailab.framework.common.util.object.ConvertUtils; -import com.iailab.framework.common.pojo.CommonResult; -import com.iailab.framework.common.util.validation.ValidationUtils; -import com.iailab.framework.common.validation.group.AddGroup; -import com.iailab.framework.common.validation.group.DefaultGroup; -import com.iailab.framework.common.validation.group.UpdateGroup; -import com.iailab.framework.security.core.util.SecurityFrameworkUtils; -import com.iailab.module.mcs.dto.StModelDTO; -import com.iailab.module.mcs.dto.StModelOutDTO; -import com.iailab.module.mcs.dto.StModelParamDTO; -import com.iailab.module.mcs.dto.StModelSettingDTO; -import com.iailab.module.mcs.entity.StModelOutEntity; -import com.iailab.module.mcs.entity.StModelParamEntity; -import com.iailab.module.mcs.entity.StModelSettingEntity; -import com.iailab.module.mcs.service.StModelOutService; -import com.iailab.module.mcs.service.StModelParamService; -import com.iailab.module.mcs.service.StModelService; -import com.iailab.module.mcs.service.StModelSettingService; -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.Parameters; -import javax.annotation.Resource; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.bind.annotation.*; -import org.springframework.web.multipart.MultipartFile; - -import java.io.IOException; -import java.util.*; - -import static com.iailab.framework.common.pojo.CommonResult.success; - - -/** - * @author lirm 1343021927@qq.com - * @since 1.0.0 2023-05-10 - */ -@RestController -@RequestMapping("/model/mcs/st-model") -public class StModelController { - @Resource - private StModelService stModelService; - - @Resource - private StModelParamService stModelParamService; - - @Resource - private StModelSettingService stModelSettingService; - - @Resource - private StModelOutService stModelOutService; - - @GetMapping("page") - @Operation(summary = "分页") - @Parameters({ - @Parameter(name = Constant.PAGE, description = "当前页码,从1开始", required = true), - @Parameter(name = Constant.LIMIT, description = "每页显示记录数", required = true), - @Parameter(name = Constant.ORDER_FIELD, description = "排序字段"), - @Parameter(name = Constant.ORDER, description = "排序方式,可选值(asc、desc)") - }) - public CommonResult<PageData<StModelDTO>> page(@RequestParam Map<String, Object> params) { - PageData<StModelDTO> page = stModelService.page(params); - - return success(page); - } - - @GetMapping("{id}") - @Operation(summary = "信息") - public CommonResult<StModelDTO> get(@PathVariable("id") String id) { - StModelDTO data = stModelService.get(id); - - List<StModelParamDTO> tParamPage = stModelParamService.getByModelId(id); - data.setModelParamList(tParamPage); - - Map<String, Object> params = new HashMap<String, Object>(1); - params.put("modelId", data.getId()); - List<StModelSettingDTO> tSettingPage = stModelSettingService.getAll(params); - data.setModelSettingList(tSettingPage); - - Map<String, Object> out = new HashMap<String, Object>(1); - out.put("modelId", data.getId()); - List<StModelOutDTO> tOutPage = stModelOutService.getAll(out); - data.setModelOutList(tOutPage); - - return new CommonResult<StModelDTO>().setData(data); - } - - @PostMapping - @Operation(summary = "保存") - @LogOperation("保存") - @Transactional - public CommonResult save(@RequestBody StModelDTO dto) { - //效验数据 - ValidationUtils.validate(dto, AddGroup.class, DefaultGroup.class); - - dto.setId(UUID.randomUUID().toString()); - List<StModelParamDTO> tParamList = dto.getModelParamList(); - if (tParamList != null) { - for (int i = 0; i < tParamList.size(); i++) { - StModelParamDTO tParamDTO = new StModelParamDTO(); - tParamDTO = tParamList.get(i); - StModelParamEntity tParamEntity = new StModelParamEntity(); - tParamEntity.setModelId(dto.getId()); - tParamEntity.setParamName(tParamDTO.getParamName()); - tParamEntity.setParamId(tParamDTO.getParamId()); - tParamEntity.setParamOrder(tParamDTO.getParamOrder()); - tParamEntity.setParamPortOrder(tParamDTO.getParamPortOrder()); - tParamEntity.setDataLength(tParamDTO.getDataLength()); - tParamEntity.setParamType(tParamDTO.getParamType()); - stModelParamService.insert(tParamEntity); - } - } - List<StModelSettingDTO> tSettingList = dto.getModelSettingList(); - if (tSettingList != null) { - for (int i = 0; i < tSettingList.size(); i++) { - StModelSettingEntity tSettingEntity = ConvertUtils.sourceToTarget(tSettingList.get(i), StModelSettingEntity.class); - tSettingEntity.setModelId(dto.getId()); - stModelSettingService.insert(tSettingEntity); - } - } - - List<StModelOutDTO> tOutList = dto.getModelOutList(); - if (tOutList != null) { - for (int i = 0; i < tOutList.size(); i++) { - StModelOutEntity tOutEntity = ConvertUtils.sourceToTarget(tOutList.get(i), StModelOutEntity.class); - tOutEntity.setModelId(dto.getId()); - tOutEntity.setSort(i+1); - stModelOutService.insert(tOutEntity); - } - } - dto.setCreator(SecurityFrameworkUtils.getLoginUserId()); - dto.setCreateDate(new Date()); - dto.setUpdater(SecurityFrameworkUtils.getLoginUserId()); - dto.setUpdateDate(new Date()); - dto.setIsEnable(IsEnableEnum.ENABLE.value()); - stModelService.save(dto); - return new CommonResult(); - } - - @PutMapping - @Operation(summary = "修改") - @LogOperation("修改") - @Transactional - public CommonResult update(@RequestBody StModelDTO dto) { - //效验数据 - ValidationUtils.validate(dto, UpdateGroup.class, DefaultGroup.class); - - List<StModelParamDTO> tParamList = dto.getModelParamList(); - if (tParamList != null) { - stModelParamService.deleteByModelId(dto.getId()); - for (int i = 0; i < tParamList.size(); i++) { - StModelParamDTO tParamDTO = new StModelParamDTO(); - tParamDTO = tParamList.get(i); - StModelParamEntity tParamEntity = new StModelParamEntity(); - tParamEntity.setModelId(dto.getId()); - tParamEntity.setParamName(tParamDTO.getParamName()); - tParamEntity.setParamId(tParamDTO.getParamId()); - tParamEntity.setParamOrder(tParamDTO.getParamOrder()); - tParamEntity.setParamPortOrder(tParamDTO.getParamPortOrder()); - tParamEntity.setDataLength(tParamDTO.getDataLength()); - tParamEntity.setParamType(tParamDTO.getParamType()); - - stModelParamService.insert(tParamEntity); - } - } - List<StModelSettingDTO> tSettingList = dto.getModelSettingList(); - if (tSettingList != null) { - stModelSettingService.deleteByModelId(dto.getId()); - for (int i = 0; i < tSettingList.size(); i++) { - StModelSettingEntity tSettingEntity = ConvertUtils.sourceToTarget(tSettingList.get(i), StModelSettingEntity.class); - tSettingEntity.setModelId(dto.getId()); - stModelSettingService.insert(tSettingEntity); - } - } - List<StModelOutDTO> tOutList = dto.getModelOutList(); - if (tOutList != null) { - stModelOutService.deleteByModelId(dto.getId()); - for (int i = 0; i < tOutList.size(); i++) { - StModelOutEntity tOutEntity = ConvertUtils.sourceToTarget(tOutList.get(i), StModelOutEntity.class); - tOutEntity.setModelId(dto.getId()); - tOutEntity.setSort(i+1); - stModelOutService.insert(tOutEntity); - } - } - - Long id = SecurityFrameworkUtils.getLoginUserId(); - dto.setUpdater(id); - dto.setUpdateDate(new Date()); - stModelService.update(dto); - - return new CommonResult<Object>(); - } - - @DeleteMapping - @Operation(summary = "删除") - @LogOperation("删除") - @Transactional - public CommonResult delete(@RequestBody String[] ids) { - List<String> idsList = Arrays.asList(ids); - for (int i = 0; i < idsList.size(); i++) { - stModelParamService.deleteByModelId(idsList.get(i));//删除模型参数表数据 - stModelSettingService.deleteByModelId(idsList.get(i));//删除模型设置表数据 - } - - stModelService.deleteByIds(ids);//删除模型表数据 - - return new CommonResult(); - } - - @PutMapping("/enable") - @Operation(summary = "启用") - @LogOperation("启用") - @Transactional - public CommonResult enable(@RequestBody String[] ids) { - stModelService.enableByIds(ids); - return new CommonResult(); - } - - @PutMapping("/disable") - @Operation(summary = "禁用") - @LogOperation("禁用") - @Transactional - public CommonResult disable(@RequestBody String[] ids) { - stModelService.disableByIds(ids); - return new CommonResult(); - } - - - /** - * 上传模型 - */ - @Operation(summary = "上传模型") - @PostMapping("/upload") - public CommonResult<Map<String, Object>> upload(@RequestParam("file") MultipartFile file) throws IOException { - Map<String, Object> data = stModelService.upload(file); - return new CommonResult<Map<String, Object>>().setData(data); - } - - @Operation(summary = "上传模型") - @GetMapping("/relation") - public CommonResult getRelation() { - Map<String, Object> data = stModelService.getRelation(); - return new CommonResult().setData(data); - } -} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/controller/StModelDocController.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/controller/StModelDocController.java deleted file mode 100644 index 6cd8d06..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/controller/StModelDocController.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.iailab.module.mcs.controller; - -import com.iailab.common.annotation.LogOperation; -import com.iailab.framework.common.pojo.CommonResult; -import com.iailab.framework.common.util.validation.ValidationUtils; -import com.iailab.framework.common.validation.group.DefaultGroup; -import com.iailab.framework.common.validation.group.UpdateGroup; -import com.iailab.module.mcs.dto.StModelDocDTO; -import com.iailab.module.mcs.service.StModelDocService; -import io.swagger.v3.oas.annotations.Operation; -import javax.annotation.Resource; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.bind.annotation.*; - - -@RestController -@RequestMapping("/model/mcs/st-model-doc") -public class StModelDocController { - - @Resource - private StModelDocService stModelDocService; - - @GetMapping("{id}") - @Operation(summary = "信息") - public CommonResult<StModelDocDTO> get(@PathVariable("id") String id) { - StModelDocDTO data = stModelDocService.get(id); - - return new CommonResult<StModelDocDTO>().setData(data); - } - - @PutMapping - @Operation(summary = "修改") - @LogOperation("修改") - public CommonResult update(@RequestBody StModelDocDTO dto){ - //效验数据 - ValidationUtils.validate(dto, UpdateGroup.class, DefaultGroup.class); - stModelDocService.update(dto); - return new CommonResult(); - } - - @PostMapping - @Operation(summary = "保存") - @LogOperation("保存") - @Transactional - public CommonResult save(@RequestBody StModelDocDTO dto){ - //效验数据 - ValidationUtils.validate(dto, UpdateGroup.class, DefaultGroup.class); - stModelDocService.save(dto); - return new CommonResult(); - } -} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/controller/StModelRequestLogController.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/controller/StModelRequestLogController.java deleted file mode 100644 index b1a636d..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/controller/StModelRequestLogController.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.iailab.module.mcs.controller; - -import com.iailab.framework.common.constant.Constant; -import com.iailab.framework.common.page.PageData; -import com.iailab.framework.common.pojo.CommonResult; -import com.iailab.module.mcs.dto.StModelRequestLogDTO; -import com.iailab.module.mcs.service.StModelRequestLogService; -import io.swagger.v3.oas.annotations.tags.Tag; -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.Parameters; -import javax.annotation.Resource; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - - -import java.util.Map; - -/** - * @author PanZhibao - * @Description - * @createTime 2024年05月22日 - */ -@RestController -@RequestMapping("/model/mcs/model-request-log") -@Tag(name = "模型调用日志表") -public class StModelRequestLogController { - - @Resource - private StModelRequestLogService stModelRequestLogService; - - @GetMapping("page") - @Operation(summary = "分页") - @Parameters({ - @Parameter(name = Constant.PAGE, description = "当前页码,从1开始", required = true) , - @Parameter(name = Constant.LIMIT, description = "每页显示记录数", required = true) , - @Parameter(name = Constant.ORDER_FIELD, description = "排序字段") , - @Parameter(name = Constant.ORDER, description = "排序方式,可选值(asc、desc)") - }) - public CommonResult<PageData<StModelRequestLogDTO>> page(@RequestParam Map<String, Object> params){ - PageData<StModelRequestLogDTO> page = stModelRequestLogService.page(params); - return new CommonResult<PageData<StModelRequestLogDTO>>().setData(page); - } -} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/controller/StModelRunlogController.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/controller/StModelRunlogController.java deleted file mode 100644 index 77d97d1..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/controller/StModelRunlogController.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.iailab.module.mcs.controller; - -import com.iailab.common.annotation.LogOperation; -import com.iailab.framework.common.page.PageData; -import com.iailab.common.utils.Constant; -import com.iailab.framework.common.pojo.CommonResult; - -import com.iailab.framework.common.util.validation.ValidationUtils; -import com.iailab.framework.common.validation.group.AddGroup; -import com.iailab.framework.common.validation.group.DefaultGroup; -import com.iailab.framework.common.validation.group.UpdateGroup; -import com.iailab.module.mcs.dto.StModelRunlogDTO; -import com.iailab.module.mcs.service.StModelRunlogService; -import io.swagger.v3.oas.annotations.tags.Tag; -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.Parameters; -import javax.annotation.Resource; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.*; - - -import java.util.Map; - - -/** - * 运行日志表 - * - * @author lirm ${email} - * @since 1.0.0 2023-07-04 - */ -@RestController -@RequestMapping("/model/mcs/runlog") -@Tag(name = "运行日志表") -public class StModelRunlogController { - @Resource - private StModelRunlogService runlogService; - - @GetMapping("page") - @Operation(summary = "分页") - @Parameters({ - @Parameter(name = Constant.PAGE, description = "当前页码,从1开始", required = true) , - @Parameter(name = Constant.LIMIT, description = "每页显示记录数", required = true) , - @Parameter(name = Constant.ORDER_FIELD, description = "排序字段") , - @Parameter(name = Constant.ORDER, description = "排序方式,可选值(asc、desc)") - }) - public CommonResult<PageData<StModelRunlogDTO>> page(@RequestParam Map<String, Object> params){ - PageData<StModelRunlogDTO> page = runlogService.queryPage(params); - - return new CommonResult<PageData<StModelRunlogDTO>>().setData(page); - } - - @GetMapping("{id}") - @Operation(summary = "信息") - @PreAuthorize("@ss.hasPermission('mcs:runlog:info')") - public CommonResult<StModelRunlogDTO> get(@PathVariable("id") Long id){ - StModelRunlogDTO data = runlogService.get(id); - - return new CommonResult<StModelRunlogDTO>().setData(data); - } - - @PostMapping - @Operation(summary = "保存") - @LogOperation("保存") - @PreAuthorize("@ss.hasPermission('mcs:runlog:save')") - public CommonResult save(@RequestBody StModelRunlogDTO dto){ - //效验数据 - ValidationUtils.validate(dto, AddGroup.class, DefaultGroup.class); - - runlogService.save(dto); - - return new CommonResult(); - } - - @PutMapping - @Operation(summary = "修改") - @LogOperation("修改") - @PreAuthorize("@ss.hasPermission('mcs:runlog:update')") - public CommonResult update(@RequestBody StModelRunlogDTO dto){ - //效验数据 - ValidationUtils.validate(dto, UpdateGroup.class, DefaultGroup.class); - - runlogService.update(dto); - - return new CommonResult(); - } - - @DeleteMapping - @Operation(summary = "删除") - @LogOperation("删除") - @PreAuthorize("@ss.hasPermission('mcs:runlog:delete')") - public CommonResult delete(@RequestBody Long[] ids){ - runlogService.delete(ids); - return new CommonResult(); - } -} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dao/StModelDao.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dao/StModelDao.java deleted file mode 100644 index 5817ace..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dao/StModelDao.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.iailab.module.mcs.dao; - -import com.iailab.framework.common.dao.BaseDao; -import com.iailab.module.mcs.entity.StModelEntity; -import org.apache.ibatis.annotations.Mapper; - -/** - * 模型信息表 - * - * @author lirm ${email} - * @since 1.0.0 2023-06-21 - */ -@Mapper -public interface StModelDao extends BaseDao<StModelEntity> { - -} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dao/StModelDocDao.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dao/StModelDocDao.java deleted file mode 100644 index 942f61d..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dao/StModelDocDao.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.iailab.module.mcs.dao; - -import com.iailab.framework.common.dao.BaseDao; -import com.iailab.module.mcs.entity.StModelDocEntity; -import org.apache.ibatis.annotations.Mapper; - -/** - * 模型信息表 - * - * @author lirm ${email} - * @since 1.0.0 2023-06-21 - */ -@Mapper -public interface StModelDocDao extends BaseDao<StModelDocEntity> { - -} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dao/StModelOutDao.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dao/StModelOutDao.java deleted file mode 100644 index 9164d35..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dao/StModelOutDao.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.iailab.module.mcs.dao; - -import com.iailab.framework.common.dao.BaseDao; -import com.iailab.module.mcs.dto.StModelOutDTO; -import com.iailab.module.mcs.entity.StModelOutEntity; -import org.apache.ibatis.annotations.Mapper; - -import java.util.List; -import java.util.Map; - -/** - * @author PanZhibao - * @Description - * @createTime 2023年08月02日 13:30:00 - */ -@Mapper -public interface StModelOutDao extends BaseDao<StModelOutEntity> { - - List<StModelOutDTO> getAll(Map<String, Object> out); - - List<StModelOutDTO> getOutPoint(Map<String, Object> params); -} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dao/StModelParamDao.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dao/StModelParamDao.java deleted file mode 100644 index eb25f4a..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dao/StModelParamDao.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.iailab.module.mcs.dao; - -import com.iailab.framework.common.dao.BaseDao; -import com.iailab.module.mcs.dto.StModelParamDTO; -import com.iailab.module.mcs.entity.StModelParamEntity; -import org.apache.ibatis.annotations.Mapper; - -import java.util.List; -import java.util.Map; - -/** - * - * - * @author lirm 1343021927@qq.com - * @since 1.0.0 2023-05-10 - */ -@Mapper -public interface StModelParamDao extends BaseDao<StModelParamEntity> { - - List<StModelParamDTO> getAll(Map<String, Object> params); - - void deleteByModelId(String modelId); - -} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dao/StModelRequestLogDao.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dao/StModelRequestLogDao.java deleted file mode 100644 index 9d7288d..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dao/StModelRequestLogDao.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.iailab.module.mcs.dao; - -import com.iailab.framework.common.dao.BaseDao; -import com.iailab.module.mcs.entity.StModelRequestLogEntity; -import org.apache.ibatis.annotations.Mapper; - -/** - * @author PanZhibao - * @Description - * @createTime 2024年05月22日 - */ -@Mapper -public interface StModelRequestLogDao extends BaseDao<StModelRequestLogEntity> { -} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dao/StModelResultDao.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dao/StModelResultDao.java deleted file mode 100644 index 0c25bb3..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dao/StModelResultDao.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.iailab.module.mcs.dao; - -import com.iailab.framework.common.dao.BaseDao; -import com.iailab.module.mcs.dto.StModelResultDTO; -import com.iailab.module.mcs.entity.StModelResultEntity; -import org.apache.ibatis.annotations.Mapper; - -import java.util.List; -import java.util.Map; - -/** - * 模型返回信息表 - * - * @author lirm ${email} - * @since 1.0.0 2023-06-21 - */ -@Mapper -public interface StModelResultDao extends BaseDao<StModelResultEntity> { - - List<StModelResultEntity> getResultList(Map<String, Object> params); - - List<StModelResultDTO> getLastResultByCode(Map<String, Object> params); - - List<StModelResultDTO> getResultByCodeDate(Map<String, Object> params); - - void insertList(List<StModelResultEntity> list); - - void cleanModelResult(Map<String, Object> params); -} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dao/StModelRunlogDao.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dao/StModelRunlogDao.java deleted file mode 100644 index ee9970c..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dao/StModelRunlogDao.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.iailab.module.mcs.dao; - -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.iailab.framework.common.dao.BaseDao; -import com.iailab.module.mcs.dto.StModelRunlogDTO; -import com.iailab.module.mcs.entity.StModelRunlogEntity; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - -import java.util.Date; -import java.util.List; -import java.util.Map; - -/** - * 运行日志表 - * - * @author lirm ${email} - * @since 1.0.0 2023-06-21 - */ -@Mapper -public interface StModelRunlogDao extends BaseDao<StModelRunlogEntity> { - - - List<StModelRunlogDTO> getLastLog(Map<String, Object> params); - - void cleanRunlogTask(Map<String, Date> tMap); - - IPage<StModelRunlogEntity> queryList(IPage<StModelRunlogEntity> page, @Param("params") Map<String, Object> params); - - List<StModelRunlogDTO> listAll(Map<String, Object> params); -} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dao/StModelSettingDao.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dao/StModelSettingDao.java deleted file mode 100644 index 709518d..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dao/StModelSettingDao.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.iailab.module.mcs.dao; - -import com.iailab.framework.common.dao.BaseDao; -import com.iailab.module.mcs.dto.StModelSettingDTO; -import com.iailab.module.mcs.entity.StModelSettingEntity; -import org.apache.ibatis.annotations.Mapper; - -import java.util.List; -import java.util.Map; - -/** - * - * - * @author lirm 1343021927@qq.com - * @since 1.0.0 2023-05-10 - */ -@Mapper -public interface StModelSettingDao extends BaseDao<StModelSettingEntity> { - - List<StModelSettingDTO> getAll(Map<String, Object> params); - - void deleteByModelId(String modelId); - -} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dto/RelationLineDTO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dto/RelationLineDTO.java deleted file mode 100644 index 9625799..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dto/RelationLineDTO.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.iailab.module.mcs.dto; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; - -import java.io.Serializable; - -/** - * @author PanZhibao - * @Description - * @createTime 2024年05月23日 - */ -@Data -@Schema(name = "模型关系线") -public class RelationLineDTO implements Serializable { - private static final long serialVersionUID = 1L; - - private String from; - - private String to; - - private String text = ""; - - private Integer animation = 1; - - private Boolean isHideArrow = true; -} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dto/RelationNodeDTO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dto/RelationNodeDTO.java deleted file mode 100644 index 7492463..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dto/RelationNodeDTO.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.iailab.module.mcs.dto; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; - -import java.io.Serializable; - -/** - * @author PanZhibao - * @Description - * @createTime 2024年05月23日 - */ -@Data -@Schema(name = "模型关系点") -public class RelationNodeDTO implements Serializable { - private static final long serialVersionUID = 1L; - - private String id; - - private String text; - - private StModelDTO data; -} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dto/StModelDTO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dto/StModelDTO.java deleted file mode 100644 index eb2aa10..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dto/StModelDTO.java +++ /dev/null @@ -1,94 +0,0 @@ -package com.iailab.module.mcs.dto; - -import com.iailab.framework.excel.core.annotations.DictFormat; -import io.swagger.v3.oas.annotations.media.Schema; - -import lombok.Data; - -import java.io.Serializable; -import java.util.Date; -import java.util.List; - - -/** - * 模型表 - * - * @author lirm 1343021927@qq.com - * @since 1.0.0 2023-05-10 - */ -@Data -@Schema(name = "模型表") -public class StModelDTO implements Serializable { - private static final long serialVersionUID = 1L; - - @Schema(name = "id") - private String id; - - @Schema(name = "模型编码") - private String modelCode; - - @Schema(name = "模型名称") - private String modelName; - - @Schema(name = "模型父级") - private String modelParent; - - @Schema(name = "模型类型") - private String modelType; - - @DictFormat("model_type") - @Schema(name = "模型类型名称") - private String modelTypeName; - - @Schema(name = "模型路径") - private String modelPath; - - @Schema(name = "类名") - private String className; - - @Schema(name = "方法名") - private String methodName; - - @Schema(name = "参数结构") - private String paramsStructure; - - @Schema(name = "备注") - private String remark; - - @Schema(name = "回路") - private String modelLoop; - - @Schema(name = "执行顺序") - private Integer runSort; - - @Schema(name = "运行时间") - private Date runTime; - - @Schema(name = "是否启用") - private Integer isEnable; - - @Schema(name = "创建人") - private Long creator; - - @Schema(name = "创建时间") - private Date createDate; - - @Schema(name = "修改人") - private Long updater; - - @Schema(name = "修改时间") - private Date updateDate; - - @Schema(name = "模型输入参数") - private List<StModelParamDTO> modelParamList; - - @Schema(name = "模型设置") - private List<StModelSettingDTO> modelSettingList; - - @Schema(name = "模型下发配置") - private List<StModelOutDTO> modelOutList; - - @Schema(name = "模型版本") - private String modelVersion; - -} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dto/StModelDocDTO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dto/StModelDocDTO.java deleted file mode 100644 index e4dfbd7..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dto/StModelDocDTO.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.iailab.module.mcs.dto; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; - -import java.io.Serializable; -import java.util.Date; - - -/** - * 模型表 - * - * @author dongyukun - * @since 1.0.0 2023-05-10 - */ -@Data -@Schema(name = "模型接口文档表") -public class StModelDocDTO implements Serializable { - private static final long serialVersionUID = 1L; - - @Schema(name = "id") - private String id; - - @Schema(name = "模型ID") - private String modelId; - - @Schema(name = "URL") - private String url; - - @Schema(name = "方法") - private String method; - - @Schema(name = "输入参数") - private String params; - - @Schema(name = "参数示例") - private String paramsExample; - - @Schema(name = "输出结果") - private String result; - - @Schema(name = "结果示例") - private String resultExample; - - @Schema(name = "创建人") - private Long creator; - - @Schema(name = "创建时间") - private Date createDate; - - @Schema(name = "修改人") - private Long updater; - - @Schema(name = "修改时间") - private Date updateDate; -} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dto/StModelOutDTO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dto/StModelOutDTO.java deleted file mode 100644 index 3ee188b..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dto/StModelOutDTO.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.iailab.module.mcs.dto; - -import io.swagger.v3.oas.annotations.media.Schema; - -import lombok.Data; - -import java.io.Serializable; - -/** - * @author PanZhibao - * @Description - * @createTime 2023年08月02日 13:35:00 - */ -@Data -@Schema(name = "模型下发配置") -public class StModelOutDTO implements Serializable { - - private static final long serialVersionUID = 1L; - - @Schema(name = "id") - private String id; - - @Schema(name = "模型ID") - private String modelId; - - @Schema(name = "输出key") - private String resultKey; - - @Schema(name = "是否下发") - private String isWrite; - - @Schema(name = "下发的点位") - private String pointNo; - - @Schema(name = "排序") - private Integer sort; - - @Schema(name = "无扰切换点位") - private String disturbancePointNo; -} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dto/StModelParamDTO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dto/StModelParamDTO.java deleted file mode 100644 index 27a6ebf..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dto/StModelParamDTO.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.iailab.module.mcs.dto; - -import io.swagger.v3.oas.annotations.media.Schema; - -import lombok.Data; - -import java.io.Serializable; - - -/** - * 模型参谋 - * - * @author lirm 1343021927@qq.com - * @since 1.0.0 2023-05-10 - */ -@Data -@Schema(name = "模型参谋") -public class StModelParamDTO implements Serializable { - private static final long serialVersionUID = 1L; - - @Schema(name = "id") - private String id; - - @Schema(name = "模型ID") - private String modelId; - - @Schema(name = "参数名称") - private String paramName; - - @Schema(name = "参数ID") - private String paramId; - - @Schema(name = "参数排序") - private Integer paramOrder; - - @Schema(name = "参数端口排序") - private Integer paramPortOrder; - - @Schema(name = "参数长度") - private Integer dataLength; - - @Schema(name = "参数类型") - private String paramType; - - -} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dto/StModelRequestLogDTO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dto/StModelRequestLogDTO.java deleted file mode 100644 index 43914ee..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dto/StModelRequestLogDTO.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.iailab.module.mcs.dto; - -import io.swagger.v3.oas.annotations.media.Schema; - -import lombok.Data; - -import java.io.Serializable; -import java.util.Date; - -/** - * @author PanZhibao - * @Description - * @createTime 2024年05月22日 - */ -@Data -@Schema(name = "模型调用日志表") -public class StModelRequestLogDTO implements Serializable { - private static final long serialVersionUID = 1L; - - @Schema(name = "id") - private String id; - - @Schema(name = "模型ID") - private String modelId; - - @Schema(name = "调用方账号") - private String appKey; - - @Schema(name = "调用时间") - private Date requestTime; - - @Schema(name = "请求参数") - private String requestParams; - - @Schema(name = "返回结果") - private String responseResult; -} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dto/StModelResultDTO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dto/StModelResultDTO.java deleted file mode 100644 index 6cec60b..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dto/StModelResultDTO.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.iailab.module.mcs.dto; - -import io.swagger.v3.oas.annotations.media.Schema; - -import lombok.Data; - -import java.io.Serializable; -import java.util.Date; - - -/** - * 模型返回信息表 - * - * @author lirm ${email} - * @since 1.0.0 2023-06-21 - */ -@Data -@Schema(name = "模型返回信息表") -public class StModelResultDTO implements Serializable { - private static final long serialVersionUID = 1L; - - @Schema(name = "id") - private String id; - - @Schema(name = "模型ID") - private String modelId; - - @Schema(name = "行号") - private Integer lineIndex; - - @Schema(name = "输出key") - private String resultKey; - - @Schema(name = "输出值") - private String resultValue; - - @Schema(name = "输出时间") - private Date resultTime; - - @Schema(name = "合介密度AI给定值") - private String densityAI; - - @Schema(name = "精煤灰分设定值") - private String ashJm; - - @Schema(name = "凝聚剂流量") - private String flowNjj; - - @Schema(name = "絮凝剂流量") - private String flowXnj; - - @Schema(name = "底流流量") - private String flowBottom; - - -} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dto/StModelRunlogDTO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dto/StModelRunlogDTO.java deleted file mode 100644 index e4e5204..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dto/StModelRunlogDTO.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.iailab.module.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 lirm ${email} - * @since 1.0.0 2023-06-21 - */ -@Data -@Schema(name = "运行日志表") -public class StModelRunlogDTO implements Serializable { - private static final long serialVersionUID = 1L; - - @Schema(name = "id") - private String id; - - @Schema(name = "模型id") - private String modelid; - - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") - @Schema(name = "运行时间") - private Date runTime; - - @Schema(name = "类别") - private String runType; - - @Schema(name = "运行结果") - private String runResult; - - @Schema(name = "模型代码") - private String modelCode; - - @Schema(name = "模型名称") - private String modelName; - - -} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dto/StModelSettingDTO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dto/StModelSettingDTO.java deleted file mode 100644 index cf05019..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/dto/StModelSettingDTO.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.iailab.module.mcs.dto; - -import io.swagger.v3.oas.annotations.media.Schema; - -import lombok.Data; - -import java.io.Serializable; - - -/** - * 模型参谋 - * - * @author lirm 1343021927@qq.com - * @since 1.0.0 2023-05-10 - */ -@Data -@Schema(name = "模型参谋") -public class StModelSettingDTO implements Serializable { - private static final long serialVersionUID = 1L; - - @Schema(name = "ID") - private String id; - - @Schema(name = "模型ID") - private String modelId; - - @Schema(name = "参数键") - private String settingKey; - - @Schema(name = "参数值") - private String settingValue; - - @Schema(name = "值类型") - private String valueType; - -} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/entity/StModelDocEntity.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/entity/StModelDocEntity.java deleted file mode 100644 index 0902d4e..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/entity/StModelDocEntity.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.iailab.module.mcs.entity; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; - -import java.io.Serializable; -import java.util.Date; - -/** - * 模型信息表 - * - * @author lirm ${email} - * @since 1.0.0 2023-06-21 - */ -@Data -@TableName("t_st_model_doc") -public class StModelDocEntity implements Serializable { - - private static final long serialVersionUID = 1L; - - /** - * id - */ - @TableId(type = IdType.ASSIGN_UUID) - private String id; - - /** - * 模型ID - */ - private String modelId; - - /** - * URL - */ - private String url; - - /** - * 方法 - */ - private String method; - - /** - * 输入参数 - */ - private String params; - - /** - * 参数示例 - */ - private String paramsExample; - - /** - * 输出结果 - */ - private String result; - - /** - * 结果示例 - */ - private String resultExample; - - /** - * 创建人 - */ - private Long creator; - - /** - * 创建时间 - */ - private Date createDate; - - /** - * 修改人 - */ - private Long updater; - - /** - * 修改时间 - */ - private Date updateDate; -} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/entity/StModelEntity.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/entity/StModelEntity.java deleted file mode 100644 index 3d076c7..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/entity/StModelEntity.java +++ /dev/null @@ -1,118 +0,0 @@ -package com.iailab.module.mcs.entity; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; - -import java.io.Serializable; -import java.util.Date; - -/** - * 模型信息表 - * - * @author lirm ${email} - * @since 1.0.0 2023-06-21 - */ -@Data -@TableName("t_st_model") -public class StModelEntity implements Serializable { - - private static final long serialVersionUID = 1L; - - /** - * id - */ - @TableId(type = IdType.ASSIGN_UUID) - private String id; - - /** - * 模型编码 - */ - private String modelCode; - - /** - * 模型名称 - */ - private String modelName; - - /** - * 模型父级 - */ - private String modelParent; - - /** - * 模型类型 - */ - private String modelType; - - /** - * 模型路径 - */ - private String modelPath; - - /** - * 类名 - */ - private String className; - - /** - * 方法名 - */ - private String methodName; - - /** - * 参数结构 - */ - private String paramsStructure; - - /** - * 备注 - */ - private String remark; - - /** - * 回路 - */ - private String modelLoop; - - /** - * 执行顺序 - */ - private Integer runSort; - - /** - * 运行时间 - */ - private Date runTime; - - /** - * 是否启用 - */ - private Integer isEnable; - - /** - * 创建人 - */ - private Long creator; - - /** - * 创建时间 - */ - private Date createDate; - - /** - * 修改人 - */ - private Long updater; - - /** - * 修改时间 - */ - private Date updateDate; - - /** - * 模型版本 - */ - private String modelVersion; -} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/entity/StModelOutEntity.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/entity/StModelOutEntity.java deleted file mode 100644 index 14e8f02..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/entity/StModelOutEntity.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.iailab.module.mcs.entity; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; - -import java.io.Serializable; - -/** - * 模型下发信息表 - * - * @author PanZhibao - * @Description - * @createTime 2023年08月02日 13:26:00 - */ -@Data -@TableName("t_st_model_out") -public class StModelOutEntity implements Serializable { - - private static final long serialVersionUID = 1L; - - /** - * id - */ - @TableId(type = IdType.ASSIGN_UUID) - private String id; - - /** - * 模型ID - */ - private String modelId; - - /** - * 输出key - */ - private String resultKey; - - /** - * 是否下发 - */ - private String isWrite; - - /** - * 下发的点位 - */ - private String pointNo; - - /** - * 排序 - */ - private Integer sort; - - /** - * 无扰切换点位 - */ - private String disturbancePointNo; -} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/entity/StModelParamEntity.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/entity/StModelParamEntity.java deleted file mode 100644 index 2d36d32..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/entity/StModelParamEntity.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.iailab.module.mcs.entity; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; - -import java.io.Serializable; - -/** - * 模型参数信息表 - * - * @author lirm ${email} - * @since 1.0.0 2023-06-21 - */ -@Data -@TableName("t_st_model_param") -public class StModelParamEntity implements Serializable { - - private static final long serialVersionUID = 1L; - - /** - * id - */ - @TableId(type = IdType.ASSIGN_UUID) - private String id; - /** - * 模型ID - */ - private String modelId; - /** - * 参数名称 - */ - private String paramName; - /** - * 参数ID - */ - private String paramId; - /** - * 参数排序 - */ - private Integer paramOrder; - /** - * 输入排序 - */ - private Integer paramPortOrder; - /** - * 数据长度 - */ - private Integer dataLength; - /** - * 参数类型 - */ - private String paramType; -} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/entity/StModelRequestLogEntity.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/entity/StModelRequestLogEntity.java deleted file mode 100644 index f2471fe..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/entity/StModelRequestLogEntity.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.iailab.module.mcs.entity; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; - -import java.io.Serializable; -import java.util.Date; - -/** - * @author PanZhibao - * @Description - * @createTime 2024年05月22日 - */ -@Data -@TableName("t_st_model_request_log") -public class StModelRequestLogEntity implements Serializable { - private static final long serialVersionUID = 1L; - - /** - * id - */ - @TableId(type = IdType.ASSIGN_UUID) - private String id; - - /** - * 模型ID - */ - private String modelId; - - /** - * 调用方账号 - */ - private String appKey; - - /** - * 调用时间 - */ - private Date requestTime; - - /** - * 请求参数 - */ - private String requestParams; - - /** - * 返回结果 - */ - private String responseCommonResult; -} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/entity/StModelResultEntity.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/entity/StModelResultEntity.java deleted file mode 100644 index 32a2cd4..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/entity/StModelResultEntity.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.iailab.module.mcs.entity; - -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; - -import java.util.Date; - -/** - * 模型返回信息表 - * - * @author lirm ${email} - * @since 1.0.0 2023-06-21 - */ -@Data -@TableName("t_st_model_result") -public class StModelResultEntity { - - /** - * id - */ - private String id; - /** - * 模型ID - */ - private String modelId; - /** - * 行号 - */ - private Integer lineIndex; - /** - * 输出key - */ - private String resultKey; - /** - * 输出值 - */ - private String resultValue; - /** - * 输出时间 - */ - private Date resultTime; -} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/entity/StModelRunlogEntity.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/entity/StModelRunlogEntity.java deleted file mode 100644 index 84544b4..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/entity/StModelRunlogEntity.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.iailab.module.mcs.entity; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; - -import java.io.Serializable; -import java.util.Date; - -/** - * 运行日志表 - * - * @author lirm ${email} - * @since 1.0.0 2023-06-21 - */ -@Data -@TableName("t_st_model_runlog") -public class StModelRunlogEntity implements Serializable { - - private static final long serialVersionUID = 1L; - - /** - * id - */ - @TableId(type = IdType.ASSIGN_UUID) - private String id; - /** - * 模型id - */ - private String modelid; - /** - * 运行时间 - */ - private Date runTime; - /** - * 类别 - */ - private String runType; - /** - * 运行结果 - */ - private String runCommonResult; -} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/entity/StModelSettingEntity.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/entity/StModelSettingEntity.java deleted file mode 100644 index d4f0721..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/entity/StModelSettingEntity.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.iailab.module.mcs.entity; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; - -import java.io.Serializable; - -/** - * 模型设置表 - * - * @author lirm ${email} - * @since 1.0.0 2023-06-21 - */ -@Data -@TableName("t_st_model_setting") -public class StModelSettingEntity implements Serializable { - private static final long serialVersionUID = 1L; - - /** - * id - */ - @TableId(type = IdType.ASSIGN_UUID) - private String id; - - /** - * 模型ID - */ - private String modelId; - - /** - * 参数键 - */ - private String settingKey; - - /** - * 参数值 - */ - private String settingValue; - - /** - * 值类型 - */ - private String valueType; -} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/StModelDocService.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/StModelDocService.java deleted file mode 100644 index 917546d..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/StModelDocService.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.iailab.module.mcs.service; - -import com.iailab.framework.common.service.BaseService; -import com.iailab.module.mcs.dto.StModelDocDTO; -import com.iailab.module.mcs.entity.StModelDocEntity; - -/** - * 模型信息表 - * - * @author lirm ${email} - * @since 1.0.0 2023-06-21 - */ -public interface StModelDocService extends BaseService<StModelDocEntity> { - - StModelDocDTO get(String modelId); - - void update(StModelDocDTO stModelDocDTO); - - void save(StModelDocDTO stModelDocDTO); -} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/StModelOutService.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/StModelOutService.java deleted file mode 100644 index 7dc494b..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/StModelOutService.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.iailab.module.mcs.service; - -import com.iailab.framework.common.service.CrudService; -import com.iailab.module.mcs.dto.StModelOutDTO; -import com.iailab.module.mcs.entity.StModelOutEntity; - -import java.util.List; -import java.util.Map; - -/** - * @author PanZhibao - * @Description - * @createTime 2023年08月02日 13:33:00 - */ -public interface StModelOutService extends CrudService<StModelOutEntity, StModelOutDTO> { - - void deleteByModelId(String modelId); - - List<StModelOutDTO> getWriteByModelId(String modelId); - - List<StModelOutDTO> getOutPoint(String modelCode); - - List<StModelOutDTO> getAll(Map<String, Object> out); - -} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/StModelParamService.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/StModelParamService.java deleted file mode 100644 index cc56bc3..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/StModelParamService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.iailab.module.mcs.service; - -import com.iailab.framework.common.service.CrudService; -import com.iailab.module.mcs.dto.StModelParamDTO; -import com.iailab.module.mcs.entity.StModelParamEntity; - -import java.util.List; -import java.util.Map; - -/** - * - * - * @author lirm 1343021927@qq.com - * @since 1.0.0 2023-05-10 - */ -public interface StModelParamService extends CrudService<StModelParamEntity, StModelParamDTO> { - - List<StModelParamDTO> getAll(Map<String, Object> params); - - void deleteByModelId(String modelId); - - List<StModelParamDTO> getByModelId(String modelId); - -} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/StModelRequestLogService.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/StModelRequestLogService.java deleted file mode 100644 index 714d72d..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/StModelRequestLogService.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.iailab.module.mcs.service; - -import com.iailab.framework.common.page.PageData; -import com.iailab.framework.common.service.BaseService; -import com.iailab.module.mcs.dto.StModelRequestLogDTO; -import com.iailab.module.mcs.entity.StModelRequestLogEntity; - -import java.util.Map; - -/** - * @author PanZhibao - * @Description - * @createTime 2024年05月22日 - */ -public interface StModelRequestLogService extends BaseService<StModelRequestLogEntity> { - - PageData<StModelRequestLogDTO> page(Map<String, Object> params); - - void save(StModelRequestLogDTO dto); -} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/StModelResultService.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/StModelResultService.java deleted file mode 100644 index bd2c2b7..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/StModelResultService.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.iailab.module.mcs.service; - -import com.iailab.framework.common.service.CrudService; -import com.iailab.module.mcs.dto.StModelResultDTO; -import com.iailab.module.mcs.entity.StModelResultEntity; -import com.iailab.module.model.sample.entity.DataEntity; - -import java.util.Date; -import java.util.List; -import java.util.Map; - -/** - * 模型返回信息表 - * - * @author lirm ${email} - * @since 1.0.0 2023-06-21 - */ -public interface StModelResultService extends CrudService<StModelResultEntity, StModelResultDTO> { - - Map<String, Object> getLastResultMap(Map<String, Object> params); - - Map<String, Object> getResultByCodeDate(Map<String, Object> params); - - List<DataEntity> getValueList(String resultKey, Date startTime, Date endTime); - - void addML(String id, Map<String, Object> result, Date runTime); - - List<Map<String, Object>> getList(Map<String, Object> params); -} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/StModelRunlogService.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/StModelRunlogService.java deleted file mode 100644 index 824c066..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/StModelRunlogService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.iailab.module.mcs.service; - -import com.iailab.framework.common.page.PageData; -import com.iailab.framework.common.service.CrudService; -import com.iailab.module.mcs.dto.StModelRunlogDTO; -import com.iailab.module.mcs.entity.StModelRunlogEntity; - -import java.util.Date; -import java.util.List; -import java.util.Map; - -/** - * 运行日志表 - * - * @author lirm ${email} - * @since 1.0.0 2023-06-21 - */ -public interface StModelRunlogService extends CrudService<StModelRunlogEntity, StModelRunlogDTO> { - - void add(StModelRunlogDTO dto); - - PageData<StModelRunlogDTO> queryPage(Map<String, Object> params); - -} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/StModelService.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/StModelService.java deleted file mode 100644 index 84c0127..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/StModelService.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.iailab.module.mcs.service; - -import com.iailab.framework.common.page.PageData; -import com.iailab.framework.common.service.BaseService; -import com.iailab.module.mcs.dto.StModelDTO; -import com.iailab.module.mcs.entity.StModelEntity; -import org.springframework.web.multipart.MultipartFile; - -import java.io.IOException; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/** - * 模型信息表 - * - * @author lirm ${email} - * @since 1.0.0 2023-06-21 - */ -public interface StModelService extends BaseService<StModelEntity> { - - PageData<StModelDTO> page(Map<String, Object> params); - - StModelDTO get(String id); - - List<StModelDTO> getListAll(Map<String, Object> params); - - void save(StModelDTO dto); - - void update(StModelDTO dto); - - StModelDTO getByCode(String code); - - void deleteByIds(String[] ids); - - void enableByIds(String[] ids); - - void disableByIds(String[] ids); - - void updateTime(String id, Date runTime); - - Map<String, Object> upload(MultipartFile file) throws IOException; - - Map<String, Object> getRelation(); - -} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/StModelSettingService.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/StModelSettingService.java deleted file mode 100644 index 3a7e5a7..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/StModelSettingService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.iailab.module.mcs.service; - -import com.iailab.framework.common.service.CrudService; -import com.iailab.module.mcs.dto.StModelSettingDTO; -import com.iailab.module.mcs.entity.StModelSettingEntity; - -import java.util.List; -import java.util.Map; - -/** - * - * - * @author lirm 1343021927@qq.com - * @since 1.0.0 2023-05-10 - */ -public interface StModelSettingService extends CrudService<StModelSettingEntity, StModelSettingDTO>{ - - List<StModelSettingDTO> getAll(Map<String, Object> params); - - void deleteByModelId(String modelId); - - Map<String, Object> getByModelId(String modelId); - -} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/impl/StModelDocServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/impl/StModelDocServiceImpl.java deleted file mode 100644 index 8862b7b..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/impl/StModelDocServiceImpl.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.iailab.module.mcs.service.impl; - - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.iailab.framework.common.service.impl.BaseServiceImpl; -import com.iailab.framework.common.util.object.ConvertUtils; -import com.iailab.module.mcs.dao.StModelDocDao; -import com.iailab.module.mcs.dto.StModelDocDTO; -import com.iailab.module.mcs.entity.StModelDocEntity; -import com.iailab.module.mcs.service.StModelDocService; -import org.springframework.stereotype.Service; - -/** - * @author lirm 1343021927@qq.com - * @since 1.0.0 2023-05-10 - */ -@Service -public class StModelDocServiceImpl extends BaseServiceImpl<StModelDocDao, StModelDocEntity> implements StModelDocService { - - @Override - public StModelDocDTO get(String id) { - StModelDocEntity entity = baseDao.selectOne(new QueryWrapper<StModelDocEntity>().eq("model_id",id)); - - return ConvertUtils.sourceToTarget(entity, StModelDocDTO.class); - } - - @Override - public void update(StModelDocDTO stModelDocDTO) { - StModelDocEntity stModelDocEntity = ConvertUtils.sourceToTarget(stModelDocDTO,StModelDocEntity.class); - updateById(stModelDocEntity); - } - - @Override - public void save(StModelDocDTO stModelDocDTO) { - StModelDocEntity stModelDocEntity = ConvertUtils.sourceToTarget(stModelDocDTO, StModelDocEntity.class); - insert(stModelDocEntity); - } - - -} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/impl/StModelOutServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/impl/StModelOutServiceImpl.java deleted file mode 100644 index 5524c30..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/impl/StModelOutServiceImpl.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.iailab.module.mcs.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.iailab.framework.common.service.impl.CrudServiceImpl; -import com.iailab.framework.common.util.object.ConvertUtils; -import com.iailab.module.mcs.dao.StModelOutDao; -import com.iailab.module.mcs.dto.StModelOutDTO; -import com.iailab.module.mcs.entity.StModelOutEntity; -import com.iailab.module.mcs.service.StModelOutService; -import org.apache.commons.lang3.StringUtils; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * @author PanZhibao - * @Description - * @createTime 2023年08月02日 13:33:00 - */ -@Service -public class StModelOutServiceImpl extends CrudServiceImpl<StModelOutDao, StModelOutEntity, StModelOutDTO> implements StModelOutService { - - @Resource - private StModelOutDao stModelOutDao; - - @Override - public QueryWrapper<StModelOutEntity> getWrapper(Map<String, Object> params) { - String modelId = (String) params.get("model_id"); - - QueryWrapper<StModelOutEntity> wrapper = new QueryWrapper<>(); - wrapper.eq(StringUtils.isNotBlank(modelId), "model_id", modelId); - - return wrapper; - } - - @Override - public void deleteByModelId(String modelId) { - Map<String, Object> params = new HashMap<>(); - params.put("model_id", modelId); - baseDao.delete(this.getWrapper(params)); - } - - @Override - public List<StModelOutDTO> getWriteByModelId(String modelId) { - QueryWrapper queryWrapper = new QueryWrapper<StModelOutEntity>() - .eq("model_id", modelId) - .eq("is_write", "1") - .orderByAsc("sort"); - return ConvertUtils.sourceToTarget(baseDao.selectList(queryWrapper), StModelOutDTO.class); - } - - @Override - public List<StModelOutDTO> getOutPoint(String modelCode) { - Map<String, Object> params = new HashMap<>(1); - params.put("modelCode", modelCode); - return stModelOutDao.getOutPoint(params); - } - - @Override - public List<StModelOutDTO> getAll(Map<String, Object> out) { - return stModelOutDao.getAll(out); - } - -} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/impl/StModelParamServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/impl/StModelParamServiceImpl.java deleted file mode 100644 index a6928c6..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/impl/StModelParamServiceImpl.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.iailab.module.mcs.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.iailab.framework.common.service.impl.CrudServiceImpl; -import com.iailab.framework.common.util.object.ConvertUtils; -import com.iailab.module.mcs.dao.StModelParamDao; -import com.iailab.module.mcs.dto.StModelParamDTO; -import com.iailab.module.mcs.entity.StModelParamEntity; -import com.iailab.module.mcs.service.StModelParamService; -import org.apache.commons.lang3.StringUtils; -import org.springframework.stereotype.Service; - -import java.util.List; -import java.util.Map; - -/** - * - * - * @author lirm 1343021927@qq.com - * @since 1.0.0 2023-05-10 - */ -@Service -public class StModelParamServiceImpl extends CrudServiceImpl<StModelParamDao, StModelParamEntity, StModelParamDTO> - implements StModelParamService { - - - @Override - public List<StModelParamDTO> getAll(Map<String, Object> params) { - return baseDao.getAll(params); - } - @Override - public QueryWrapper<StModelParamEntity> getWrapper(Map<String, Object> params) { - String id = (String)params.get("id"); - - QueryWrapper<StModelParamEntity> wrapper = new QueryWrapper<>(); - wrapper.eq(StringUtils.isNotBlank(id), "id", id); - - return wrapper; - } - @Override - public void deleteByModelId(String modelId) { - baseDao.deleteByModelId(modelId); - } - - @Override - public List<StModelParamDTO> getByModelId(String modelId) { - QueryWrapper queryWrapper = new QueryWrapper<StModelParamEntity>() - .eq("model_id", modelId) - .orderByAsc("param_port_order") - .orderByAsc("param_order"); - return ConvertUtils.sourceToTarget(baseDao.selectList(queryWrapper), StModelParamDTO.class); - } - -} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/impl/StModelRequestLogServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/impl/StModelRequestLogServiceImpl.java deleted file mode 100644 index e3edfa7..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/impl/StModelRequestLogServiceImpl.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.iailab.module.mcs.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.iailab.framework.common.page.PageData; -import com.iailab.framework.common.service.impl.BaseServiceImpl; -import com.iailab.framework.common.util.object.ConvertUtils; -import com.iailab.module.mcs.dao.StModelRequestLogDao; -import com.iailab.module.mcs.dto.StModelRequestLogDTO; -import com.iailab.module.mcs.entity.StModelRequestLogEntity; -import com.iailab.module.mcs.service.StModelRequestLogService; -import org.apache.commons.lang3.StringUtils; -import org.springframework.stereotype.Service; - -import java.util.Map; -import java.util.UUID; - -/** - * @author PanZhibao - * @Description - * @createTime 2024年05月22日 - */ -@Service -public class StModelRequestLogServiceImpl extends BaseServiceImpl<StModelRequestLogDao, StModelRequestLogEntity> implements StModelRequestLogService { - - @Override - public PageData<StModelRequestLogDTO> page(Map<String, Object> params) { - IPage<StModelRequestLogEntity> page = baseDao.selectPage( - getPage(params, "request_time", false), - getWrapper(params) - ); - return getPageData(page, StModelRequestLogDTO.class); - } - - private QueryWrapper<StModelRequestLogEntity> getWrapper(Map<String, Object> params) { - String modelId = (String) params.get("modelId"); - String appKey = (String) params.get("appKey"); - String startTime = (String) params.get("startTime"); - String endTime = (String) params.get("endTime"); - - QueryWrapper<StModelRequestLogEntity> wrapper = new QueryWrapper<>(); - wrapper.eq(StringUtils.isNotBlank(modelId), "model_id", modelId) - .like(StringUtils.isNotBlank(appKey), "app_key", appKey) - .ge(StringUtils.isNotBlank(startTime), "request_time", startTime) - .le(StringUtils.isNotBlank(endTime), "request_time", endTime); - return wrapper; - } - - @Override - public void save(StModelRequestLogDTO dto) { - StModelRequestLogEntity entity = ConvertUtils.sourceToTarget(dto, StModelRequestLogEntity.class); - entity.setId(UUID.randomUUID().toString()); - insert(entity); - } -} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/impl/StModelResultServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/impl/StModelResultServiceImpl.java deleted file mode 100644 index 1883ad5..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/impl/StModelResultServiceImpl.java +++ /dev/null @@ -1,143 +0,0 @@ -package com.iailab.module.mcs.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.iailab.framework.common.service.impl.CrudServiceImpl; -import com.iailab.common.utils.DateUtils; -import com.iailab.module.mcs.dao.StModelResultDao; -import com.iailab.module.mcs.dto.StModelResultDTO; -import com.iailab.module.mcs.entity.StModelResultEntity; -import com.iailab.module.mcs.service.StModelResultService; -import com.iailab.module.model.sample.entity.DataEntity; -import org.apache.commons.lang3.StringUtils; -import org.springframework.stereotype.Service; -import org.springframework.util.CollectionUtils; - -import javax.annotation.Resource; -import java.util.*; -import java.util.stream.Collectors; - -/** - * 模型返回信息表 - * - * @author lirm ${email} - * @since 1.0.0 2023-06-21 - */ -@Service -public class StModelResultServiceImpl extends CrudServiceImpl<StModelResultDao, StModelResultEntity, StModelResultDTO> implements StModelResultService { - - @Resource - private StModelResultDao stModelResultDao; - - @Override - public QueryWrapper<StModelResultEntity> getWrapper(Map<String, Object> params){ - String id = (String)params.get("id"); - - QueryWrapper<StModelResultEntity> wrapper = new QueryWrapper<>(); - wrapper.eq(StringUtils.isNotBlank(id), "id", id); - - return wrapper; - } - - @Override - public List<Map<String, Object>> getList(Map<String, Object> params) { - if (params.get("isAsc") != null && params.get("isAsc").toString().equals("false")) { - params.put("sortType", "desc"); - } else { - params.put("sortType", "asc"); - } - List<Map<String, Object>> result = new ArrayList<>(); - List<StModelResultEntity> list = stModelResultDao.getResultList(params); - List<Date> dateList = list.stream().map(t -> t.getResultTime()).distinct().collect(Collectors.toList()); - Map<Date, List<StModelResultEntity>> groupList = list.stream().collect(Collectors.groupingBy(StModelResultEntity::getResultTime)); - dateList.forEach(item -> { - Map<String, Object> vt = new HashMap<>(); - groupList.get(item).forEach(v -> { - vt.put(v.getResultKey(), v.getResultValue()); - }); - vt.put("resultTime", item); - result.add(vt); - }); - return result; - } - - @Override - public Map<String, Object> getLastResultMap(Map<String, Object> params) { - Map<String, Object> result = new HashMap<>(1); - List<StModelResultDTO> list = baseDao.getLastResultByCode(params); - if (CollectionUtils.isEmpty(list)) { - return result; - } - list.forEach(item -> { - result.put(item.getResultKey(), item.getResultValue()); - }); - result.put("result_time", list.get(0).getResultTime()); - return result; - } - - @Override - public Map<String, Object> getResultByCodeDate(Map<String, Object> params) { - Map<String, Object> result = new HashMap<>(1); - List<StModelResultDTO> list = baseDao.getResultByCodeDate(params); - if (CollectionUtils.isEmpty(list)) { - return result; - } - list.forEach(item -> { - result.put(item.getResultKey(), item.getResultValue()); - }); - result.put("result_time", list.get(0).getResultTime()); - return result; - } - - @Override - public List<DataEntity> getValueList(String resultKey, Date startTime, Date endTime) { - List<DataEntity> result = new ArrayList<>(); - String[] params = resultKey.split(":"); - - QueryWrapper<StModelResultEntity> wrapper = new QueryWrapper<>(); - wrapper.eq("result_key", params[1]) - .ge("result_time", startTime) - .le("result_time", endTime) - .orderByAsc("result_time"); - List<StModelResultEntity> list = baseDao.selectList(wrapper); - if (CollectionUtils.isEmpty(list)) { - return result; - } - for (int i = 0; i < list.size(); i++) { - DataEntity dataEntity = new DataEntity(); - dataEntity.setTimeStamp(list.get(i).getResultTime()); - dataEntity.setDataValue(Double.parseDouble(list.get(i).getResultValue())); - result.add(dataEntity); - } - return result; - } - - @Override - public void addML(String modelId, Map<String,Object> tMap, Date runTime) { - if (tMap == null) { - return; - } - List<StModelResultEntity> list = new ArrayList<>(); - for(String key:tMap.keySet()){ - StModelResultEntity entity = new StModelResultEntity(); - entity.setId(UUID.randomUUID().toString()); - entity.setModelId(modelId); - entity.setLineIndex(0); - entity.setResultKey(key); - entity.setResultValue(tMap.get(key).toString()); - entity.setResultTime(runTime); - list.add(entity); - } - - baseDao.insertList(list); - } - - public QueryWrapper<StModelResultEntity> getDateWrapper(Map<String, Date> params) { - String startDate = DateUtils.format(params.get("startdate"),DateUtils.DATE_TIME_PATTERN); - String endDate = DateUtils.format(params.get("enddate"),DateUtils.DATE_TIME_PATTERN); - - QueryWrapper<StModelResultEntity> wrapper = new QueryWrapper<>(); - wrapper.ge(StringUtils.isNotBlank(startDate), "result_time", startDate); - wrapper.le(StringUtils.isNotBlank(endDate), "result_time", endDate); - return wrapper; - } -} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/impl/StModelRunlogServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/impl/StModelRunlogServiceImpl.java deleted file mode 100644 index 0b34b95..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/impl/StModelRunlogServiceImpl.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.iailab.module.mcs.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.iailab.common.utils.Constant; -import com.iailab.framework.common.page.PageData; -import com.iailab.framework.common.service.impl.CrudServiceImpl; -import com.iailab.framework.common.util.object.ConvertUtils; -import com.iailab.module.mcs.dao.StModelRunlogDao; -import com.iailab.module.mcs.dto.StModelRunlogDTO; -import com.iailab.module.mcs.entity.StModelRunlogEntity; -import com.iailab.module.mcs.service.StModelRunlogService; -import org.apache.commons.lang3.StringUtils; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; -import java.util.Map; - - -/** - * 运行日志表 - * - * @author lirm ${email} - * @since 1.0.0 2023-06-21 - */ -@Service -public class StModelRunlogServiceImpl extends CrudServiceImpl<StModelRunlogDao, StModelRunlogEntity, StModelRunlogDTO> implements StModelRunlogService { - - @Override - public PageData<StModelRunlogDTO> queryPage(Map<String, Object> params) { - long curPage = 1; - long limit = 10; - - if(params.get(Constant.PAGE) != null){ - curPage = Long.parseLong((String)params.get(Constant.PAGE)); - } - if(params.get(Constant.LIMIT) != null){ - limit = Long.parseLong((String)params.get(Constant.LIMIT)); - } - - IPage<StModelRunlogEntity> page = baseDao.queryList(new Page<>(curPage, limit), params); - return getPageData(page, StModelRunlogDTO.class); - } - - @Override - public QueryWrapper<StModelRunlogEntity> getWrapper(Map<String, Object> params){ - String modelCode = (String)params.get("modelCode"); - String modelName = (String)params.get("modelName"); - - QueryWrapper<StModelRunlogEntity> wrapper = new QueryWrapper<>(); - wrapper.like(StringUtils.isNotBlank(modelCode), "model_code", modelCode); - wrapper.like(StringUtils.isNotBlank(modelName), "model_name", modelName); - - return wrapper; - } - - @Override - public void add(StModelRunlogDTO dto) { - StModelRunlogEntity entity = ConvertUtils.sourceToTarget(dto, StModelRunlogEntity.class); - baseDao.insert(entity); - } - -} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/impl/StModelServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/impl/StModelServiceImpl.java deleted file mode 100644 index 3ff5c27..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/impl/StModelServiceImpl.java +++ /dev/null @@ -1,202 +0,0 @@ -package com.iailab.module.mcs.service.impl; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.iailab.common.enums.IsEnableEnum; -import com.iailab.framework.common.page.PageData; -import com.iailab.framework.common.service.impl.BaseServiceImpl; -import com.iailab.framework.common.util.object.ConvertUtils; -import com.iailab.common.utils.UnzipUtils; -import com.iailab.module.mcs.dao.StModelDao; -import com.iailab.module.mcs.dto.RelationLineDTO; -import com.iailab.module.mcs.dto.RelationNodeDTO; -import com.iailab.module.mcs.dto.StModelDTO; -import com.iailab.module.mcs.entity.StModelEntity; -import com.iailab.module.mcs.service.StModelService; -import org.apache.commons.lang3.StringUtils; -import org.springframework.stereotype.Service; -import org.springframework.util.CollectionUtils; -import org.springframework.web.multipart.MultipartFile; - -import java.io.File; -import java.io.IOException; -import java.util.*; -import java.util.stream.Collectors; - -/** - * @author lirm 1343021927@qq.com - * @since 1.0.0 2023-05-10 - */ -@Service -public class StModelServiceImpl extends BaseServiceImpl<StModelDao, StModelEntity> implements StModelService { - - private final String PATH_ZIP = "/zip/"; - - @Override - public PageData<StModelDTO> page(Map<String, Object> params) { - IPage<StModelEntity> page = baseDao.selectPage( - getPage(params, "create_date", false), - getWrapper(params) - ); - - return getPageData(page, StModelDTO.class); - } - - private QueryWrapper<StModelEntity> getWrapper(Map<String, Object> params) { - String modelCode = (String) params.get("modelCode"); - String modelName = (String) params.get("modelName"); - String modelType = (String) params.get("modelType"); - String isEnable = (String) params.get("isEnable"); - - QueryWrapper<StModelEntity> wrapper = new QueryWrapper<>(); - wrapper.like(StringUtils.isNotBlank(modelName), "model_name", modelName) - .like(StringUtils.isNotBlank(modelCode), "model_code", modelCode) - .eq(StringUtils.isNotBlank(modelType), "model_type", modelType) - .eq(StringUtils.isNotBlank(isEnable), "is_enable", isEnable); - return wrapper; - } - - @Override - public void save(StModelDTO dto) { - StModelEntity entity = ConvertUtils.sourceToTarget(dto, StModelEntity.class); - insert(entity); - } - - @Override - public void update(StModelDTO dto) { - StModelEntity entity = ConvertUtils.sourceToTarget(dto, StModelEntity.class); - updateById(entity); - } - - @Override - public StModelDTO get(String id) { - StModelEntity entity = baseDao.selectById(id); - - return ConvertUtils.sourceToTarget(entity, StModelDTO.class); - } - - @Override - public List<StModelDTO> getListAll(Map<String, Object> params) { - String modelLoop = (String)params.get("modelLoop"); - - QueryWrapper<StModelEntity> wrapper = new QueryWrapper<>(); - wrapper.eq("is_enable", IsEnableEnum.ENABLE.value()) - .eq(StringUtils.isNotBlank(modelLoop), "model_loop", modelLoop) - .orderByAsc("run_sort"); - - List<StModelEntity> list = baseDao.selectList(wrapper); - return ConvertUtils.sourceToTarget(list, StModelDTO.class); - } - - - @Override - public StModelDTO getByCode(String code) { - QueryWrapper<StModelEntity> wrapper = new QueryWrapper<>(); - wrapper.eq("model_code", code); - wrapper.eq("is_enable",1); - StModelEntity entity = baseDao.selectOne(wrapper); - return ConvertUtils.sourceToTarget(entity, StModelDTO.class); - } - - @Override - public void deleteByIds(String[] ids) { - baseDao.deleteBatchIds(Arrays.asList(ids)); - } - - @Override - public void enableByIds(String[] ids) { - if (CollectionUtils.isEmpty(Arrays.asList(ids))) { - return; - } - Arrays.asList(ids).forEach(item -> { - StModelEntity entity = new StModelEntity(); - entity.setId(item); - entity.setIsEnable(IsEnableEnum.ENABLE.value()); - baseDao.updateById(entity); - }); - } - - @Override - public void disableByIds(String[] ids) { - if (CollectionUtils.isEmpty(Arrays.asList(ids))) { - return; - } - Arrays.asList(ids).forEach(item -> { - StModelEntity entity = new StModelEntity(); - entity.setId(item); - entity.setIsEnable(IsEnableEnum.DISABLE.value()); - baseDao.updateById(entity); - }); - } - - @Override - public void updateTime(String id, Date runTime) { - StModelEntity entity = new StModelEntity(); - entity.setId(id); - entity.setRunTime(runTime); - baseDao.updateById(entity); - } - - @Override - public Map<String, Object> upload(MultipartFile file) throws IOException { - Map<String, Object> result = new HashMap<>(); - String modelPath = ""; - String modelStart = ""; - String uploadDir = modelPath + PATH_ZIP + file.getOriginalFilename(); - File uploadFile = new File(uploadDir); - if (!uploadFile.exists()) { - uploadFile.mkdirs(); - } - file.transferTo(new File(uploadDir)); - - // 解压 - UnzipUtils.unzipFile(uploadDir, modelPath + "/"); - result.put("path", modelPath + "/" + file.getOriginalFilename().substring(0, file.getOriginalFilename().indexOf(".")) + "/" + modelStart); - return result; - } - - @Override - public Map<String, Object> getRelation() { - Map<String, Object> result = new HashMap<>(); - List<RelationNodeDTO> nodes = new ArrayList<>(); - List<RelationLineDTO> lines = new ArrayList<>(); - List<StModelDTO> modelList = getListAll(new HashMap<>()); - if (CollectionUtils.isEmpty(modelList)) { - return result; - } - RelationNodeDTO rootNode = new RelationNodeDTO(); - rootNode.setId("root"); - rootNode.setText("模型库"); - nodes.add(rootNode); - List<String> parents = modelList.stream().map(t -> t.getModelParent()).distinct().collect(Collectors.toList()); - Map<String, List<StModelDTO>> modelGroup = modelList.stream().collect(Collectors.groupingBy(StModelDTO::getModelParent)); - for (int i = 0; i < parents.size(); i++) { - RelationNodeDTO pNode = new RelationNodeDTO(); - pNode.setId("p-" + i); - pNode.setText(parents.get(i)); - List<StModelDTO> groupList = modelGroup.get(parents.get(i)); - for (int j = 0; j < groupList.size(); j++) { - StModelDTO stModel = groupList.get(j); - RelationNodeDTO mNode = new RelationNodeDTO(); - mNode.setId(stModel.getId()); - mNode.setText(stModel.getModelName()); - mNode.setData(stModel); - nodes.add(mNode); - - RelationLineDTO mLine = new RelationLineDTO(); - mLine.setFrom(pNode.getId()); - mLine.setTo(mNode.getId()); - lines.add(mLine); - } - nodes.add(pNode); - - RelationLineDTO pLine = new RelationLineDTO(); - pLine.setFrom("root"); - pLine.setTo(pNode.getId()); - lines.add(pLine); - } - result.put("nodes", nodes); - result.put("lines", lines); - return result; - } -} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/impl/StModelSettingServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/impl/StModelSettingServiceImpl.java deleted file mode 100644 index 564fdfe..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/mcs/service/impl/StModelSettingServiceImpl.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.iailab.module.mcs.service.impl; - -import com.alibaba.fastjson.JSONArray; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.iailab.framework.common.service.impl.CrudServiceImpl; -import com.iailab.module.mcs.dao.StModelSettingDao; -import com.iailab.module.mcs.dto.StModelSettingDTO; -import com.iailab.module.mcs.entity.StModelSettingEntity; -import com.iailab.module.mcs.service.StModelSettingService; -import org.apache.commons.lang3.StringUtils; -import javax.annotation.Resource; -import org.springframework.stereotype.Service; -import org.springframework.util.CollectionUtils; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * @author lirm 1343021927@qq.com - * @since 1.0.0 2023-05-10 - */ -@Service -public class StModelSettingServiceImpl extends CrudServiceImpl<StModelSettingDao, StModelSettingEntity, StModelSettingDTO> - implements StModelSettingService { - - @Resource - private StModelSettingDao StModelSettingDao; - - @Override - public List<StModelSettingDTO> getAll(Map<String, Object> params) { - return StModelSettingDao.getAll(params); - } - - @Override - public QueryWrapper<StModelSettingEntity> getWrapper(Map<String, Object> params) { - String id = (String) params.get("id"); - - QueryWrapper<StModelSettingEntity> wrapper = new QueryWrapper<>(); - wrapper.eq(StringUtils.isNotBlank(id), "id", id); - - return wrapper; - } - - @Override - public void deleteByModelId(String modelId) { - StModelSettingDao.deleteByModelId(modelId); - } - - @Override - public Map<String, Object> getByModelId(String modelId) { - Map<String, Object> result = new HashMap<>(); - List<StModelSettingEntity> list = baseDao.selectList(new QueryWrapper<StModelSettingEntity>().eq("model_id", modelId)); - if (!CollectionUtils.isEmpty(list)) { - list.forEach(item -> { - if ("int".equals(item.getValueType())) { - int value = Integer.parseInt(item.getSettingValue()); - result.put(item.getSettingKey(), value); - } else if ("double".equals(item.getValueType())) { - double value = Double.parseDouble(item.getSettingValue()); - result.put(item.getSettingKey(), value); - } else if ("string".equals(item.getValueType())) { - String value = item.getSettingValue(); - result.put(item.getSettingKey(), value); - } else if ("decimalArray".equals(item.getValueType())) { - JSONArray valueArray = JSONArray.parseArray(item.getSettingValue()); - double[] value = new double[valueArray.size()]; - for(int i = 0; i < valueArray.size(); i ++) { - value[i] = Double.parseDouble(valueArray.get(i).toString()); - } - } else { - result.put(item.getSettingKey(), item.getSettingValue()); - } - }); - } - return result; - } - -} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/IAILModel.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/IAILModel.java deleted file mode 100644 index 668dafd..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/IAILModel.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.iailab.module.model; - -import java.io.Serializable; -import java.util.List; -import java.util.Map; - -public class IAILModel implements Serializable { - private static final long serialVersionUID = -4537530431274769332L; - private String className; - private String methodName; - private Class<?>[] paramsArray; - private String resultKey; - private String filePath; - private Map dataMap; - private Map settingConfigMap; - private Map loadSettingMap; - private List<String> paramNameList; - private List<String> paramPathList; - private List<String> fileBase64List; - private String version; - private String info1; - private String info2; - private String info3; - - public IAILModel() { - } - - public String getFilePath() { - return this.filePath; - } - - public void setFilePath(String filePath) { - this.filePath = filePath; - } - - public Map getDataMap() { - return this.dataMap; - } - - public void setDataMap(Map dataMap) { - this.dataMap = dataMap; - } - - public Map getSettingConfigMap() { - return this.settingConfigMap; - } - - public void setSettingConfigMap(Map settingConfigMap) { - this.settingConfigMap = settingConfigMap; - } - - public Map getLoadSettingMap() { - return this.loadSettingMap; - } - - public void setLoadSettingMap(Map loadSettingMap) { - this.loadSettingMap = loadSettingMap; - } - - public List<String> getParamNameList() { - return this.paramNameList; - } - - public void setParamNameList(List<String> paramNameList) { - this.paramNameList = paramNameList; - } - - public List<String> getParamPathList() { - return this.paramPathList; - } - - public void setParamPathList(List<String> paramPathList) { - this.paramPathList = paramPathList; - } - - public List<String> getFileBase64List() { - return this.fileBase64List; - } - - public void setFileBase64List(List<String> fileBase64List) { - this.fileBase64List = fileBase64List; - } - - public String getClassName() { - return this.className; - } - - public void setClassName(String className) { - this.className = className; - } - - public String getMethodName() { - return this.methodName; - } - - public void setMethodName(String methodName) { - this.methodName = methodName; - } - - public Class<?>[] getParamsArray() { - return this.paramsArray; - } - - public void setParamsArray(Class<?>[] paramsArray) { - this.paramsArray = paramsArray; - } - - public String getResultKey() { - return this.resultKey; - } - - public void setResultKey(String resultKey) { - this.resultKey = resultKey; - } - - public String getVersion() { - return this.version; - } - - public void setVersion(String version) { - this.version = version; - } - - public String getInfo1() { - return this.info1; - } - - public void setInfo1(String info1) { - this.info1 = info1; - } - - public String getInfo2() { - return this.info2; - } - - public void setInfo2(String info2) { - this.info2 = info2; - } - - public String getInfo3() { - return this.info3; - } - - public void setInfo3(String info3) { - this.info3 = info3; - } -} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/MdkApiImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/MdkApiImpl.java new file mode 100644 index 0000000..6a7df4f --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/MdkApiImpl.java @@ -0,0 +1,137 @@ +package com.iailab.module.model.api; + +import com.alibaba.fastjson.JSON; +import com.iailab.module.model.api.mdk.MdkApi; +import com.iailab.module.model.api.mdk.dto.*; +import com.iailab.framework.common.pojo.CommonResult; +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.mdk.predict.PredictModuleHandler; +import com.iailab.module.model.mdk.vo.ItemVO; +import com.iailab.module.model.mdk.vo.PredictResultVO; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +import javax.validation.Valid; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import static com.iailab.framework.common.pojo.CommonResult.error; +import static com.iailab.framework.common.pojo.CommonResult.success; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年08月26日 + */ +@Slf4j +@RestController +@Validated +public class MdkApiImpl implements MdkApi { + + @Autowired + private DmModuleService dmModuleService; + + @Autowired + private MmPredictItemService mmPredictItemService; + + @Autowired + private PredictModuleHandler predictModuleHandler; + + /** + * 按模块预测 + * + * @param reqDTO + * @return + */ + @Override + public CommonResult<MdkPredictModuleRespDTO> predictModule(MdkPredictReqDTO reqDTO) { + MdkPredictModuleRespDTO resp = new MdkPredictModuleRespDTO(); + Map<String, MdkPredictItemRespDTO> predictItemRespMap = new HashMap<>(); + try { + if (reqDTO.getPredictTime() == null) { + throw new Exception("PredictTime不能为空"); + } + if (reqDTO.getModuleType() == null) { + throw new Exception("ModuleType不能为空"); + } + log.info("预测参数:" + JSON.toJSONString(reqDTO)); + MdkPredictModuleRespDTO result = new MdkPredictModuleRespDTO(); + result.setPredictTime(reqDTO.getPredictTime()); + result.setModuleType(reqDTO.getModuleType()); + List<DmModuleEntity> moduleList = dmModuleService.getModuleByModuleType(reqDTO.getModuleType()); + log.info("预测计算开始: " + System.currentTimeMillis()); + for (DmModuleEntity module : moduleList) { + int intervalTime = 0; + if (module.getPredicttime() != null) { + intervalTime = (int) (reqDTO.getPredictTime().getTime() - module.getPredicttime().getTime()) / (1000 * 60); + } + List<ItemVO> predictItemList = mmPredictItemService.getByModuleId(module.getId()); + Map<String, PredictResultVO> predictResultMap = predictModuleHandler.predict(predictItemList, reqDTO.getPredictTime(), intervalTime); + for (Map.Entry<String, PredictResultVO> entry : predictResultMap.entrySet()) { + List<MdkPredictDataDTO> predictData = entry.getValue().getPredictList().stream().map(t-> { + MdkPredictDataDTO dto1 = new MdkPredictDataDTO(); + dto1.setDataTime(t.getDataTime()); + dto1.setDataValue(t.getDataValue()); + return dto1; + }).collect(Collectors.toList()); + MdkPredictItemRespDTO itemResp = new MdkPredictItemRespDTO(); + itemResp.setItemId(entry.getValue().getPredictId()); + itemResp.setPredictData(predictData); + predictItemRespMap.put(entry.getKey(), itemResp); + } + } + log.info("预测计算结束: " + System.currentTimeMillis()); + } catch (Exception ex) { + return error(999, ex.getMessage()); + } + resp.setPredictItemRespMap(predictItemRespMap); + return success(resp); + } + + /** + * 单个预测 + * + * @param reqDTO + * @return + */ + @Override + public CommonResult<MdkPredictItemRespDTO> predictItem(@Valid @RequestBody MdkPredictReqDTO reqDTO) { + MdkPredictItemRespDTO resp = new MdkPredictItemRespDTO(); + + return success(resp); + } + + /** + * 预测调整 + * + * @param reqDTO + * @return + */ + @Override + public CommonResult<Boolean> predictAutoAdjust(@Valid @RequestBody MdkPredictReqDTO reqDTO) { + + + return success(true); + } + + /** + * 执行调度模型 + * + * @param reqDTO + * @return + */ + @Override + public CommonResult<MdkScheduleRespDTO> doSchedule(@Valid @RequestBody MdkScheduleReqDTO reqDTO) { + MdkScheduleRespDTO resp = new MdkScheduleRespDTO(); + + return success(resp); + } +} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/command/MLCommand.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/command/MLCommand.java deleted file mode 100644 index 2473047..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/command/MLCommand.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.iailab.module.model.command; - -import com.iailab.module.mcs.dto.StModelDTO; -import com.iailab.module.model.sample.dto.SampleData; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import java.util.List; -import java.util.Map; - -/** - * @author PanZhibao - * @Description - * @createTime 2023年05月17日 11:50:00 - */ -@Slf4j -@Component -public class MLCommand { - - public Object[] getCommand(StModelDTO stModel, List<Object> params, Map<String, Object> settings, List<SampleData> sampleDataList) { - - int portLength = sampleDataList.size(); - Object[] paramValues = new Object[portLength + 1]; - for (int i = 0; i < portLength; i++) { - paramValues[i] = sampleDataList.get(i).getMatrix(); - } - paramValues[portLength] = settings; - return paramValues; - } - - public Object[] getCommand1(StModelDTO stModel, List<Object> params, Map<String, Object> settings, List<double[][]> sampleDataList) { - - int portLength = sampleDataList.size(); - Object[] paramValues = new Object[portLength + 1]; - for (int i = 0; i < portLength; i++) { - paramValues[i] = sampleDataList.get(i); - } - paramValues[portLength] = settings; - return paramValues; - } -} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/command/PyCommand.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/command/PyCommand.java deleted file mode 100644 index 9d65e7a..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/command/PyCommand.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.iailab.module.model.command; - -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import com.iailab.module.mcs.dto.StModelDTO; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import java.util.List; -import java.util.Map; - -/** - * @author PanZhibao - * @Description - * @createTime 2023年05月17日 11:50:00 - */ -@Slf4j -@Component -public class PyCommand { - - public String[] getCommand(StModelDTO stModel, List<Object> params, Map<String, Object> settings) { - String[] command = new String[2 + params.size() + 1]; - command[0] = "python"; - command[1] = stModel.getModelPath(); - for (int i = 0; i < params.size(); i++) { - command[2 + i] = JSONArray.toJSONString(params.get(i)); - } - command[command.length - 1] = JSONObject.toJSONString(settings).replace("\"", "'"); - return command; - } -} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/dto/RunSetDTO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/dto/RunSetDTO.java deleted file mode 100644 index 919caf0..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/dto/RunSetDTO.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.iailab.module.model.dto; - -import lombok.Data; - -import java.io.Serializable; -import java.util.List; -import java.util.Map; - -/** - * @author PanZhibao - * @Description - * @createTime 2024年06月15日 - */ -@Data -public class RunSetDTO implements Serializable { - - private static final long serialVersionUID = 1L; - - List<double[][]> dataList; - - private Map<String, Object> settings; -} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/entity/ModelEntity.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/entity/ModelEntity.java deleted file mode 100644 index da4647e..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/entity/ModelEntity.java +++ /dev/null @@ -1,122 +0,0 @@ -package com.iailab.module.model.entity; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.math.BigDecimal; - -/** - * 模型实体 - */ -@Data -@AllArgsConstructor -@NoArgsConstructor -@Builder -public class ModelEntity { - /** - * 模型ID - */ - private String id; - - /** - * 模型编号 - */ - private String modelNo; - - /** - * 模型名称 - */ - private String modelName; - - /** - * 预测项ID - */ - private String itemId; - - /** - * 算法ID - */ - private String arithId; - - /** - * 训练样本长度 - */ - private Integer trainSampleLength; - - /** - * 预测样本长度 - */ - private Integer predictSampleLength; - - /** - * 是否在线训练 - */ - private Integer isOnlineTrain; - - /** - * 模型路径 - */ - private String modelPath; - - /** - * 是否归一化 - */ - private Integer isNormal; - - /** - * 归一化后的最大值 - */ - private Double normalMax; - - /** - * 归一化后的最小值 - */ - private Double normalMin; - - /** - * 是否参与预测 - */ - private Integer status; - - /** - * 类名称 - */ - private String className; - - /** - * 方法名称 - */ - private String methodName; - - /** - * 模型构造器 - */ - private String modelParamStructure; - - /** - * 结果ID - */ - private String resultstrid; - - /** - * settingMap - */ - private String settingMap; - - /** - * 训练模型路径 - */ - private String trainModelPath; - - /** - * 模型路径状态(1:需要更换,0:不需要更换) - */ - private BigDecimal pathStatus; - - /** - * 预测阶段需要输入的数据长度 - */ - private Integer pdim; -} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/handler/ModelHandler.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/handler/ModelHandler.java deleted file mode 100644 index 45d95df..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/handler/ModelHandler.java +++ /dev/null @@ -1,360 +0,0 @@ -package com.iailab.module.model.handler; - -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.iailab.common.utils.PythonUtil; -import com.iailab.module.mcs.dto.StModelDTO; -import com.iailab.module.mcs.dto.StModelRequestLogDTO; -import com.iailab.module.mcs.dto.StModelRunlogDTO; -import com.iailab.module.mcs.service.*; -import com.iailab.module.model.IAILModel; -import com.iailab.module.model.command.MLCommand; -import com.iailab.module.model.command.PyCommand; -import com.iailab.module.model.sample.constructor.SampleConstructor; -import com.iailab.module.model.sample.dto.SampleData; -import lombok.extern.slf4j.Slf4j; -import javax.annotation.Resource; -import org.springframework.stereotype.Component; -import org.springframework.util.CollectionUtils; - -import java.util.*; - -/** - * 浮选模型处理 - * - * @author PanZhibao - * @Description - * @createTime 2023年05月16日 13:33:00 - */ -@Slf4j -@Component -public class ModelHandler { - - @Resource - private PyCommand pyCommand; - - @Resource - private MLCommand mLCommand; - - @Resource - private StModelService stModelService; - - @Resource - private StModelSettingService stModelSettingService; - - @Resource - private StModelRunlogService runlogService; - - @Resource - private StModelResultService stModelResultService; - - @Resource - private SampleConstructor sampleConstructor; - - @Resource - private StModelRequestLogService stModelRequestLogService; - - /** - * 运行模型 - * - * @param modelCode - * @param runTime - * @return - * @throws Exception - */ - public Map<String, Object> run(String modelCode, Date runTime) throws Exception { - Map<String, Object> result = new HashMap<>(); - Calendar calendar = Calendar.getInstance(); - calendar.setTime(runTime); - calendar.set(Calendar.SECOND, 0); - Date dataTime = calendar.getTime(); - try { - // 1、查找模型 - StModelDTO stModel = stModelService.getByCode(modelCode); - if (stModel == null) { - throw new Exception("modelCode错误!"); - } - - // 2、构建输入参数 - List<SampleData> sampleDataList = sampleConstructor.constructSample(stModel.getId(), dataTime); - List<Object> params = new ArrayList<>(); - if (!CollectionUtils.isEmpty(sampleDataList)) { - sampleDataList.forEach(item -> { - params.add(item.getMatrix()); - }); - } - - // 3、构建配置参数 - Map<String, Object> settings = stModelSettingService.getByModelId(stModel.getId()); - - // 4、执行算法 - log.info("################ modelCode=" + modelCode + " ###################"); - String[] command = pyCommand.getCommand(stModel, params, settings); - log.info("command=" + JSONArray.toJSONString(command)); - result = PythonUtil.execPy(command); - log.info("result=" + JSON.toJSONString(result)); - stModelResultService.addML(stModel.getId(), result, runTime); - stModelService.updateTime(stModel.getId(), runTime); - - // 6、插入运行日志 - String jsonString = dealResult(result); - this.addLog(stModel.getId(), modelCode, runTime, jsonString); - } catch (Exception ex) { - ex.printStackTrace(); - throw ex; - } - return result; - } - - public String dealResult(Map<String, Object> result) { - ObjectMapper mapper = new ObjectMapper(); - String jsonString = ""; - try { - jsonString = mapper.writeValueAsString(result); - jsonString = jsonString.replace("mv_fl_kd_307", "307分流阀开度"); - jsonString = jsonString.replace("mv_hj_water_valve_main_307", "315合介桶加水阀开度"); - jsonString = jsonString.replace("mv_xj_water_valve_307", "333稀介桶加水阀开度"); - jsonString = jsonString.replace("mv_hj_water_valve_small_307", "315合介桶密度微调阀开度"); - jsonString = jsonString.replace("mv_mn_water_valve_307", "325煤泥桶加水阀开度"); - - jsonString = jsonString.replace("mv_fl_kd_308", "308分流阀开度"); - jsonString = jsonString.replace("mv_hj_water_valve_main_308", "316合介桶加水阀开度"); - jsonString = jsonString.replace("mv_xj_water_valve_308", "332稀介桶加水阀开度"); - jsonString = jsonString.replace("mv_hj_water_valve_small_308", "316合介桶密度微调阀开度"); - jsonString = jsonString.replace("mv_mn_water_valve_308", "325煤泥桶加水阀开度"); - - jsonString = jsonString.replace("mv_valve_fl_3318", "3318分流阀开度"); - jsonString = jsonString.replace("mv_pump_hl_3318", "3308混料桶排水泵频率"); - jsonString = jsonString.replace("mv_pump_hj_3318", "3344合介桶排水泵频率"); - jsonString = jsonString.replace("mv_valve_hj_water_3318", "3344合介桶加水阀开度"); - jsonString = jsonString.replace("mv_valve_jj_3318", "3344合介桶加介阀开度"); - jsonString = jsonString.replace("mv_valve_xj_water_3318", "3348稀介桶加水阀开度"); - jsonString = jsonString.replace("mv_pump_xj_3318", "3348稀介桶排水泵频率"); - jsonString = jsonString.replace("mv_pump_mn_3318", "4402煤泥桶排水泵频率"); - jsonString = jsonString.replace("mv_valve_mn_water_3318", "4402煤泥桶加水阀开度"); - jsonString = jsonString.replace("target_md_3318", "3318目标合介密度"); - - - jsonString = jsonString.replace("mv_valve_fl_3319", "3319分流阀开度"); - jsonString = jsonString.replace("mv_pump_hl_3319", "3317混料桶排水泵频率"); - jsonString = jsonString.replace("mv_pump_hj_3319", "3345合介桶排水泵频率"); - jsonString = jsonString.replace("mv_valve_hj_water_3319", "3345合介桶加水阀开度"); - jsonString = jsonString.replace("mv_valve_jj_3319", "3345合介桶加介阀开度"); - jsonString = jsonString.replace("mv_valve_xj_water_3319", "3349稀介桶加水阀开度"); - jsonString = jsonString.replace("mv_pump_xj_3319", "3349稀介桶排水泵频率"); - jsonString = jsonString.replace("mv_pump_mn_3319", "4403煤泥桶排水泵频率"); - jsonString = jsonString.replace("mv_valve_mn_water_3319", "4403煤泥桶加水阀开度"); - jsonString = jsonString.replace("target_md_3319", "3319目标合介密度"); - - jsonString = jsonString.replace("status_first_start", "第一组风机启动信号"); - jsonString = jsonString.replace("status_first_stop", "第一组风机停止信号"); - jsonString = jsonString.replace("status_second_start", "第二组风机启动信号"); - jsonString = jsonString.replace("status_second_stop", "第二组风机停止信号"); - jsonString = jsonString.replace("mv_1_346", "346高压风机频率设定"); - jsonString = jsonString.replace("mv_1_347", "347高压风机频率设定"); - jsonString = jsonString.replace("mv_2_4454", "4454高压风机频率设定"); - - jsonString = jsonString.replace("Thickener_OF_XL", "501 浓缩池循环水池浊度预测值"); - jsonString = jsonString.replace("Thickener_BF_XL", "501浓缩池出料浓度预测值"); - jsonString = jsonString.replace("Thickener_H_XL", "501浓缩池污泥厚度预测值"); - jsonString = jsonString.replace("Dos_yin_det1_XL", "507_1加药泵频率"); - jsonString = jsonString.replace("Dos_yang_det1_XL", "508_1加药泵频率"); - jsonString = jsonString.replace("Dos_yin_det2_XL", "507_2加药泵频率"); - jsonString = jsonString.replace("Dos_yang_det2_XL", "508_2加药泵频率"); - - jsonString = jsonString.replace("Thickener_OF_QC", "浓缩池循环水池浊度预测值"); - jsonString = jsonString.replace("Thickener_BF_QC", "浓缩池出料浓度预测值"); - jsonString = jsonString.replace("Thickener_H_QC", "浓缩池污泥厚度预测值"); - jsonString = jsonString.replace("Dos_yin_det_QC", "350加药系统频率"); - jsonString = jsonString.replace("Dos_yang_det_QC", "351加药系统频率"); - - jsonString = jsonString.replace("UF_pumb1", "503底流泵启停"); - jsonString = jsonString.replace("UF_pumb2", "502底流泵启停"); - jsonString = jsonString.replace("zt4418_res", "4418启停信号"); - jsonString = jsonString.replace("zt4419_res", "4419启停信号"); - jsonString = jsonString.replace("zt4420_res", "4420启停信号"); - jsonString = jsonString.replace("zt4421_res", "4421启停信号"); - jsonString = jsonString.replace("zt4422_res", "4422启停信号"); - jsonString = jsonString.replace("zt4428_res", "4428启停信号"); - jsonString = jsonString.replace("zt4429_res", "4429启停信号"); - jsonString = jsonString.replace("zt4430_res", "4430启停信号"); - jsonString = jsonString.replace("zt4431_res", "4431启停信号"); - jsonString = jsonString.replace("zt4432_res", "4432启停信号"); - - - } catch (JsonProcessingException e) { - e.printStackTrace(); - } - return jsonString; - } - - /** - * 调用模型 - * - * @param modelCode - * @param runTime - * @param sampleDataList - * @param appKey - * @return - * @throws Exception - */ - public Map<String, Object> run(String modelCode, Date runTime, List<double[][]> sampleDataList, String appKey) throws Exception { - Map<String, Object> result = new HashMap<>(); - try { - // 1、查找模型 - StModelDTO stModel = stModelService.getByCode(modelCode); - if (stModel == null) { - throw new Exception("modelCode错误!"); - } - - // 2、构建输入参数 - List<Object> params = new ArrayList<>(); - if (!CollectionUtils.isEmpty(sampleDataList)) { - sampleDataList.forEach(item -> { - params.add(item); - }); - } - - // 3、构建配置参数 - Map<String, Object> settings = stModelSettingService.getByModelId(stModel.getId()); - - // 4、执行算法 - log.info("################ modelCode=" + modelCode + " ###################"); - String[] command = pyCommand.getCommand(stModel, params, settings); - log.info("command=" + JSONArray.toJSONString(command)); - result = PythonUtil.execPy(command); - log.info("result=" + JSON.toJSONString(result)); - - // 5、插入调用日志 - StModelRequestLogDTO logDto = new StModelRequestLogDTO(); - logDto.setModelId(stModel.getId()); - logDto.setAppKey(appKey); - logDto.setRequestTime(runTime); - logDto.setRequestParams(JSONArray.toJSONString(sampleDataList)); - logDto.setResponseResult(JSONObject.toJSONString(result)); - stModelRequestLogService.save(logDto); - } catch (Exception ex) { - ex.printStackTrace(); - throw ex; - } - return result; - } - - /** - * 调用模型 - * - * @param modelCode - * @param sampleDataList - * @return - * @throws Exception - */ - public Map<String, Object> run(String modelCode, List<double[][]> sampleDataList) throws Exception { - Map<String, Object> result = new HashMap<>(); - try { - // 1、查找模型 - StModelDTO stModel = stModelService.getByCode(modelCode); - if (stModel == null) { - throw new Exception("modelCode错误!"); - } - - // 2、构建输入参数 - List<Object> params = new ArrayList<>(); - if (!CollectionUtils.isEmpty(sampleDataList)) { - sampleDataList.forEach(item -> { - params.add(item); - }); - } - - // 3、构建配置参数 - Map<String, Object> settings = stModelSettingService.getByModelId(stModel.getId()); - - // 4、执行算法 - log.info("################ modelCode=" + modelCode + " ###################"); - String[] command = pyCommand.getCommand(stModel, params, settings); - log.info("command=" + JSONArray.toJSONString(command)); - result = PythonUtil.execPy(command); - log.info("result=" + JSON.toJSONString(result)); - - } catch (Exception ex) { - ex.printStackTrace(); - throw ex; - } - return result; - } - - /** - * 调用模型 - * - * @param modelCode - * @param sampleDataList - * @param settings - * @return - * @throws Exception - */ - public Map<String, Object> run(String modelCode, List<double[][]> sampleDataList, Map<String, Object> settings) throws Exception { - Map<String, Object> result = new HashMap<>(); - try { - // 1、查找模型 - StModelDTO stModel = stModelService.getByCode(modelCode); - if (stModel == null) { - throw new Exception("modelCode错误!"); - } - - // 2、构建输入参数 - List<Object> params = new ArrayList<>(); - if (!CollectionUtils.isEmpty(sampleDataList)) { - sampleDataList.forEach(item -> { - params.add(item); - }); - } - - // 4、执行算法 - log.info("################ modelCode=" + modelCode + " ###################"); - String[] command = pyCommand.getCommand(stModel, params, settings); - log.info("command=" + JSONArray.toJSONString(command)); - result = PythonUtil.execPy(command); - log.info("result=" + JSON.toJSONString(result)); - - } catch (Exception ex) { - ex.printStackTrace(); - throw ex; - } - return result; - } - - /** - * 构造IAILMDK.run()方法的newModelBean参数 - * - * @param stModel - * @return - */ - private IAILModel composeNewModelBean(StModelDTO stModel) { - IAILModel newModelBean = new IAILModel(); - newModelBean.setClassName(stModel.getClassName().trim()); - newModelBean.setMethodName(stModel.getMethodName().trim()); - //构造参数类型 - String[] paArStr = stModel.getParamsStructure().trim().split(","); - Class<?>[] paramsArray = new Class[paArStr.length]; - for (int i = 0; i < paArStr.length; i++) { - if ("[[D".equals(paArStr[i])) { - paramsArray[i] = double[][].class; - } else if ("Map".equals(paArStr[i]) || "java.util.HashMap".equals(paArStr[i])) { - paramsArray[i] = HashMap.class; - } - } - newModelBean.setParamsArray(paramsArray); - return newModelBean; - } - - public void addLog(String modelId, String modelCode, Date runTime, String jsonString) { - StModelRunlogDTO logDto = new StModelRunlogDTO(); - logDto.setModelid(modelId); - logDto.setRunTime(runTime); - logDto.setRunType(modelCode); - logDto.setRunResult(jsonString); - runlogService.add(logDto); - } -} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/controller/DmModuleController.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/controller/DmModuleController.java new file mode 100644 index 0000000..f20722f --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/controller/DmModuleController.java @@ -0,0 +1,93 @@ +package com.iailab.module.model.mcs.pre.controller; + +import com.iailab.framework.common.exception.ErrorCode; +import com.iailab.framework.common.pojo.CommonResult; +import com.iailab.framework.common.pojo.PageResult; +import com.iailab.framework.common.util.object.BeanUtils; +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.vo.DmModulePageReqVO; +import com.iailab.module.model.mcs.pre.vo.DmModuleRespVO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; + +import static com.iailab.framework.common.pojo.CommonResult.error; +import static com.iailab.framework.common.pojo.CommonResult.success; + +/** + * @author PanZhibao + * @date 2021年04月23日 9:05 + */ +@RestController +@RequestMapping("/pre/module") +public class DmModuleController { + + @Autowired + private DmModuleService dmModuleService; + + /** + * 管网列表 + */ + @GetMapping("/page") + public CommonResult<PageResult<DmModuleRespVO>> page(@Validated DmModulePageReqVO reqVO) { + PageResult<DmModuleEntity> page = dmModuleService.queryPage(reqVO); + + return success(BeanUtils.toBean(page, DmModuleRespVO.class)); + } + + /** + * 管网列表 + */ + @GetMapping("/list") + public CommonResult<List<DmModuleEntity>> list(@RequestParam Map<String, Object> params) { + List<DmModuleEntity> list = dmModuleService.list(params); + + return success(list); + } + + /** + * 管网信息 + */ + @GetMapping("/get") + public CommonResult<DmModuleEntity> info(@RequestParam("id") String id){ + DmModuleEntity module = dmModuleService.selectById(id); + + return success(module); + } + + /** + * 保存管网 + */ + @PostMapping("/create") + public CommonResult<Boolean> save(@RequestBody DmModuleEntity module){ + int count = dmModuleService.check(module); + if (count > 0) { + ErrorCode errorCode = new ErrorCode(999, "名称重复"); + return error(errorCode); + } + dmModuleService.saveModule(module); + return success(true); + } + + /** + * 修改管网 + */ + @PutMapping("/update") + public CommonResult<Boolean> update(@RequestBody DmModuleEntity module){ + dmModuleService.update(module); + return success(true); + } + + /** + * 删除管网 + */ + @DeleteMapping("/delete") + public CommonResult<Boolean> delete(@RequestParam("id") String id){ + dmModuleService.deleteBatch(new String[]{id}); + return success(true); + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/controller/MmItemOutputController.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/controller/MmItemOutputController.java new file mode 100644 index 0000000..2bce340 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/controller/MmItemOutputController.java @@ -0,0 +1,36 @@ +package com.iailab.module.model.mcs.pre.controller; + +import com.iailab.framework.common.pojo.CommonResult; +import com.iailab.module.model.mcs.pre.service.MmItemOutputService; +import com.iailab.module.model.mcs.pre.dto.MmItemOutputDTO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; +import java.util.Map; + +import static com.iailab.framework.common.pojo.CommonResult.success; + +/** + * @author PanZhibao + * @date 2021年07月23日 11:13 + */ +@RestController +@RequestMapping("/pre/item-output") +public class MmItemOutputController { + + @Autowired + private MmItemOutputService mmItemOutputService; + + /** + * 预测项输出列表 + */ + @GetMapping("/list/all") + public CommonResult<List<MmItemOutputDTO>> queryAll(@RequestParam Map<String, Object> params){ + List<MmItemOutputDTO> data = mmItemOutputService.queryList(params); + return success(data); + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/controller/MmItemTypeController.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/controller/MmItemTypeController.java new file mode 100644 index 0000000..527eda0 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/controller/MmItemTypeController.java @@ -0,0 +1,82 @@ +package com.iailab.module.model.mcs.pre.controller; + +import com.iailab.framework.common.pojo.CommonResult; +import com.iailab.framework.common.pojo.PageResult; +import com.iailab.framework.common.util.object.BeanUtils; +import com.iailab.module.model.mcs.pre.entity.MmItemTypeEntity; +import com.iailab.module.model.mcs.pre.service.MmItemTypeService; +import com.iailab.module.model.mcs.pre.vo.MmItemTypePageReqVO; +import com.iailab.module.model.mcs.pre.vo.MmItemTypeRespVO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import static com.iailab.framework.common.pojo.CommonResult.error; +import static com.iailab.framework.common.pojo.CommonResult.success; + +/** + * @author PanZhibao + * @date 2021年04月22日 9:57 + */ +@RestController +@RequestMapping("/pre/item-type") +public class MmItemTypeController { + + @Autowired + private MmItemTypeService mmItemTypeService; + + /** + * 预测项类型列表 + */ + @GetMapping("/page") + public CommonResult<PageResult<MmItemTypeRespVO>> page(@Validated MmItemTypePageReqVO reqVO) { + PageResult<MmItemTypeEntity> page = mmItemTypeService.page(reqVO); + + return success(BeanUtils.toBean(page, MmItemTypeRespVO.class)); + } + + /** + * 预测项类型信息 + */ + @GetMapping("/info/{id}") + public CommonResult<MmItemTypeEntity> info(@PathVariable("id") String id) { + MmItemTypeEntity itemType = mmItemTypeService.selectById(id); + + return success(itemType); + } + + /** + * 保存预测项类型 + */ + @PostMapping("/create") + public CommonResult<Boolean> save(@RequestBody MmItemTypeEntity itemType) { + int count = mmItemTypeService.check(itemType); + if (count > 0) { + return error(999,"名称重复"); + } + mmItemTypeService.saveItemType(itemType); + return success(true); + } + + /** + * 修改预测项类型 + */ + @PutMapping("/update") + public CommonResult<Boolean> update(@RequestBody MmItemTypeEntity itemType) { + int count = mmItemTypeService.check(itemType); + if (count > 0) { + return error(999,"名称重复"); + } + mmItemTypeService.update(itemType); + return success(true); + } + + /** + * 删除预测项类型 + */ + @DeleteMapping("/delete") + public CommonResult<Boolean> delete(@RequestParam("id") String id) { + mmItemTypeService.deleteBatch(new String[]{id}); + return success(true); + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/controller/MmModelResultstrController.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/controller/MmModelResultstrController.java new file mode 100644 index 0000000..3cd7b2f --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/controller/MmModelResultstrController.java @@ -0,0 +1,40 @@ +package com.iailab.module.model.mcs.pre.controller; + +import com.iailab.framework.common.pojo.CommonResult; +import com.iailab.framework.common.pojo.PageResult; +import com.iailab.framework.common.util.object.BeanUtils; +import com.iailab.module.model.mcs.pre.entity.MmModelResultstrEntity; +import com.iailab.module.model.mcs.pre.service.MmModelResultstrService; +import com.iailab.module.model.mcs.pre.vo.MmModelResultstrPageReqVO; +import com.iailab.module.model.mcs.pre.vo.MmModelResultstrRespVO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Map; + +import static com.iailab.framework.common.pojo.CommonResult.success; + +/** + * @author PanZhibao + * @date 2021年05月07日 16:53 + */ +@RestController +@RequestMapping("/pre/model-resultstr") +public class MmModelResultstrController { + + @Autowired + private MmModelResultstrService mmModelResultstrService; + + /** + * 预测项结果列表 + */ + @GetMapping("/page") + public CommonResult<PageResult<MmModelResultstrRespVO>> page(@Validated MmModelResultstrPageReqVO reqVO) { + PageResult<MmModelResultstrEntity> page = mmModelResultstrService.page(reqVO); + + return success(BeanUtils.toBean(page, MmModelResultstrRespVO.class)); + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/controller/MmPredictItemController.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/controller/MmPredictItemController.java new file mode 100644 index 0000000..c4c397e --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/controller/MmPredictItemController.java @@ -0,0 +1,113 @@ +package com.iailab.module.model.mcs.pre.controller; + +import com.iailab.framework.common.pojo.CommonResult; +import com.iailab.framework.common.pojo.PageResult; +import com.iailab.module.model.mcs.pre.dto.MmPredictItemDTO; +import com.iailab.module.model.mcs.pre.service.MmPredictItemService; +import com.iailab.module.model.mcs.pre.vo.CountItemtypeVO; +import com.iailab.module.model.mcs.pre.vo.MmPredictItemRespVO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import static com.iailab.framework.common.pojo.CommonResult.error; +import static com.iailab.framework.common.pojo.CommonResult.success; + +/** + * @author PanZhibao + * @date 2021年04月26日 14:42 + */ +@RestController +@RequestMapping("/pre/predict-item") +public class MmPredictItemController { + + @Autowired + private MmPredictItemService mmPredictItemService; + + /** + * 预测项列表 + */ + @GetMapping("/page") + public CommonResult<PageResult<MmPredictItemRespVO>> page(@RequestParam Map<String, Object> params) { + PageResult<MmPredictItemRespVO> page = mmPredictItemService.getPageList(params); + return success(page); + } + + /** + * 预测项信息 + */ + @GetMapping("/info/{id}") + public CommonResult<MmPredictItemDTO> info(@PathVariable("id") String id, @RequestParam Map<String, Object> params){ + MmPredictItemDTO predictItem = mmPredictItemService.getDetailById(id, params); + return success(predictItem); + } + + /** + * 保存预测项 + */ + @PostMapping + public CommonResult<Boolean> save(@RequestBody MmPredictItemDTO mmPredictItemDto){ + int count = mmPredictItemService.check(mmPredictItemDto.getMmPredictItem()); + if (count > 0) { + return error(999, "名称或编号重复"); + } + mmPredictItemService.savePredictItem(mmPredictItemDto); + return success(true); + } + + /** + * 修改预测项 + */ + @PutMapping + public CommonResult<Boolean> update(@RequestBody MmPredictItemDTO mmPredictItemDto){ + int count = mmPredictItemService.check(mmPredictItemDto.getMmPredictItem()); + if (count > 0) { + return error(999, "名称或编号重复"); + } + mmPredictItemService.update(mmPredictItemDto); + return success(true); + } + + /** + * 删除预测项 + */ + @DeleteMapping("{id}") + public CommonResult<Boolean> delete(@RequestBody String[] itemIds){ + if (itemIds == null || itemIds.length == 0) { + return error(999, "参数不能为空"); + } + mmPredictItemService.deleteBatch(itemIds); + return success(true); + } + + /** + * 预测项列表 + */ + @GetMapping("/count-itemtype") + public CommonResult<List<CountItemtypeVO>> countItemtype(@RequestParam Map<String, Object> params){ + List<CountItemtypeVO> list = new ArrayList<>(); + return success(list); + } + + /** + * 数量 + */ + @GetMapping("/count") + public CommonResult<Long> count() { + Long count = mmPredictItemService.count(); + return success(count); + } + + /** + * 上传模型 + */ + @PostMapping("/uploadModel") + public CommonResult<Boolean> uploadModel(@RequestParam("file") MultipartFile file) throws Exception { + + return success(true); + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/controller/MmResultTableController.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/controller/MmResultTableController.java new file mode 100644 index 0000000..b49bbdb --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/controller/MmResultTableController.java @@ -0,0 +1,79 @@ +package com.iailab.module.model.mcs.pre.controller; + +import com.iailab.framework.common.pojo.CommonResult; +import com.iailab.framework.common.pojo.PageResult; +import com.iailab.framework.common.util.object.BeanUtils; +import com.iailab.module.model.mcs.pre.entity.MmResultTableEntity; +import com.iailab.module.model.mcs.pre.service.MmResultTableService; +import com.iailab.module.model.mcs.pre.vo.MmItemTypeRespVO; +import com.iailab.module.model.mcs.pre.vo.MmResultTablePageReqVO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import static com.iailab.framework.common.pojo.CommonResult.error; +import static com.iailab.framework.common.pojo.CommonResult.success; + +/** + * @author PanZhibao + * @date 2021年04月22日 9:57 + */ +@RestController +@RequestMapping("/pre/result-table") +public class MmResultTableController { + + @Autowired + private MmResultTableService mmResultTableService; + + /** + * 结果存放列表 + */ + @GetMapping("/page") + public CommonResult<PageResult<MmItemTypeRespVO>> page(@Validated MmResultTablePageReqVO reqVO) { + PageResult<MmResultTableEntity> page = mmResultTableService.page(reqVO); + + return success(BeanUtils.toBean(page, MmItemTypeRespVO.class)); + } + + @GetMapping("/info/{id}") + public CommonResult<MmResultTableEntity> info(@PathVariable("id") String id){ + MmResultTableEntity resultTable = mmResultTableService.selectById(id); + + return success(resultTable); + } + + /** + * 保存结果存放 + */ + @PostMapping + public CommonResult<Boolean> save(@RequestBody MmResultTableEntity resultTable){ + int count = mmResultTableService.check(resultTable); + if (count > 0) { + return error(999,"名称重复"); + } + mmResultTableService.saveResultTable(resultTable); + return success(true); + } + + /** + * 修改结果存放 + */ + @PutMapping + public CommonResult<Boolean> update(@RequestBody MmResultTableEntity resultTable){ + int count = mmResultTableService.check(resultTable); + if (count > 0) { + return error(999,"名称重复"); + } + mmResultTableService.update(resultTable); + return success(true); + } + + /** + * 删除结果存放 + */ + @DeleteMapping("{id}") + public CommonResult<Boolean> delete(@RequestBody String[] ids){ + mmResultTableService.deleteBatch(ids); + return success(true); + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/DmModuleDao.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/DmModuleDao.java new file mode 100644 index 0000000..908fc69 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/DmModuleDao.java @@ -0,0 +1,22 @@ +package com.iailab.module.model.mcs.pre.dao; + +import com.iailab.framework.common.pojo.PageResult; +import com.iailab.framework.mybatis.core.mapper.BaseMapperX; +import com.iailab.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.iailab.module.model.mcs.pre.entity.DmModuleEntity; +import com.iailab.module.model.mcs.pre.vo.DmModulePageReqVO; +import org.apache.ibatis.annotations.Mapper; + +/** + * @author PanZhibao + * @date 2021年04月23日 8:30 + */ +@Mapper +public interface DmModuleDao extends BaseMapperX<DmModuleEntity> { + + default PageResult<DmModuleEntity> selectPage(DmModulePageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX<DmModuleEntity>() + .likeIfPresent(DmModuleEntity::getModulename, reqVO.getModulename()) + .orderByDesc(DmModuleEntity::getCreateTime)); + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/DmModuleItemDao.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/DmModuleItemDao.java new file mode 100644 index 0000000..92718d5 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/DmModuleItemDao.java @@ -0,0 +1,13 @@ +package com.iailab.module.model.mcs.pre.dao; + +import com.iailab.framework.mybatis.core.mapper.BaseMapperX; +import com.iailab.module.model.mcs.pre.entity.DmModuleItemEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * @author PanZhibao + * @date 2021年04月27日 8:39 + */ +@Mapper +public interface DmModuleItemDao extends BaseMapperX<DmModuleItemEntity> { +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmItemOutputDao.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmItemOutputDao.java new file mode 100644 index 0000000..9f71246 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmItemOutputDao.java @@ -0,0 +1,27 @@ +package com.iailab.module.model.mcs.pre.dao; + +import com.iailab.framework.mybatis.core.mapper.BaseMapperX; +import com.iailab.module.model.mcs.pre.entity.MmItemOutputEntity; +import com.iailab.module.model.mcs.pre.dto.MmItemOutputDTO; +import com.iailab.module.model.mdk.vo.MmItemOutputVO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + * @author PanZhibao + * @date 2021年04月27日 8:43 + */ +@Mapper +public interface MmItemOutputDao extends BaseMapperX<MmItemOutputEntity> { + + List<MmItemOutputDTO> queryList(@Param("params") Map<String, Object> params); + + List<MmItemOutputVO> getOutPutById(String outputid); + + List<MmItemOutputVO> getOutPutByItemId(String itemid); + + List<MmItemOutputVO> getOutPutByPointId(String pointid); +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmItemResultDao.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmItemResultDao.java new file mode 100644 index 0000000..ed73a00 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmItemResultDao.java @@ -0,0 +1,21 @@ +package com.iailab.module.model.mcs.pre.dao; + +import com.iailab.framework.mybatis.core.mapper.BaseMapperX; +import com.iailab.module.model.mcs.pre.entity.MmItemResultEntity; +import org.apache.ibatis.annotations.Mapper; + +import java.util.Map; + +/** + * @author PanZhibao + * @date 2021年05月28日 10:27 + */ +@Mapper +public interface MmItemResultDao extends BaseMapperX<MmItemResultEntity> { + + void deletePredictValue(Map<String, Object> params); + + void savePredictValue(Map<String, Object> params); + + void savePredictJsonValue(Map<String, Object> params); +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmItemTypeDao.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmItemTypeDao.java new file mode 100644 index 0000000..d9744f9 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmItemTypeDao.java @@ -0,0 +1,26 @@ +package com.iailab.module.model.mcs.pre.dao; + +import com.iailab.framework.common.pojo.PageResult; +import com.iailab.framework.mybatis.core.mapper.BaseMapperX; +import com.iailab.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.iailab.module.model.mcs.pre.entity.MmItemTypeEntity; +import com.iailab.module.model.mcs.pre.vo.MmItemTypePageReqVO; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * @author PanZhibao + * @date 2021年04月23日 15:23 + */ +@Mapper +public interface MmItemTypeDao extends BaseMapperX<MmItemTypeEntity> { + + default PageResult<MmItemTypeEntity> selectPage(MmItemTypePageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX<MmItemTypeEntity>() + .likeIfPresent(MmItemTypeEntity::getItemtypename, reqVO.getItemtypename()) + .orderByDesc(MmItemTypeEntity::getItemtypename)); + } + + List<MmItemTypeEntity> getItemTypeByItemId(String itemId); +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmModelArithSettingsDao.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmModelArithSettingsDao.java new file mode 100644 index 0000000..4e5da14 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmModelArithSettingsDao.java @@ -0,0 +1,31 @@ +package com.iailab.module.model.mcs.pre.dao; + +import com.iailab.framework.mybatis.core.mapper.BaseMapperX; +import com.iailab.module.model.mcs.pre.entity.MmModelArithSettingsEntity; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; +import java.util.Map; + +/** + * @author PanZhibao + * @date 2021年04月27日 8:58 + */ +@Mapper +public interface MmModelArithSettingsDao extends BaseMapperX<MmModelArithSettingsEntity> { + + /** + * getMmModelArithSettings + * + * @param params + * @return + */ + List<MmModelArithSettingsEntity> getMmModelArithSettings(Map<String, Object> params); + + /** + * insertList + * + * @param list + */ + void insertList(List<MmModelArithSettingsEntity> list); +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmModelParamDao.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmModelParamDao.java new file mode 100644 index 0000000..5c37024 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmModelParamDao.java @@ -0,0 +1,13 @@ +package com.iailab.module.model.mcs.pre.dao; + +import com.iailab.framework.mybatis.core.mapper.BaseMapperX; +import com.iailab.module.model.mcs.pre.entity.MmModelParamEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * @author PanZhibao + * @date 2021年04月27日 8:55 + */ +@Mapper +public interface MmModelParamDao extends BaseMapperX<MmModelParamEntity> { +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmModelResultstrDao.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmModelResultstrDao.java new file mode 100644 index 0000000..c0fb8ad --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmModelResultstrDao.java @@ -0,0 +1,22 @@ +package com.iailab.module.model.mcs.pre.dao; + +import com.iailab.framework.common.pojo.PageResult; +import com.iailab.framework.mybatis.core.mapper.BaseMapperX; +import com.iailab.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.iailab.module.model.mcs.pre.entity.MmModelResultstrEntity; +import com.iailab.module.model.mcs.pre.vo.MmModelResultstrPageReqVO; +import org.apache.ibatis.annotations.Mapper; + +/** + * @author PanZhibao + * @date 2021年05月07日 16:38 + */ +@Mapper +public interface MmModelResultstrDao extends BaseMapperX<MmModelResultstrEntity> { + + default PageResult<MmModelResultstrEntity> selectPage(MmModelResultstrPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX<MmModelResultstrEntity>() + .likeIfPresent(MmModelResultstrEntity::getResultstr, reqVO.getResultstr()) + .orderByDesc(MmModelResultstrEntity::getResultstr)); + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmPredictItemDao.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmPredictItemDao.java new file mode 100644 index 0000000..abfd1a0 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmPredictItemDao.java @@ -0,0 +1,39 @@ +package com.iailab.module.model.mcs.pre.dao; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.iailab.framework.common.pojo.PageResult; +import com.iailab.framework.mybatis.core.mapper.BaseMapperX; +import com.iailab.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.iailab.module.model.mcs.pre.entity.MmPredictItemEntity; +import com.iailab.module.model.mcs.pre.entity.MmPredictItemEntity; +import com.iailab.module.model.mcs.pre.vo.MmPredictItemPageReqVO; +import com.iailab.module.model.mcs.pre.vo.MmPredictItemRespVO; +import com.iailab.module.model.mdk.vo.ItemVO; +import com.iailab.module.model.mdk.vo.MergeItemVO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + * @author PanZhibao + * @date 2021年04月26日 11:35 + */ +@Mapper +public interface MmPredictItemDao extends BaseMapperX<MmPredictItemEntity> { + + /** + * 查询列表 + * + * @param params + * @return + */ + IPage<MmPredictItemRespVO> getPageList(IPage<MmPredictItemEntity> page, @Param("params") Map<String, Object> params); + + List<ItemVO> getByModuleId(Map<String, Object> params); + + List<ItemVO> getItem(Map<String, Object> params); + + List<MergeItemVO> getMergeItemByItemId(Map<String, Object> params); +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmPredictMergeItemDao.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmPredictMergeItemDao.java new file mode 100644 index 0000000..09f9f9f --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmPredictMergeItemDao.java @@ -0,0 +1,13 @@ +package com.iailab.module.model.mcs.pre.dao; + +import com.iailab.framework.common.dao.BaseDao; +import com.iailab.module.model.mcs.pre.entity.MmPredictMergeItemEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * @author PanZhibao + * @date 2021年04月27日 8:50 + */ +@Mapper +public interface MmPredictMergeItemDao extends BaseDao<MmPredictMergeItemEntity> { +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmPredictModelDao.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmPredictModelDao.java new file mode 100644 index 0000000..041d69c --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmPredictModelDao.java @@ -0,0 +1,22 @@ +package com.iailab.module.model.mcs.pre.dao; + +import com.iailab.framework.mybatis.core.mapper.BaseMapperX; +import com.iailab.module.model.mcs.pre.entity.MmPredictModelEntity; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; +import java.util.Map; + +/** + * @author PanZhibao + * @date 2021年04月27日 11:29 + */ +@Mapper +public interface MmPredictModelDao extends BaseMapperX<MmPredictModelEntity> { + + List<MmPredictModelEntity> getNoSettingmapPredictModel(Map<String, Object> params); + + List<MmPredictModelEntity> getActiveModelByItemId(String itemId); + + List<MmPredictModelEntity> getSampleLength(String modelId); +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmResultTableDao.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmResultTableDao.java new file mode 100644 index 0000000..42e4803 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmResultTableDao.java @@ -0,0 +1,23 @@ +package com.iailab.module.model.mcs.pre.dao; + +import com.iailab.framework.common.pojo.PageResult; +import com.iailab.framework.mybatis.core.mapper.BaseMapperX; +import com.iailab.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.iailab.module.model.mcs.pre.entity.MmResultTableEntity; +import com.iailab.module.model.mcs.pre.entity.MmResultTableEntity; +import com.iailab.module.model.mcs.pre.vo.MmResultTablePageReqVO; +import org.apache.ibatis.annotations.Mapper; + +/** + * @author PanZhibao + * @date 2021年04月23日 16:20 + */ +@Mapper +public interface MmResultTableDao extends BaseMapperX<MmResultTableEntity> { + + default PageResult<MmResultTableEntity> selectPage(MmResultTablePageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX<MmResultTableEntity>() + .likeIfPresent(MmResultTableEntity::getTablename, reqVO.getTablename()) + .orderByDesc(MmResultTableEntity::getTablename)); + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/SequenceNumDao.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/SequenceNumDao.java new file mode 100644 index 0000000..8369277 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/SequenceNumDao.java @@ -0,0 +1,13 @@ +package com.iailab.module.model.mcs.pre.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.iailab.module.model.mcs.pre.entity.SequenceNumEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * @author PanZhibao + * @date 2021年05月06日 13:07 + */ +@Mapper +public interface SequenceNumDao extends BaseMapper<SequenceNumEntity> { +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dto/MmItemOutputDTO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dto/MmItemOutputDTO.java new file mode 100644 index 0000000..e290357 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dto/MmItemOutputDTO.java @@ -0,0 +1,40 @@ +package com.iailab.module.model.mcs.pre.dto; + +import lombok.Data; + +/** + * @author PanZhibao + * @date 2021年07月23日 10:13 + */ +@Data +public class MmItemOutputDTO { + /** + * 主键 + */ + private String id; + + /** + * 预测项ID + */ + private String itemid; + + /** + * 数据点ID + */ + private String pointid; + + /** + * 存放表ID + */ + private String resulttableid; + + /** + * 数据点名称 + */ + private String tagname; + + /** + * 预测项名称 + */ + private String itemname; +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dto/MmPredictItemDTO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dto/MmPredictItemDTO.java new file mode 100644 index 0000000..221c13a --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dto/MmPredictItemDTO.java @@ -0,0 +1,32 @@ +package com.iailab.module.model.mcs.pre.dto; + +import com.iailab.module.model.mcs.pre.entity.*; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @author PanZhibao + * @date 2021年04月26日 16:27 + */ +@Data +public class MmPredictItemDTO implements Serializable { + private static final long serialVersionUID = 1L; + + private MmPredictItemEntity mmPredictItem; + + private DmModuleItemEntity dmModuleItem; + + private MmItemOutputEntity mmItemOutput; + + private MmPredictModelEntity mmPredictModel; + + private MmPredictMergeItemEntity mmPredictMergeItem; + + private List<MmModelArithSettingsEntity> mmModelArithSettingsList; + + private List<MmModelParamEntity> mmModelParamList; + + private List<MmItemResultEntity> mmItemResultList; +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/DmModuleEntity.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/DmModuleEntity.java new file mode 100644 index 0000000..1544124 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/DmModuleEntity.java @@ -0,0 +1,74 @@ +package com.iailab.module.model.mcs.pre.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + * @author PanZhibao + * @date 2021年04月22日 18:00 + */ +@Data +@TableName("T_DM_MODULE") +public class DmModuleEntity implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id",type = IdType.INPUT) + private String id; + + /** + * 名称 + */ + @NotBlank(message="名称不能为空") + private String modulename; + + /** + * 类型 + */ + @NotBlank(message="类型") + private String moduletype; + + /** + * 周期 + */ + @NotNull(message="周期") + private BigDecimal cycle; + + /** + * 模块配置 + */ + private String modulenavconfig; + + /** + * 预测时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8") + private Date predicttime; + + /** + * 收集时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8") + private Date collecttime; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 更新时间 + */ + private Date updateTime; +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/DmModuleItemEntity.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/DmModuleItemEntity.java new file mode 100644 index 0000000..2b0c22b --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/DmModuleItemEntity.java @@ -0,0 +1,53 @@ +package com.iailab.module.model.mcs.pre.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +/** + * @author PanZhibao + * @date 2021年04月25日 16:00 + */ +@Data +@TableName("T_DM_MODULE_ITEM") +public class DmModuleItemEntity implements Serializable { + /** + * 主键 + */ + @TableId(value = "id",type = IdType.INPUT) + private String id; + + /** + * 管网ID + */ + @NotBlank(message="管网ID不能为空") + private String moduleid; + + /** + * 预测项ID + */ + private String itemid; + + /** + * 排序 + */ + @NotNull(message="排序不能为空不能为空") + private Integer itemorder; + + /** + * 是否启用 + */ + @NotNull(message="是否启用不能为空") + private Integer status; + + /** + * 类别ID + */ + @NotBlank(message="类别ID不能为空") + private String categoryid; +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmItemOutputEntity.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmItemOutputEntity.java new file mode 100644 index 0000000..e8d2bbd --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmItemOutputEntity.java @@ -0,0 +1,52 @@ +package com.iailab.module.model.mcs.pre.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * @author PanZhibao + * @date 2021年04月25日 16:23 + */ +@Data +@TableName("T_MM_ITEM_OUTPUT") +public class MmItemOutputEntity implements Serializable { + /** + * 主键 + */ + @TableId(value = "id",type = IdType.INPUT) + private String id; + + /** + * 预测项ID + */ + private String itemid; + + /** + * 数据点ID + */ + @NotBlank(message="数据点ID不能为空") + private String pointid; + + /** + * 存放表ID + */ + @NotBlank(message="存放表ID不能为空") + private String resulttableid; + + /** + * 数据点名称 + */ + @NotBlank(message="数据点名称不能为空") + private String tagname; + + /** + * 排序(默认值1) + */ + private BigDecimal outputorder; +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmItemResultEntity.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmItemResultEntity.java new file mode 100644 index 0000000..2953562 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmItemResultEntity.java @@ -0,0 +1,39 @@ +package com.iailab.module.model.mcs.pre.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + * @author PanZhibao + * @date 2021年05月28日 10:18 + */ +@Data +@TableName("T_MM_ITEM_RESULT") +public class MmItemResultEntity implements Serializable { + /** + * 主键 + */ + @TableId(value = "id",type = IdType.INPUT) + private String id; + + /** + * 输出ID + */ + private String outputid; + + /** + * 预测时间 + */ + private Date datatime; + + /** + * 预测值 + */ + private BigDecimal datavalue; +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmItemResultJsonEntity.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmItemResultJsonEntity.java new file mode 100644 index 0000000..2509a5c --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmItemResultJsonEntity.java @@ -0,0 +1,30 @@ +package com.iailab.module.model.mcs.pre.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月02日 + */ +@Data +@TableName("T_MM_ITEM_RESULT") +public class MmItemResultJsonEntity implements Serializable { + + @TableId(value = "id",type = IdType.INPUT) + private String id; + + private String outputid; + + private Date predicttime; + + private String jsonvalue; + + private String cumulant; +} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmItemTypeEntity.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmItemTypeEntity.java new file mode 100644 index 0000000..25e8b22 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmItemTypeEntity.java @@ -0,0 +1,43 @@ +package com.iailab.module.model.mcs.pre.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +/** + * @author PanZhibao + * @date 2021年04月23日 15:17 + */ +@Data +@TableName("T_MM_ITEM_TYPE") +public class MmItemTypeEntity implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id",type = IdType.INPUT) + private String id; + + /** + * 名称 + */ + @NotBlank(message="名称不能为空") + private String itemtypename; + + /** + * 类名 + */ + @NotNull(message="类名不能为空") + private String itemclasstype; + + /** + * 程序集 + */ + private String assemblyname; +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmModelArithSettingsEntity.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmModelArithSettingsEntity.java new file mode 100644 index 0000000..6f0a923 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmModelArithSettingsEntity.java @@ -0,0 +1,55 @@ +package com.iailab.module.model.mcs.pre.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @author PanZhibao + * @date 2021年04月25日 17:29 + */ +@Data +@TableName("T_MM_MODEL_ARITH_SETTINGS") +public class MmModelArithSettingsEntity implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id",type = IdType.INPUT) + private String id; + + /** + * 模型ID + */ + @NotBlank(message="模型ID不能为空") + private String modelid; + + /** + * 键 + */ + @NotBlank(message="键不能为空") + private String key; + + /** + * 值 + */ + @NotBlank(message="值不能为空") + private String value; + + /** + * 名称 + */ + @NotBlank(message="名称不能为空") + private String name; + + /** + * 类型 + */ + @NotBlank(message="类型不能为空") + private String valuetype; +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmModelParamEntity.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmModelParamEntity.java new file mode 100644 index 0000000..90f9f43 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmModelParamEntity.java @@ -0,0 +1,68 @@ +package com.iailab.module.model.mcs.pre.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +/** + * @author PanZhibao + * @date 2021年04月25日 17:47 + */ +@Data +@TableName("T_MM_MODEL_PARAM") +public class MmModelParamEntity implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id",type = IdType.INPUT) + private String id; + + /** + * 模型ID + */ + @NotBlank(message="模型ID不能为空") + private String modelid; + + /** + * 参数名称 + */ + @NotBlank(message="参数名称不能为空") + private String modelparamname; + + /** + * 参数ID + */ + @NotBlank(message="参数ID不能为空") + private String modelparamid; + + /** + * 序号 + */ + @NotBlank(message="序号不能为空") + private Integer modelparamorder; + + /** + * 端口 + */ + @NotBlank(message="端口不能为空") + private Integer modelparamportorder; + + /** + * 参数长度 + */ + @NotNull(message="参数不能为空") + private Integer datalength; + + /** + * 参数类型 + */ + @NotBlank(message="参数类型不能为空") + private String modelparamtype; +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmModelResultstrEntity.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmModelResultstrEntity.java new file mode 100644 index 0000000..57e3b72 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmModelResultstrEntity.java @@ -0,0 +1,29 @@ +package com.iailab.module.model.mcs.pre.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; + +/** + * @author PanZhibao + * @date 2021年05月07日 16:36 + */ +@Data +@TableName("T_MM_MODEL_RESULTSTR") +public class MmModelResultstrEntity implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id",type = IdType.INPUT) + private String id; + + /** + * 结果 + */ + private String resultstr; +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmPredictItemEntity.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmPredictItemEntity.java new file mode 100644 index 0000000..885b96c --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmPredictItemEntity.java @@ -0,0 +1,99 @@ +package com.iailab.module.model.mcs.pre.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + * @author PanZhibao + * @date 2021年04月25日 15:05 + */ +@Data +@TableName("T_MM_PREDICT_ITEM") +public class MmPredictItemEntity implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id",type = IdType.INPUT) + private String id; + + /** + * 编号 + */ + private String itemno; + + /** + * 预测项名 + */ + @NotBlank(message="预测项名不能为空") + private String itemname; + + /** + * 计算类型 + */ + private String caltypeid; + + /** + * 类型 + */ + @NotBlank(message="类型不能为空") + private String itemtypeid; + + /** + * 预测长度 + */ + private BigDecimal predictlength; + + /** + * 粒度 + */ + private BigDecimal granularity; + + /** + * 是否启用 + */ + private BigDecimal status; + + /** + * isfuse + */ + private BigDecimal isfuse; + + /** + * predictphase + */ + private BigDecimal predictphase; + + /** + * 是否检查 + */ + private BigDecimal workchecked; + + /** + * unittransfactor + */ + private BigDecimal unittransfactor; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 更新时间 + */ + private Date updateTime; + + /** + * 保留的预测点位 (T+2 则n=2, T+30则n=30, T+n则表示从最后点位开始,n=预测长度;n由系统配置得出) + */ + private String saveindex; +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmPredictMergeItemEntity.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmPredictMergeItemEntity.java new file mode 100644 index 0000000..619e29b --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmPredictMergeItemEntity.java @@ -0,0 +1,41 @@ +package com.iailab.module.model.mcs.pre.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @author PanZhibao + * @date 2021年04月26日 8:33 + */ +@Data +@TableName("T_MM_PREDICT_MERGE_ITEM") +public class MmPredictMergeItemEntity implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id",type = IdType.INPUT) + private String id; + + /** + * 预测项ID + */ + private String itemid; + + /** + * 表达式 + */ + @NotBlank(message="表达式不能为空") + private String expression; + + /** + * num + */ + private Integer num; +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmPredictModelEntity.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmPredictModelEntity.java new file mode 100644 index 0000000..c182564 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmPredictModelEntity.java @@ -0,0 +1,130 @@ +package com.iailab.module.model.mcs.pre.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * @author PanZhibao + * @date 2021年04月25日 16:36 + */ +@Data +@TableName("T_MM_PREDICT_MODEL") +public class MmPredictModelEntity implements Serializable { + /** + * 主键 + */ + @TableId(value = "id",type = IdType.INPUT) + private String id; + + /** + * 编号 + */ + private String modelno; + + /** + * 模型名称 + */ + @NotBlank(message="模型名称不能为空") + private String modelname; + + /** + * 预测项ID + */ + private String itemid; + + /** + * arithid + */ + private String arithid; + + /** + * trainsamplength + */ + private BigDecimal trainsamplength; + + /** + * predictsamplength + */ + private BigDecimal predictsamplength; + + /** + * isonlinetrain + */ + private BigDecimal isonlinetrain; + + /** + * 模型路径 + */ + @NotBlank(message="模型路径不能为空") + private String modelpath; + + /** + * isnormal + */ + private BigDecimal isnormal; + + /** + * normalmax + */ + private BigDecimal normalmax; + + /** + * normalmin + */ + private BigDecimal normalmin; + + /** + * status + */ + private BigDecimal status; + + /** + * 类名 + */ + @NotBlank(message="类名不能为空") + private String classname; + + /** + * 方法名 + */ + @NotBlank(message="方法名不能为空") + private String methodname; + + /** + * 参数 + */ + @NotBlank(message="参数不能为空") + private String modelparamstructure; + + /** + * 结果 + */ + @NotBlank(message="结果不能为空") + private String resultstrid; + + /** + * 模型设置 + */ + private String settingmap; + + /** + * 训练模型路径 + */ + private String trainmodelpath; + + /** + * 路径状态 + */ + private BigDecimal pathstatus; + + /** + * 预测阶段需要输入的数据长度 + */ + private Integer pdim; +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmResultTableEntity.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmResultTableEntity.java new file mode 100644 index 0000000..002d6b4 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/MmResultTableEntity.java @@ -0,0 +1,31 @@ +package com.iailab.module.model.mcs.pre.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @author PanZhibao + * @date 2021年04月23日 16:16 + */ +@Data +@TableName("T_MM_RESULT_TABLE") +public class MmResultTableEntity implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id",type = IdType.INPUT) + private String id; + + /** + * 表名 + */ + @NotBlank(message="表名不能为空") + private String tablename; +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/SequenceNumEntity.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/SequenceNumEntity.java new file mode 100644 index 0000000..92c3d99 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/entity/SequenceNumEntity.java @@ -0,0 +1,48 @@ +package com.iailab.module.model.mcs.pre.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @author PanZhibao + * @date 2021年05月06日 12:00 + */ +@Data +@TableName("T_SEQUENCE_NUM") +public class SequenceNumEntity implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id",type = IdType.INPUT) + private String id; + + /** + * 编号 + */ + @NotBlank(message="编号不能为空") + private String code; + + /** + * 名称 + */ + @NotBlank(message="名称不能为空") + private String name; + + /** + * 序号 + */ + @NotBlank(message="序号不能为空") + private Integer sequenceNum; + + /** + * 前缀 + */ + private String prefix; +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/enums/ItemIncreaseCodeEnum.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/enums/ItemIncreaseCodeEnum.java new file mode 100644 index 0000000..bddb2da --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/enums/ItemIncreaseCodeEnum.java @@ -0,0 +1,10 @@ +package com.iailab.module.model.mcs.pre.enums; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年01月02日 16:19:00 + */ +public enum ItemIncreaseCodeEnum { + PRE_MDL, CM, IC, IM +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/enums/ItemStatus.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/enums/ItemStatus.java new file mode 100644 index 0000000..a79dad0 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/enums/ItemStatus.java @@ -0,0 +1,32 @@ +package com.iailab.module.model.mcs.pre.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月01日 + */ +@Getter +@AllArgsConstructor +public enum ItemStatus { + STATUS0(0, "禁用"), + STATUS1(0, "启用"); + + private Integer code; + private String desc; + + public static ItemStatus getEumByCode(Integer code) { + if (code == null) { + return null; + } + + for (ItemStatus statusEnum : ItemStatus.values()) { + if (statusEnum.getCode().equals(code)) { + return statusEnum; + } + } + return null; + } +} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/enums/ItemTypeEnum.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/enums/ItemTypeEnum.java new file mode 100644 index 0000000..8c9b3bd --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/enums/ItemTypeEnum.java @@ -0,0 +1,24 @@ +package com.iailab.module.model.mcs.pre.enums; + +/** + * @author PanZhibao + * @date 2021年04月26日 17:20 + */ +public enum ItemTypeEnum { + + NORMAL_ITEM("NormalItem"),MERGE_ITEM("MergeItem"),STEAMSP_ITEM("SteamSpItem"); + + private String name; + + ItemTypeEnum(String name){ + this.name = name; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/DmModuleItemService.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/DmModuleItemService.java new file mode 100644 index 0000000..9c486ee --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/DmModuleItemService.java @@ -0,0 +1,15 @@ +package com.iailab.module.model.mcs.pre.service; + +import com.iailab.framework.common.service.BaseService; +import com.iailab.module.model.mcs.pre.entity.DmModuleItemEntity; + +/** + * @author PanZhibao + * @date 2021年04月27日 9:11 + */ +public interface DmModuleItemService extends BaseService<DmModuleItemEntity> { + + void saveModuleItem(DmModuleItemEntity moduleItem); + + void update(DmModuleItemEntity moduleItem); +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/DmModuleService.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/DmModuleService.java new file mode 100644 index 0000000..361d4a0 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/DmModuleService.java @@ -0,0 +1,31 @@ +package com.iailab.module.model.mcs.pre.service; + +import com.iailab.framework.common.page.PageData; +import com.iailab.framework.common.pojo.PageResult; +import com.iailab.framework.common.service.BaseService; +import com.iailab.module.model.mcs.pre.entity.DmModuleEntity; +import com.iailab.module.model.mcs.pre.vo.DmModulePageReqVO; + +import java.util.List; +import java.util.Map; + +/** + * @author PanZhibao + * @date 2021年04月23日 8:35 + */ +public interface DmModuleService extends BaseService<DmModuleEntity> { + + void saveModule(DmModuleEntity module); + + void update(DmModuleEntity module); + + void deleteBatch(String[] module); + + int check(DmModuleEntity module); + + PageResult<DmModuleEntity> queryPage(DmModulePageReqVO reqVO); + + List<DmModuleEntity> list(Map<String, Object> params); + + List<DmModuleEntity> getModuleByModuleType(String moduletype); +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmItemOutputService.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmItemOutputService.java new file mode 100644 index 0000000..d6ed981 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmItemOutputService.java @@ -0,0 +1,30 @@ +package com.iailab.module.model.mcs.pre.service; + +import com.iailab.framework.common.service.BaseService; +import com.iailab.module.model.mcs.pre.entity.MmItemOutputEntity; +import com.iailab.module.model.mcs.pre.dto.MmItemOutputDTO; +import com.iailab.module.model.mdk.vo.MmItemOutputVO; + +import java.util.List; +import java.util.Map; + +/** + * @author PanZhibao + * @date 2021年04月27日 9:13 + */ +public interface MmItemOutputService extends BaseService<MmItemOutputEntity> { + + void saveMmItemOutput(MmItemOutputEntity mmItemOutput); + + void update(MmItemOutputEntity mmItemOutput); + + List<MmItemOutputDTO> queryList(Map<String, Object> params); + + MmItemOutputVO getOutPutById(String outputid); + + List<MmItemOutputVO> getOutPutByItemId(String itemid); + + List<MmItemOutputVO> getOutPutByPointId(String pointid); + + MmItemOutputEntity getByItemid(String itemid); +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmItemResultService.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmItemResultService.java new file mode 100644 index 0000000..a5d28b6 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmItemResultService.java @@ -0,0 +1,22 @@ +package com.iailab.module.model.mcs.pre.service; + +import com.iailab.module.data.api.point.dto.ApiPointDTO; +import com.iailab.module.model.mcs.pre.entity.MmItemResultEntity; +import com.iailab.module.model.mdk.vo.DataValueVO; + +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * @author PanZhibao + * @date 2021年05月28日 10:34 + */ +public interface MmItemResultService { + + List<MmItemResultEntity> getListByOutputId(String outputid, Map<String, Object> params); + + void savePredictValue(Map<String, List<DataValueVO>> predictValueMap, int t, String nIndex, Date predictTime); + + List<DataValueVO> getPredictValue(String outputid, Date startTime, Date endTime); +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmItemTypeService.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmItemTypeService.java new file mode 100644 index 0000000..ec6c900 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmItemTypeService.java @@ -0,0 +1,27 @@ +package com.iailab.module.model.mcs.pre.service; + +import com.iailab.framework.common.pojo.PageResult; +import com.iailab.framework.common.service.BaseService; +import com.iailab.module.model.mcs.pre.entity.MmItemTypeEntity; +import com.iailab.module.model.mcs.pre.vo.MmItemTypePageReqVO; + +import java.util.Map; + +/** + * @author PanZhibao + * @date 2021年04月23日 15:27 + */ +public interface MmItemTypeService extends BaseService<MmItemTypeEntity> { + + void saveItemType(MmItemTypeEntity module); + + void update(MmItemTypeEntity module); + + void deleteBatch(String[] module); + + int check(MmItemTypeEntity module); + + PageResult<MmItemTypeEntity> page(MmItemTypePageReqVO reqVO); + + MmItemTypeEntity getItemTypeByItemId(String itemId); +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmModelArithSettingsService.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmModelArithSettingsService.java new file mode 100644 index 0000000..ea9734b --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmModelArithSettingsService.java @@ -0,0 +1,17 @@ +package com.iailab.module.model.mcs.pre.service; + +import com.iailab.framework.common.service.BaseService; +import com.iailab.module.model.mcs.pre.entity.MmModelArithSettingsEntity; + +import java.util.List; + +/** + * @author PanZhibao + * @date 2021年04月27日 9:06 + */ +public interface MmModelArithSettingsService extends BaseService<MmModelArithSettingsEntity> { + + void saveList(List<MmModelArithSettingsEntity> list); + + List<MmModelArithSettingsEntity> getByModelId(String modelId); +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmModelParamService.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmModelParamService.java new file mode 100644 index 0000000..5a2fb5d --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmModelParamService.java @@ -0,0 +1,17 @@ +package com.iailab.module.model.mcs.pre.service; + +import com.iailab.framework.common.service.BaseService; +import com.iailab.module.model.mcs.pre.entity.MmModelParamEntity; + +import java.util.List; + +/** + * @author PanZhibao + * @date 2021年04月27日 9:09 + */ +public interface MmModelParamService extends BaseService<MmModelParamEntity> { + + void saveList(List<MmModelParamEntity> list); + + List<MmModelParamEntity> getByModelid(String modelid); +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmModelResultstrService.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmModelResultstrService.java new file mode 100644 index 0000000..9207065 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmModelResultstrService.java @@ -0,0 +1,20 @@ +package com.iailab.module.model.mcs.pre.service; + +import com.iailab.framework.common.page.PageData; +import com.iailab.framework.common.pojo.PageResult; +import com.iailab.framework.common.service.BaseService; +import com.iailab.module.model.mcs.pre.entity.MmModelResultstrEntity; +import com.iailab.module.model.mcs.pre.vo.MmModelResultstrPageReqVO; + +import java.util.Map; + +/** + * @author PanZhibao + * @date 2021年05月07日 16:42 + */ +public interface MmModelResultstrService extends BaseService<MmModelResultstrEntity> { + + PageResult<MmModelResultstrEntity> page(MmModelResultstrPageReqVO reqVO); + + MmModelResultstrEntity getInfo(String id); +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmPredictItemService.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmPredictItemService.java new file mode 100644 index 0000000..718600f --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmPredictItemService.java @@ -0,0 +1,46 @@ +package com.iailab.module.model.mcs.pre.service; + +import com.iailab.framework.common.page.PageData; +import com.iailab.framework.common.pojo.PageResult; +import com.iailab.framework.common.service.BaseService; +import com.iailab.module.model.mcs.pre.dto.MmPredictItemDTO; +import com.iailab.module.model.mcs.pre.entity.MmPredictItemEntity; +import com.iailab.module.model.mcs.pre.vo.MmPredictItemRespVO; +import com.iailab.module.model.mdk.vo.ItemVO; +import com.iailab.module.model.mdk.vo.MergeItemVO; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.List; +import java.util.Map; + +/** + * @author PanZhibao + * @date 2021年04月26日 13:57 + */ +public interface MmPredictItemService extends BaseService<MmPredictItemEntity> { + + void savePredictItem(MmPredictItemDTO mmPredictItemDto); + + void update(MmPredictItemDTO mmPredictItemDto); + + void deleteBatch(String[] itemIds); + + MmPredictItemDTO getDetailById(String id, Map<String, Object> params); + + boolean exportItemResult(HttpServletResponse response, HttpServletRequest request, String id, Map<String, Object> params); + + int check(MmPredictItemEntity mmPredictItem); + + PageResult<MmPredictItemRespVO> getPageList(Map<String, Object> params); + + Long count(); + + List<ItemVO> getByModuleId(String moduleId); + + ItemVO getItemByItemNo(String itemNo); + + ItemVO getItemById(String itemId); + + MergeItemVO getMergeItemByItemId(String itemId); +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmPredictMergeItemService.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmPredictMergeItemService.java new file mode 100644 index 0000000..0825a59 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmPredictMergeItemService.java @@ -0,0 +1,15 @@ +package com.iailab.module.model.mcs.pre.service; + +import com.iailab.framework.common.service.BaseService; +import com.iailab.module.model.mcs.pre.entity.MmPredictMergeItemEntity; + +/** + * @author PanZhibao + * @date 2021年04月27日 9:00 + */ +public interface MmPredictMergeItemService extends BaseService<MmPredictMergeItemEntity> { + + void savePredictMergeItem(MmPredictMergeItemEntity resultTable); + + void update(MmPredictMergeItemEntity resultTable); +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmPredictModelService.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmPredictModelService.java new file mode 100644 index 0000000..a4055c0 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmPredictModelService.java @@ -0,0 +1,27 @@ +package com.iailab.module.model.mcs.pre.service; + +import com.iailab.framework.common.service.BaseService; +import com.iailab.module.model.mcs.pre.entity.MmPredictModelEntity; + +import java.math.BigDecimal; +import java.util.List; +import java.util.Map; + +/** + * @author PanZhibao + * @date 2021年04月27日 11:26 + */ +public interface MmPredictModelService extends BaseService<MmPredictModelEntity> { + + void savePredictModel(MmPredictModelEntity predictModel); + + void update(MmPredictModelEntity predictModel); + + MmPredictModelEntity getInfo(String id); + + BigDecimal getSampleLength(String id); + + List<MmPredictModelEntity> getNoSettingmapPredictModel(Map<String, Object> params); + + List<MmPredictModelEntity> getActiveModelByItemId(String itemId); +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmResultTableService.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmResultTableService.java new file mode 100644 index 0000000..2b14706 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/MmResultTableService.java @@ -0,0 +1,25 @@ +package com.iailab.module.model.mcs.pre.service; + +import com.iailab.framework.common.pojo.PageResult; +import com.iailab.framework.common.service.BaseService; +import com.iailab.module.model.mcs.pre.entity.MmResultTableEntity; +import com.iailab.module.model.mcs.pre.vo.MmResultTablePageReqVO; + +import java.util.Map; + +/** + * @author PanZhibao + * @date 2021年04月23日 16:25 + */ +public interface MmResultTableService extends BaseService<MmResultTableEntity> { + void saveResultTable(MmResultTableEntity resultTable); + + void update(MmResultTableEntity resultTable); + + void deleteBatch(String[] resultTableIds); + + int check(MmResultTableEntity resultTable); + + PageResult<MmResultTableEntity> page(MmResultTablePageReqVO reqVO); + +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/SequenceNumService.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/SequenceNumService.java new file mode 100644 index 0000000..3ed0fab --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/SequenceNumService.java @@ -0,0 +1,13 @@ +package com.iailab.module.model.mcs.pre.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.iailab.module.model.mcs.pre.entity.SequenceNumEntity; + +/** + * @author PanZhibao + * @date 2021年05月06日 13:15 + */ +public interface SequenceNumService extends IService<SequenceNumEntity> { + + SequenceNumEntity getAndIncreaseByCode(String code); +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/DmModuleItemServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/DmModuleItemServiceImpl.java new file mode 100644 index 0000000..90073a4 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/DmModuleItemServiceImpl.java @@ -0,0 +1,42 @@ +package com.iailab.module.model.mcs.pre.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.iailab.framework.common.service.impl.BaseServiceImpl; +import com.iailab.module.model.mcs.pre.dao.DmModuleItemDao; +import com.iailab.module.model.mcs.pre.entity.DmModuleItemEntity; +import com.iailab.module.model.mcs.pre.service.DmModuleItemService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; + +import java.util.List; +import java.util.UUID; + +/** + * @author PanZhibao + * @date 2021年04月27日 9:20 + */ +@Service("dmModuleItemService") +public class DmModuleItemServiceImpl extends BaseServiceImpl<DmModuleItemDao, DmModuleItemEntity> implements DmModuleItemService { + + @Override + @Transactional(rollbackFor = Exception.class) + public void saveModuleItem(DmModuleItemEntity moduleItem) { + moduleItem.setId(UUID.randomUUID().toString()); + baseDao.insert(moduleItem); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(DmModuleItemEntity moduleItem) { + baseDao.updateById(moduleItem); + } + + public DmModuleItemEntity getByItemid(String itemid) { + List<DmModuleItemEntity> list = baseDao.selectList(new QueryWrapper<DmModuleItemEntity>().in("itemid", itemid)); + if (CollectionUtils.isEmpty(list)) { + return new DmModuleItemEntity(); + } + return list.get(0); + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/DmModuleServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/DmModuleServiceImpl.java new file mode 100644 index 0000000..cefe08a --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/DmModuleServiceImpl.java @@ -0,0 +1,95 @@ +package com.iailab.module.model.mcs.pre.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.iailab.framework.common.page.PageData; +import com.iailab.framework.common.pojo.PageResult; +import com.iailab.framework.common.service.impl.BaseServiceImpl; +import com.iailab.module.model.mcs.pre.dao.DmModuleDao; +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.vo.DmModulePageReqVO; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; + +/** + * @author PanZhibao + * @date 2021年04月23日 8:36 + */ +@Service("dmModuleService") +public class DmModuleServiceImpl extends BaseServiceImpl<DmModuleDao, DmModuleEntity> implements DmModuleService { + + @Override + public PageResult<DmModuleEntity> queryPage(DmModulePageReqVO reqVO) { + return baseDao.selectPage(reqVO); + } + + @Override + public List<DmModuleEntity> list(Map<String, Object> params) { + QueryWrapper<DmModuleEntity> wrapper = getWrapper(params); + wrapper.orderByDesc("CREATE_TIME"); + return baseDao.selectList(wrapper); + } + + private QueryWrapper<DmModuleEntity> getWrapper(Map<String, Object> params) { + String modulename = (String) params.get("modulename"); + String moduletype = (String) params.get("moduletype"); + + QueryWrapper<DmModuleEntity> wrapper = new QueryWrapper<>(); + wrapper.like(StringUtils.isNotBlank(modulename), "modulename", modulename) + .eq(StringUtils.isNotBlank(moduletype), "moduletype", moduletype); + + return wrapper; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void saveModule(DmModuleEntity module) { + module.setId(UUID.randomUUID().toString()); + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.SECOND, 0); + calendar.set(Calendar.MILLISECOND, 0); + module.setPredicttime(calendar.getTime()); + module.setCollecttime(calendar.getTime()); + module.setUpdateTime(new Date()); + baseDao.insert(module); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(DmModuleEntity module) { + module.setUpdateTime(new Date()); + baseDao.updateById(module); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteBatch(String[] moduleIds) { + baseDao.deleteBatchIds(Arrays.asList(moduleIds)); + } + + @Override + public List<DmModuleEntity> getModuleByModuleType(String moduletype) { + Map<String, Object> params = new HashMap<>(1); + params.put("moduletype", moduletype); + QueryWrapper<DmModuleEntity> wrapper = getWrapper(params); + return baseDao.selectList(wrapper); + + } + + @Override + public int check(DmModuleEntity module) { + String id = module.getId(); + String modulename = module.getModulename(); + QueryWrapper<DmModuleEntity> moduleWrapper = new QueryWrapper<>(); + moduleWrapper.ne(StringUtils.isNotBlank(id), "id", id); + moduleWrapper.and(wrapper -> wrapper.eq("modulename", modulename)); + + List<DmModuleEntity> list = baseDao.selectList(moduleWrapper); + return list.size(); + } + +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmItemOutputServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmItemOutputServiceImpl.java new file mode 100644 index 0000000..4868760 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmItemOutputServiceImpl.java @@ -0,0 +1,78 @@ +package com.iailab.module.model.mcs.pre.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.iailab.framework.common.service.impl.BaseServiceImpl; +import com.iailab.module.model.mcs.pre.dao.MmItemOutputDao; +import com.iailab.module.model.mcs.pre.entity.MmItemOutputEntity; +import com.iailab.module.model.mcs.pre.service.MmItemOutputService; +import com.iailab.module.model.mcs.pre.dto.MmItemOutputDTO; +import com.iailab.module.model.mdk.vo.MmItemOutputVO; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; + +import java.util.List; +import java.util.Map; +import java.util.UUID; + +/** + * @author PanZhibao + * @date 2021年04月27日 9:22 + */ +@Service("mmItemOutputService") +public class MmItemOutputServiceImpl extends BaseServiceImpl<MmItemOutputDao, MmItemOutputEntity> implements MmItemOutputService { + + @Override + @Transactional(rollbackFor = Exception.class) + public void saveMmItemOutput(MmItemOutputEntity mmItemOutput) { + mmItemOutput.setId(UUID.randomUUID().toString()); + baseDao.insert(mmItemOutput); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(MmItemOutputEntity mmItemOutput) { + this.updateById(mmItemOutput); + } + + public void deleteBatch(String[] itemIds) { + QueryWrapper<MmItemOutputEntity> queryWrapper = new QueryWrapper<MmItemOutputEntity>(); + queryWrapper.in("itemid", itemIds); + baseDao.delete(queryWrapper); + } + + @Override + public MmItemOutputEntity getByItemid(String itemid) { + QueryWrapper<MmItemOutputEntity> queryWrapper = new QueryWrapper<MmItemOutputEntity>(); + queryWrapper.eq("itemid", itemid); + List<MmItemOutputEntity> list = baseDao.selectList(queryWrapper); + if (CollectionUtils.isEmpty(list)) { + return new MmItemOutputEntity(); + } + return list.get(0); + } + + @Override + public List<MmItemOutputDTO> queryList(Map<String, Object> params) { + return baseDao.queryList(params); + } + + @Override + public MmItemOutputVO getOutPutById(String outputid) { + List<MmItemOutputVO> list = baseDao.getOutPutById(outputid); + if (CollectionUtils.isEmpty(list)) { + return null; + } + return list.get(0); + } + + @Override + public List<MmItemOutputVO> getOutPutByItemId(String itemid) { + return baseDao.getOutPutByItemId(itemid); + } + + @Override + public List<MmItemOutputVO> getOutPutByPointId(String pointid) { + return baseDao.getOutPutByPointId(pointid); + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmItemResultServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmItemResultServiceImpl.java new file mode 100644 index 0000000..0465a2d --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmItemResultServiceImpl.java @@ -0,0 +1,170 @@ +package com.iailab.module.model.mcs.pre.service.impl; + +import com.alibaba.fastjson.JSONArray; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.iailab.framework.common.service.impl.BaseServiceImpl; +import com.iailab.module.data.api.point.dto.ApiPointDTO; +import com.iailab.module.model.mcs.pre.dao.MmItemResultDao; +import com.iailab.module.model.mcs.pre.entity.MmItemOutputEntity; +import com.iailab.module.model.mcs.pre.entity.MmItemResultEntity; +import com.iailab.module.model.mcs.pre.entity.MmItemResultJsonEntity; +import com.iailab.module.model.mcs.pre.service.MmItemOutputService; +import com.iailab.module.model.mcs.pre.service.MmItemResultService; +import com.iailab.module.model.mdk.vo.DataValueVO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.math.BigDecimal; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.stream.Collectors; + +/** + * @author PanZhibao + * @date 2021年05月28日 10:34 + */ +@Service("mmItemResultService") +public class MmItemResultServiceImpl extends BaseServiceImpl<MmItemResultDao, MmItemResultEntity> + implements MmItemResultService { + + private final int max_group_count = 100; + + private final String T_MM_ITEM_RESULT = "T_MM_ITEM_RESULT"; + + @Autowired + private MmItemOutputService mmItemOutputService; + + @Override + public List<MmItemResultEntity> getListByOutputId(String outputid, Map<String, Object> params) { + + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Date startDateParam = null; + try { + startDateParam = sdf.parse((String)params.get("startTime")); + } catch (ParseException e) { + e.printStackTrace(); + } + Date endDateParam = null; + try { + endDateParam = sdf.parse((String)params.get("endTime")); + } catch (ParseException e) { + e.printStackTrace(); + } + + List<MmItemResultEntity> list = baseDao.selectList( + new QueryWrapper<MmItemResultEntity>() + .eq("outputid", outputid) + .between("datatime", startDateParam, endDateParam) + .orderByAsc("datatime") + ); + return list; + } + + @Override + public void savePredictValue(Map<String, List<DataValueVO>> predictValueMap, int t, String nIndex, Date predictTime) { + List<MmItemResultEntity> importList = new ArrayList<>(); + List<MmItemResultEntity> lastList = new ArrayList<>(); + for (Map.Entry<String, List<DataValueVO>> entry : predictValueMap.entrySet()) { + for (DataValueVO dataVo : entry.getValue()) { + MmItemResultEntity importData = new MmItemResultEntity(); + importData.setId(String.valueOf(UUID.randomUUID())); + importData.setOutputid(entry.getKey()); + importData.setDatatime(dataVo.getDataTime()); + importData.setDatavalue(new BigDecimal(dataVo.getDataValue())); + importList.add(importData); + } + + List<DataValueVO> lastVoList = new ArrayList<>(); + int size = entry.getValue().size(); + t = t > 0 ? t : 0; + int n = "n".equals(nIndex) ? size : Integer.parseInt(nIndex); + int length = (n - t) > 0 ? (n - t) : 0; //预测完不变的数据长度 + if (size >= n) { + for (int i = 0; i < (size - length); i ++) { + int index = length + i; + lastVoList.add(entry.getValue().get(index)); + } + } else { + lastVoList = entry.getValue(); + } + + for (DataValueVO dataVo : lastVoList) { + MmItemResultEntity importData = new MmItemResultEntity(); + importData.setId(String.valueOf(UUID.randomUUID())); + importData.setOutputid(entry.getKey()); + importData.setDatatime(dataVo.getDataTime()); + importData.setDatavalue(new BigDecimal(dataVo.getDataValue())); + lastList.add(importData); + } + + MmItemResultJsonEntity resultJson = new MmItemResultJsonEntity(); + resultJson.setId(UUID.randomUUID().toString()); + resultJson.setOutputid(entry.getKey()); + resultJson.setPredicttime(predictTime); + resultJson.setJsonvalue(JSONArray.toJSONString(entry.getValue())); + Map<String, Object> map4 = new HashMap(2); + map4.put("TABLENAME", "T_MM_ITEM_RESULT_JSON"); + map4.put("entity", resultJson); + baseDao.savePredictJsonValue(map4); + } + + Map<String, Object> params = new HashMap(4); + params.put("TABLENAME", T_MM_ITEM_RESULT); + params.put("OUTPUTID", importList.get(0).getOutputid()); + params.put("STARTTIME", importList.get(0).getDatatime()); + params.put("ENDTIME", importList.get(importList.size() - 1).getDatatime()); + baseDao.deletePredictValue(params); + + int num1 = importList.size() / max_group_count; + int num2 = importList.size() % max_group_count; + if (num2 != 0) { + num1++; + } + + List<MmItemResultEntity> tempList; + //先删除已经存在的数据,再插入新数据 + for (int i = 0; i < num1; i++) { + int startIndex = max_group_count * i; + int count = max_group_count; + if (num2!=0 && i == num1 - 1) { + count = num2; + } + tempList = new ArrayList<>(); + //获取某个索引范围内的对象集合 + for (int j = startIndex; j < startIndex + count; j++) { + tempList.add(importList.get(j)); + } + Map<String, Object> map2 = new HashMap<>(2); + map2.put("TABLENAME", T_MM_ITEM_RESULT); + map2.put("list", tempList); + baseDao.savePredictValue(map2); + } + + Map<String, Object> map3 = new HashMap<>(2); + map3.put("TABLENAME", "T_MM_ITEM_RESULT_LAST_POINT"); + map3.put("list", lastList); + baseDao.savePredictValue(map3); + } + + @Override + public List<DataValueVO> getPredictValue(String outputid, Date startTime, Date endTime) { + List<DataValueVO> result = new ArrayList<>(); + QueryWrapper<MmItemResultEntity> queryWrapper = new QueryWrapper<MmItemResultEntity>() + .eq("outputid", outputid) + .between("datatime", startTime, endTime) + .orderByAsc("datatime"); + List<MmItemResultEntity> list = baseDao.selectList(queryWrapper); + if (CollectionUtils.isEmpty(list)) { + return result; + } + result = list.stream().map(t -> { + DataValueVO dv = new DataValueVO(); + dv.setDataTime(t.getDatatime()); + dv.setDataValue(t.getDatavalue().doubleValue()); + return dv; + }).collect(Collectors.toList()); + return result; + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmItemTypeImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmItemTypeImpl.java new file mode 100644 index 0000000..17344d5 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmItemTypeImpl.java @@ -0,0 +1,84 @@ +package com.iailab.module.model.mcs.pre.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.iailab.framework.common.pojo.PageResult; +import com.iailab.framework.common.service.impl.BaseServiceImpl; +import com.iailab.framework.common.util.collection.CollectionUtils; +import com.iailab.module.model.mcs.pre.dao.MmItemTypeDao; +import com.iailab.module.model.mcs.pre.entity.MmItemTypeEntity; +import com.iailab.module.model.mcs.pre.service.MmItemTypeService; +import com.iailab.module.model.mcs.pre.vo.MmItemTypePageReqVO; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.UUID; + +/** + * @author PanZhibao + * @date 2021年04月23日 15:29 + */ +@Service("mmItemTypeService") +public class MmItemTypeImpl extends BaseServiceImpl<MmItemTypeDao, MmItemTypeEntity> implements MmItemTypeService { + + @Override + public PageResult<MmItemTypeEntity> page(MmItemTypePageReqVO reqVO) { + return baseDao.selectPage(reqVO); + } + + private QueryWrapper<MmItemTypeEntity> getWrapper(Map<String, Object> params) { + String itemtypename = (String)params.get("itemtypename"); + + QueryWrapper<MmItemTypeEntity> wrapper = new QueryWrapper<>(); + wrapper.like(StringUtils.isNotBlank(itemtypename),"itemtypename", itemtypename); + + return wrapper; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void saveItemType(MmItemTypeEntity itemType) { + itemType.setId(UUID.randomUUID().toString()); + baseDao.insert(itemType); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(MmItemTypeEntity itemType) { + baseDao.updateById(itemType); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteBatch(String[] moduleIds) { + baseDao.deleteBatchIds(Arrays.asList(moduleIds)); + } + + @Override + public int check(MmItemTypeEntity itemType) { + String id = itemType.getId(); + String itemtypename = itemType.getItemtypename(); + QueryWrapper<MmItemTypeEntity> moduleWrapper = new QueryWrapper<>(); + moduleWrapper.ne(StringUtils.isNotBlank(id), "id", id); + moduleWrapper.and(wrapper -> wrapper.eq("itemtypename",itemtypename)); + List<MmItemTypeEntity> list = baseDao.selectList(moduleWrapper); + return list.size(); + } + + public MmItemTypeEntity getById(String itemtypeid) { + MmItemTypeEntity entity = baseDao.selectById(itemtypeid); + return entity; + } + + @Override + public MmItemTypeEntity getItemTypeByItemId(String itemId) { + List<MmItemTypeEntity> list = baseDao.getItemTypeByItemId(itemId); + if (CollectionUtils.isAnyEmpty(list)) { + return null; + } + return list.get(0); + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmModelArithSettingsServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmModelArithSettingsServiceImpl.java new file mode 100644 index 0000000..fff6acd --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmModelArithSettingsServiceImpl.java @@ -0,0 +1,49 @@ +package com.iailab.module.model.mcs.pre.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.iailab.framework.common.service.impl.BaseServiceImpl; +import com.iailab.module.model.mcs.pre.dao.MmModelArithSettingsDao; +import com.iailab.module.model.mcs.pre.entity.MmModelArithSettingsEntity; +import com.iailab.module.model.mcs.pre.service.MmModelArithSettingsService; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.*; + +/** + * @author PanZhibao + * @date 2021年04月27日 9:24 + */ +@Service +public class MmModelArithSettingsServiceImpl extends BaseServiceImpl<MmModelArithSettingsDao, MmModelArithSettingsEntity> + implements MmModelArithSettingsService { + + @Override + public void saveList(List<MmModelArithSettingsEntity> list) { + QueryWrapper<MmModelArithSettingsEntity> queryWrapper = new QueryWrapper(); + queryWrapper.eq("modelid", list.get(0).getModelid()); + baseDao.delete(queryWrapper); + list.forEach(item -> { + item.setId(UUID.randomUUID().toString()); + }); + baseDao.insertList(list); + } + + public List<MmModelArithSettingsEntity> getByModelid(String modelid) { + Map<String, Object> params = new HashMap<>(1); + params.put("modelid", modelid); + List<MmModelArithSettingsEntity> list = baseDao.getMmModelArithSettings(params); + + if (CollectionUtils.isEmpty(list)) { + return new ArrayList<>(); + } + return list; + } + + @Override + public List<MmModelArithSettingsEntity> getByModelId(String modelId) { + QueryWrapper<MmModelArithSettingsEntity> queryWrapper = new QueryWrapper(); + queryWrapper.eq("modelid", modelId); + return baseDao.selectList(queryWrapper); + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmModelParamServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmModelParamServiceImpl.java new file mode 100644 index 0000000..cea16cc --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmModelParamServiceImpl.java @@ -0,0 +1,45 @@ +package com.iailab.module.model.mcs.pre.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.iailab.framework.common.service.impl.BaseServiceImpl; +import com.iailab.module.model.mcs.pre.dao.MmModelParamDao; +import com.iailab.module.model.mcs.pre.entity.MmModelParamEntity; +import com.iailab.module.model.mcs.pre.service.MmModelParamService; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +/** + * @author PanZhibao + * @date 2021年04月27日 9:25 + */ +@Service("mmModelParamService") +public class MmModelParamServiceImpl extends BaseServiceImpl<MmModelParamDao, MmModelParamEntity> implements MmModelParamService { + + @Override + public void saveList(List<MmModelParamEntity> list) { + QueryWrapper<MmModelParamEntity> queryWrapper = new QueryWrapper(); + queryWrapper.eq("modelid", list.get(0).getModelid()); + baseDao.delete(queryWrapper); + list.forEach(item -> { + item.setId(UUID.randomUUID().toString()); + baseDao.insert(item); + }); + } + + @Override + public List<MmModelParamEntity> getByModelid(String modelid) { + QueryWrapper<MmModelParamEntity> queryWrapper = new QueryWrapper(); + queryWrapper.eq("modelid", modelid); + queryWrapper.orderByAsc("MODELPARAMPORTORDER"); + queryWrapper.orderByAsc("MODELPARAMORDER"); + List<MmModelParamEntity> list = baseDao.selectList(queryWrapper); + if (CollectionUtils.isEmpty(list)) { + return new ArrayList<>(); + } + return list; + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmModelResultstrServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmModelResultstrServiceImpl.java new file mode 100644 index 0000000..339defd --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmModelResultstrServiceImpl.java @@ -0,0 +1,29 @@ +package com.iailab.module.model.mcs.pre.service.impl; + +import com.iailab.framework.common.pojo.PageResult; +import com.iailab.framework.common.service.impl.BaseServiceImpl; +import com.iailab.module.model.mcs.pre.dao.MmModelResultstrDao; +import com.iailab.module.model.mcs.pre.entity.MmModelResultstrEntity; +import com.iailab.module.model.mcs.pre.service.MmModelResultstrService; +import com.iailab.module.model.mcs.pre.vo.MmModelResultstrPageReqVO; +import org.springframework.stereotype.Service; + +/** + * @author PanZhibao + * @date 2021年05月07日 16:43 + */ +@Service("mmModelResultstrService") +public class MmModelResultstrServiceImpl extends BaseServiceImpl<MmModelResultstrDao, MmModelResultstrEntity> + implements MmModelResultstrService { + + @Override + public PageResult<MmModelResultstrEntity> page(MmModelResultstrPageReqVO reqVO) { + return baseDao.selectPage(reqVO); + } + + @Override + public MmModelResultstrEntity getInfo(String id) { + return baseDao.selectById(id); + + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmPredictItemServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmPredictItemServiceImpl.java new file mode 100644 index 0000000..810f29d --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmPredictItemServiceImpl.java @@ -0,0 +1,264 @@ +package com.iailab.module.model.mcs.pre.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.iailab.framework.common.page.PageData; +import com.iailab.framework.common.pojo.PageResult; +import com.iailab.framework.common.service.impl.BaseServiceImpl; +import com.iailab.module.model.mcs.pre.dao.MmPredictItemDao; +import com.iailab.module.model.mcs.pre.dto.MmPredictItemDTO; +import com.iailab.module.model.mcs.pre.entity.*; +import com.iailab.module.model.mcs.pre.enums.ItemIncreaseCodeEnum; +import com.iailab.module.model.mcs.pre.enums.ItemTypeEnum; +import com.iailab.module.model.mcs.pre.service.MmPredictItemService; +import com.iailab.module.model.mcs.pre.service.SequenceNumService; +import com.iailab.module.model.mcs.pre.vo.MmPredictItemRespVO; +import com.iailab.module.model.mdk.vo.ItemVO; +import com.iailab.module.model.mdk.vo.MergeItemVO; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.text.SimpleDateFormat; +import java.util.*; + +/** + * @author PanZhibao + * @date 2021年04月26日 14:03 + */ +@Service("mmPredictItemService") +public class MmPredictItemServiceImpl extends BaseServiceImpl<MmPredictItemDao, MmPredictItemEntity> implements MmPredictItemService { + + @Autowired + private DmModuleItemServiceImpl dmModuleItemService; + + @Autowired + private MmItemOutputServiceImpl mmItemOutputService; + + @Autowired + private MmPredictModelServiceImpl mmPredictModelService; + + @Autowired + private MmModelArithSettingsServiceImpl mmModelArithSettingsService; + + @Autowired + private MmModelParamServiceImpl mmModelParamService; + + @Autowired + private MmPredictMergeItemServiceImpl mmPredictMergeItemService; + + @Autowired + private MmItemTypeImpl mmItemTypeImpl; + + @Autowired + private SequenceNumService sequenceNumService; + + @Override + public PageResult<MmPredictItemRespVO> getPageList(Map<String, Object> params) { + PageResult<MmPredictItemRespVO> result = new PageResult(); + IPage<MmPredictItemRespVO> page = baseDao.getPageList( + getPage(params, "CREATE_TIME", false), + params + ); + result.setList(page.getRecords()); + result.setTotal(page.getTotal()); + return result; + } + + private QueryWrapper<MmPredictItemEntity> getWrapper(Map<String, Object> params) { + QueryWrapper<MmPredictItemEntity> wrapper = new QueryWrapper<>(); + return wrapper; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void savePredictItem(MmPredictItemDTO mmPredictItemDto) { + MmPredictItemEntity predictItem = mmPredictItemDto.getMmPredictItem(); + predictItem.setId(UUID.randomUUID().toString()); + predictItem.setCreateTime(new Date()); + predictItem.setUpdateTime(new Date()); + + MmItemTypeEntity itemType = mmItemTypeImpl.getById(predictItem.getItemtypeid()); + if (ItemTypeEnum.NORMAL_ITEM.getName().equals(itemType.getItemtypename())) { + SequenceNumEntity sequenceNumEntity = sequenceNumService.getAndIncreaseByCode(ItemIncreaseCodeEnum.IM.toString()); + String str = String.format("%010d", sequenceNumEntity.getSequenceNum()); + predictItem.setItemno(sequenceNumEntity.getPrefix() + str); + + MmPredictModelEntity mmPredictModel = mmPredictItemDto.getMmPredictModel(); + SequenceNumEntity preMdlSequenceNumEntity = sequenceNumService.getAndIncreaseByCode(ItemIncreaseCodeEnum.PRE_MDL.toString()); + String preMdlStr = String.format("%04d", preMdlSequenceNumEntity.getSequenceNum()); + mmPredictModel.setModelno(preMdlSequenceNumEntity.getPrefix() + preMdlStr); + mmPredictModel.setItemid(predictItem.getId()); + mmPredictModelService.savePredictModel(mmPredictModel); + + List<MmModelArithSettingsEntity> mmModelArithSettingsList = mmPredictItemDto.getMmModelArithSettingsList(); + mmModelArithSettingsList.forEach(item -> { + item.setModelid(mmPredictModel.getId()); + }); + mmModelArithSettingsService.saveList(mmModelArithSettingsList); + + List<MmModelParamEntity> mmModelParamList = mmPredictItemDto.getMmModelParamList(); + mmModelParamList.forEach(item -> { + item.setModelid(mmPredictModel.getId()); + }); + mmModelParamService.saveList(mmModelParamList); + } else if (ItemTypeEnum.MERGE_ITEM.getName().equals(itemType.getItemtypename())) { + SequenceNumEntity sequenceNumEntity = sequenceNumService.getAndIncreaseByCode(ItemIncreaseCodeEnum.IC.toString()); + String str = String.format("%010d", sequenceNumEntity.getSequenceNum()); + predictItem.setItemno(sequenceNumEntity.getPrefix() + str); + + MmPredictMergeItemEntity mMmPredictMergeItem = mmPredictItemDto.getMmPredictMergeItem(); + mMmPredictMergeItem.setItemid(predictItem.getId()); + mmPredictMergeItemService.savePredictMergeItem(mMmPredictMergeItem); + } + insert(predictItem); + DmModuleItemEntity dmModuleItem = mmPredictItemDto.getDmModuleItem(); + dmModuleItem.setItemid(predictItem.getId()); + dmModuleItemService.saveModuleItem(dmModuleItem); + + MmItemOutputEntity mmItemOutput = mmPredictItemDto.getMmItemOutput(); + mmItemOutput.setItemid(predictItem.getId()); + mmItemOutputService.saveMmItemOutput(mmItemOutput); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(MmPredictItemDTO mmPredictItemDto) { + MmPredictItemEntity predictItem = mmPredictItemDto.getMmPredictItem(); + predictItem.setUpdateTime(new Date()); + this.updateById(predictItem); + MmItemTypeEntity itemType = mmItemTypeImpl.getById(predictItem.getItemtypeid()); + if (ItemTypeEnum.NORMAL_ITEM.getName().equals(itemType.getItemtypename())) { + MmPredictModelEntity mmPredictModel = mmPredictItemDto.getMmPredictModel(); + mmPredictModelService.update(mmPredictModel); + + List<MmModelArithSettingsEntity> mmModelArithSettingsList = mmPredictItemDto.getMmModelArithSettingsList(); + mmModelArithSettingsList.forEach(item -> { + item.setModelid(mmPredictModel.getId()); + }); + mmModelArithSettingsService.saveList(mmModelArithSettingsList); + + List<MmModelParamEntity> mmModelParamList = mmPredictItemDto.getMmModelParamList(); + mmModelParamList.forEach(item -> { + item.setModelid(mmPredictModel.getId()); + }); + mmModelParamService.saveList(mmModelParamList); + } else if (ItemTypeEnum.MERGE_ITEM.getName().equals(itemType.getItemtypename())) { + MmPredictMergeItemEntity mMmPredictMergeItem = mmPredictItemDto.getMmPredictMergeItem(); + mmPredictMergeItemService.update(mMmPredictMergeItem); + } + DmModuleItemEntity dmModuleItem = mmPredictItemDto.getDmModuleItem(); + dmModuleItemService.update(dmModuleItem); + + MmItemOutputEntity mmItemOutput = mmPredictItemDto.getMmItemOutput(); + mmItemOutputService.update(mmItemOutput); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteBatch(String[] itemIds) { + deleteBatchIds(Arrays.asList(itemIds)); + mmPredictMergeItemService.deleteBatch(itemIds); + mmPredictModelService.deleteBatch(itemIds); + mmItemOutputService.deleteBatch(itemIds); + } + + @Override + public MmPredictItemDTO getDetailById(String id, Map<String, Object> params) { + MmPredictItemDTO mmPredictItemDto = new MmPredictItemDTO(); + MmPredictItemEntity predictItem = selectById(id); + mmPredictItemDto.setMmPredictItem(predictItem); + mmPredictItemDto.setDmModuleItem(dmModuleItemService.getByItemid(id)); + mmPredictItemDto.setMmItemOutput(mmItemOutputService.getByItemid(id)); + MmItemTypeEntity itemType = mmItemTypeImpl.getById(predictItem.getItemtypeid()); + if (ItemTypeEnum.NORMAL_ITEM.getName().equals(itemType.getItemtypename())) { + MmPredictModelEntity mmPredictModel = mmPredictModelService.getByItemid(id); + mmPredictItemDto.setMmPredictModel(mmPredictModel); + mmPredictItemDto.setMmModelArithSettingsList(mmModelArithSettingsService.getByModelid(mmPredictModel.getId())); + mmPredictItemDto.setMmModelParamList(mmModelParamService.getByModelid(mmPredictModel.getId())); + } else if (ItemTypeEnum.MERGE_ITEM.getName().equals(itemType.getItemtypename())) { + mmPredictItemDto.setMmPredictMergeItem(mmPredictMergeItemService.getByItemid(id)); + } + + return mmPredictItemDto; + } + + @Override + public boolean exportItemResult(HttpServletResponse response, HttpServletRequest request, String id, Map<String, Object> params) { + //MmPredictItemDTO mmPredictItemDto = this.getPredictValuesById(id, params); + //List<MmItemResultEntity> itemResultList = mmPredictItemDto.getMmItemResultList(); + + return true; + } + + @Override + public int check(MmPredictItemEntity mmPredictItem) { + String id = mmPredictItem.getId(); + String itemname = mmPredictItem.getItemname(); + String itemno = mmPredictItem.getItemno(); + QueryWrapper<MmPredictItemEntity> queryWrapper = new QueryWrapper<>(); + queryWrapper.ne(StringUtils.isNotBlank(id), "id", id); + queryWrapper.and(wrapper -> wrapper.eq("itemname", itemname).or().eq("itemno", itemno)); + List<MmPredictItemEntity> list = baseDao.selectList(queryWrapper); + return list.size(); + } + + @Override + public Long count() { + QueryWrapper<MmPredictItemEntity> queryWrapper = new QueryWrapper<>(); + return baseDao.selectCount(queryWrapper); + } + + @Override + public List<ItemVO> getByModuleId(String moduleId) { + Map<String, Object> params = new HashMap<>(); + + return baseDao.getByModuleId(params); + } + + @Override + public ItemVO getItemByItemNo(String itemNo) { + if (StringUtils.isBlank(itemNo)) { + return null; + } + Map<String, Object> params = new HashMap(1); + params.put("ITEMNO", itemNo); + List<ItemVO> list = baseDao.getItem(params); + if (CollectionUtils.isEmpty(list)) { + return null; + } + return list.get(0); + } + + @Override + public ItemVO getItemById(String itemId) { + if (StringUtils.isBlank(itemId)) { + return null; + } + Map<String, Object> params = new HashMap(1); + params.put("ITEMID", itemId); + List<ItemVO> list = baseDao.getItem(params); + if (CollectionUtils.isEmpty(list)) { + return null; + } + return list.get(0); + } + + @Override + public MergeItemVO getMergeItemByItemId(String itemId) { + if (StringUtils.isBlank(itemId)) { + return null; + } + Map<String, Object> params = new HashMap(1); + params.put("ITEMID", itemId); + List<MergeItemVO> list = baseDao.getMergeItemByItemId(params); + if (CollectionUtils.isEmpty(list)) { + return null; + } + return list.get(0); + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmPredictMergeItemServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmPredictMergeItemServiceImpl.java new file mode 100644 index 0000000..8e03ef2 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmPredictMergeItemServiceImpl.java @@ -0,0 +1,47 @@ +package com.iailab.module.model.mcs.pre.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.iailab.framework.common.service.impl.BaseServiceImpl; +import com.iailab.module.model.mcs.pre.dao.MmPredictMergeItemDao; +import com.iailab.module.model.mcs.pre.entity.MmPredictMergeItemEntity; +import com.iailab.module.model.mcs.pre.service.MmPredictMergeItemService; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.List; +import java.util.UUID; + +/** + * @author PanZhibao + * @date 2021年04月27日 9:27 + */ +@Service("mmPredictMergeItemService") +public class MmPredictMergeItemServiceImpl extends BaseServiceImpl<MmPredictMergeItemDao, MmPredictMergeItemEntity> implements MmPredictMergeItemService { + + @Override + public void savePredictMergeItem(MmPredictMergeItemEntity predictMergeItem) { + predictMergeItem.setId(UUID.randomUUID().toString()); + baseDao.insert(predictMergeItem); + } + + @Override + public void update(MmPredictMergeItemEntity predictMergeItem) { + this.updateById(predictMergeItem); + } + + public void deleteBatch(String[] itemIds) { + QueryWrapper queryWrapper = new QueryWrapper<MmPredictMergeItemEntity>(); + queryWrapper.in("itemid", itemIds); + baseDao.delete(queryWrapper); + } + + public MmPredictMergeItemEntity getByItemid(String itemid) { + QueryWrapper queryWrapper = new QueryWrapper<MmPredictMergeItemEntity>(); + queryWrapper.eq("itemid", itemid); + List<MmPredictMergeItemEntity> list = baseDao.selectList(queryWrapper); + if (CollectionUtils.isEmpty(list)) { + return new MmPredictMergeItemEntity(); + } + return list.get(0); + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmPredictModelServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmPredictModelServiceImpl.java new file mode 100644 index 0000000..eb61a05 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmPredictModelServiceImpl.java @@ -0,0 +1,76 @@ +package com.iailab.module.model.mcs.pre.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.iailab.framework.common.service.impl.BaseServiceImpl; +import com.iailab.module.model.mcs.pre.dao.MmPredictModelDao; +import com.iailab.module.model.mcs.pre.entity.MmPredictModelEntity; +import com.iailab.module.model.mcs.pre.service.MmPredictModelService; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.math.BigDecimal; +import java.util.List; +import java.util.Map; +import java.util.UUID; + +/** + * @author PanZhibao + * @date 2021年04月27日 11:30 + */ +@Service("mmPredictModelService") +public class MmPredictModelServiceImpl extends BaseServiceImpl<MmPredictModelDao, MmPredictModelEntity> implements MmPredictModelService { + + @Override + public void savePredictModel(MmPredictModelEntity predictModel) { + predictModel.setId(UUID.randomUUID().toString()); + baseDao.insert(predictModel); + } + + @Override + public void update(MmPredictModelEntity predictModel) { + this.updateById(predictModel); + } + + @Override + public MmPredictModelEntity getInfo(String id) { + return baseDao.selectById(id); + } + + @Override + public BigDecimal getSampleLength(String id) { + BigDecimal result = BigDecimal.ZERO; + List<MmPredictModelEntity> list = baseDao.getSampleLength(id); + if (CollectionUtils.isEmpty(list)) { + return result; + } + result = list.get(0).getPredictsamplength(); + + return result; + } + + public void deleteBatch(String[] itemIds) { + QueryWrapper<MmPredictModelEntity> queryWrapper = new QueryWrapper<>(); + queryWrapper.in("itemid", itemIds); + baseDao.delete(queryWrapper); + } + + public MmPredictModelEntity getByItemid(String itemid) { + QueryWrapper<MmPredictModelEntity> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("itemid", itemid); + List<MmPredictModelEntity> list = baseDao.selectList(queryWrapper); + if (CollectionUtils.isEmpty(list)) { + return new MmPredictModelEntity(); + } + return list.get(0); + } + + @Override + public List<MmPredictModelEntity> getNoSettingmapPredictModel(Map<String, Object> params) { + return baseDao.getNoSettingmapPredictModel(params); + } + + @Override + public List<MmPredictModelEntity> getActiveModelByItemId(String itemId) { + return baseDao.getActiveModelByItemId(itemId); + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmResultTableServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmResultTableServiceImpl.java new file mode 100644 index 0000000..597002c --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmResultTableServiceImpl.java @@ -0,0 +1,69 @@ +package com.iailab.module.model.mcs.pre.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.iailab.framework.common.pojo.PageResult; +import com.iailab.framework.common.service.impl.BaseServiceImpl; +import com.iailab.module.model.mcs.pre.dao.MmResultTableDao; +import com.iailab.module.model.mcs.pre.entity.MmResultTableEntity; +import com.iailab.module.model.mcs.pre.service.MmResultTableService;; +import com.iailab.module.model.mcs.pre.vo.MmResultTablePageReqVO; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.UUID; + +/** + * @author PanZhibao + * @date 2021年04月23日 16:28 + */ +@Service("mmResultTableService") +public class MmResultTableServiceImpl extends BaseServiceImpl<MmResultTableDao, MmResultTableEntity> implements MmResultTableService { + @Override + public PageResult<MmResultTableEntity> page(MmResultTablePageReqVO reqVO) { + return baseDao.selectPage(reqVO); + } + + private QueryWrapper<MmResultTableEntity> getWrapper(Map<String, Object> params) { + String tablename = (String)params.get("tablename"); + + QueryWrapper<MmResultTableEntity> wrapper = new QueryWrapper<>(); + wrapper.like(StringUtils.isNotBlank(tablename),"tablename", tablename); + + return wrapper; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void saveResultTable(MmResultTableEntity resultTable) { + resultTable.setId(UUID.randomUUID().toString()); + baseDao.insert(resultTable); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(MmResultTableEntity resultTable) { + baseDao.updateById(resultTable); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteBatch(String[] resultTableIds) { + baseDao.deleteBatchIds(Arrays.asList(resultTableIds)); + } + + @Override + public int check(MmResultTableEntity resultTable) { + String id = resultTable.getId(); + String tablename = resultTable.getTablename(); + QueryWrapper<MmResultTableEntity> queryWrapper = new QueryWrapper<>(); + queryWrapper.ne(StringUtils.isNotBlank(id), "id", id); + queryWrapper.and(wrapper -> wrapper.eq("tablename",tablename)); + + List<MmResultTableEntity> list = baseDao.selectList(queryWrapper); + return list.size(); + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/SequenceNumServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/SequenceNumServiceImpl.java new file mode 100644 index 0000000..731ae18 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/SequenceNumServiceImpl.java @@ -0,0 +1,29 @@ +package com.iailab.module.model.mcs.pre.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.iailab.module.model.mcs.pre.dao.SequenceNumDao; +import com.iailab.module.model.mcs.pre.entity.SequenceNumEntity; +import com.iailab.module.model.mcs.pre.service.SequenceNumService; +import org.springframework.stereotype.Service; + +/** + * @author PanZhibao + * @date 2021年05月06日 13:20 + */ +@Service("sequenceNumService") +public class SequenceNumServiceImpl extends ServiceImpl<SequenceNumDao, SequenceNumEntity> implements SequenceNumService { + + @Override + public synchronized SequenceNumEntity getAndIncreaseByCode (String code) { + QueryWrapper queryWrapper = new QueryWrapper<SequenceNumEntity>(); + queryWrapper.eq("code", code); + SequenceNumEntity sequenceNumEntity = this.getOne(queryWrapper); + + SequenceNumEntity sequenceNumUpdate = new SequenceNumEntity(); + sequenceNumUpdate.setId(sequenceNumEntity.getId()); + sequenceNumUpdate.setSequenceNum(sequenceNumEntity.getSequenceNum() + 1); + this.updateById(sequenceNumUpdate); + return sequenceNumEntity; + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/CountItemtypeVO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/CountItemtypeVO.java new file mode 100644 index 0000000..7645781 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/CountItemtypeVO.java @@ -0,0 +1,25 @@ +package com.iailab.module.model.mcs.pre.vo; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @author PanZhibao + * @date 2021年05月10日 13:31 + */ +@Data +public class CountItemtypeVO implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 预测项类型名 + */ + private String name; + + /** + * 数量 + */ + private Integer count; + +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/DmModulePageReqVO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/DmModulePageReqVO.java new file mode 100644 index 0000000..8f2af57 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/DmModulePageReqVO.java @@ -0,0 +1,21 @@ +package com.iailab.module.model.mcs.pre.vo; + +import com.iailab.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年08月29日 + */ +@Schema(description = "模型平台 - 管网分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class DmModulePageReqVO extends PageParam { + + private String modulename; +} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/DmModuleRespVO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/DmModuleRespVO.java new file mode 100644 index 0000000..1dba4b7 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/DmModuleRespVO.java @@ -0,0 +1,59 @@ +package com.iailab.module.model.mcs.pre.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年08月29日 + */ +@Schema(description = "模型平台 - ModBusDevice Response VO") +@Data +@ExcelIgnoreUnannotated +public class DmModuleRespVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @ExcelProperty("ID") + private String id; + + @Schema(description = "名称") + @ExcelProperty("名称") + private String modulename; + + @Schema(description = "类型") + @ExcelProperty("类型") + private String moduletype; + + @Schema(description = "周期") + @ExcelProperty("周期") + private BigDecimal cycle; + + @Schema(description = "模块配置") + @ExcelProperty("模块配置") + private String modulenavconfig; + + @Schema(description = "预测时间") + @ExcelProperty("预测时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8") + private Date predicttime; + + @Schema(description = "采集时间") + @ExcelProperty("采集时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8") + private Date collecttime; + + @Schema(description = "创建时间") + @ExcelProperty("创建时间") + private Date createTime; + + @Schema(description = "更新时间") + @ExcelProperty("更新时间") + private Date updateTime; +} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmItemOutputPageReqVO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmItemOutputPageReqVO.java new file mode 100644 index 0000000..5f1be51 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmItemOutputPageReqVO.java @@ -0,0 +1,19 @@ +package com.iailab.module.model.mcs.pre.vo; + +import com.iailab.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月04日 + */ +@Schema(description = "模型平台 - Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class MmItemOutputPageReqVO extends PageParam { +} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmItemOutputRespVO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmItemOutputRespVO.java new file mode 100644 index 0000000..6f145a3 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmItemOutputRespVO.java @@ -0,0 +1,46 @@ +package com.iailab.module.model.mcs.pre.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.math.BigDecimal; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月04日 + */ +@Schema(description = "模型平台 - MmItemOutput Response VO") +@Data +@ExcelIgnoreUnannotated +public class MmItemOutputRespVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + @ExcelProperty("ID") + private String id; + + @Schema(description = "预测项ID") + @ExcelProperty("预测项ID") + private String itemid; + + @Schema(description = "数据点ID") + @ExcelProperty("数据点ID") + private String pointid; + + @Schema(description = "存放表ID") + @ExcelProperty("存放表ID") + private String resulttableid; + + @Schema(description = "数据点名称") + @ExcelProperty("数据点名称") + private String tagname; + + @Schema(description = "排序(默认值1)") + @ExcelProperty("排序") + private BigDecimal outputorder; +} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmItemTypePageReqVO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmItemTypePageReqVO.java new file mode 100644 index 0000000..6d6c192 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmItemTypePageReqVO.java @@ -0,0 +1,21 @@ +package com.iailab.module.model.mcs.pre.vo; + +import com.iailab.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月04日 + */ +@Schema(description = "模型平台 - Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class MmItemTypePageReqVO extends PageParam { + + private String itemtypename; +} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmItemTypeRespVO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmItemTypeRespVO.java new file mode 100644 index 0000000..060f3d9 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmItemTypeRespVO.java @@ -0,0 +1,36 @@ +package com.iailab.module.model.mcs.pre.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月04日 + */ +@Schema(description = "模型平台 - MmItemType Response VO") +@Data +@ExcelIgnoreUnannotated +public class MmItemTypeRespVO { + + @Schema(description = "ID") + @ExcelProperty("ID") + private String id; + + @Schema(description = "名称") + @ExcelProperty("名称") + private String itemtypename; + + @Schema(description = "类名") + @ExcelProperty("类名") + private String itemclasstype; + + @Schema(description = "程序集") + @ExcelProperty("程序集") + private String assemblyname; +} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmModelResultstrPageReqVO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmModelResultstrPageReqVO.java new file mode 100644 index 0000000..c6de56d --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmModelResultstrPageReqVO.java @@ -0,0 +1,21 @@ +package com.iailab.module.model.mcs.pre.vo; + +import com.iailab.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月04日 + */ +@Schema(description = "模型平台 - Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class MmModelResultstrPageReqVO extends PageParam { + + private String resultstr; +} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmModelResultstrRespVO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmModelResultstrRespVO.java new file mode 100644 index 0000000..50d3c33 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmModelResultstrRespVO.java @@ -0,0 +1,27 @@ +package com.iailab.module.model.mcs.pre.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月04日 + */ +@Schema(description = "模型平台 - MmModelResultstr Response VO") +@Data +@ExcelIgnoreUnannotated +public class MmModelResultstrRespVO { + + @Schema(description = "主键") + @ExcelProperty("主键") + private String id; + + @Schema(description = "结果") + @ExcelProperty("结果") + private String resultstr; +} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmPredictItemPageReqVO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmPredictItemPageReqVO.java new file mode 100644 index 0000000..b0405c9 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmPredictItemPageReqVO.java @@ -0,0 +1,19 @@ +package com.iailab.module.model.mcs.pre.vo; + +import com.iailab.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月04日 + */ +@Schema(description = "模型平台 - Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class MmPredictItemPageReqVO extends PageParam { +} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmPredictItemRespVO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmPredictItemRespVO.java new file mode 100644 index 0000000..ccdf7b6 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmPredictItemRespVO.java @@ -0,0 +1,85 @@ +package com.iailab.module.model.mcs.pre.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * @author PanZhibao + * @date 2021年04月26日 13:27 + */ +@Schema(description = "模型平台 - MmPredictItem Response VO") +@Data +@ExcelIgnoreUnannotated +public class MmPredictItemRespVO implements Serializable { + private static final long serialVersionUID = 1L; + + @Schema(description = "主键") + @ExcelProperty("主键") + private String id; + + @Schema(description = "编号") + @ExcelProperty("编号") + private String itemno; + + @Schema(description = "预测项名") + @ExcelProperty("预测项名") + private String itemname; + + @Schema(description = "类型ID") + @ExcelProperty("类型ID") + private String itemtypeid; + + @Schema(description = "类型名称") + @ExcelProperty("类型名称") + private String itemtypename; + + @Schema(description = "粒度") + @ExcelProperty("粒度") + private BigDecimal granularity; + + @Schema(description = "是否融合") + @ExcelProperty("是否融合") + private BigDecimal isfuse; + + @Schema(description = "是否检查") + @ExcelProperty("是否检查") + private BigDecimal workchecked; + + @Schema(description = "模块ID") + @ExcelProperty("模块ID") + private String moduleid; + + @Schema(description = "排序") + @ExcelProperty("排序") + private Integer itemorder; + + @Schema(description = "是否启用") + @ExcelProperty("是否启用") + private BigDecimal status; + + @Schema(description = "类别ID") + @ExcelProperty("类别ID") + private String categoryid; + + @Schema(description = "数据点ID") + @ExcelProperty("数据点ID") + private String pointid; + + @Schema(description = "数据点名称") + @ExcelProperty("数据点名称") + private String tagname; + + @Schema(description = "存放表ID") + @ExcelProperty("存放表ID") + private String resulttableid; + + @Schema(description = "存放表") + @ExcelProperty("存放表") + private String tablename; +} + diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmResultTablePageReqVO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmResultTablePageReqVO.java new file mode 100644 index 0000000..9700877 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmResultTablePageReqVO.java @@ -0,0 +1,21 @@ +package com.iailab.module.model.mcs.pre.vo; + +import com.iailab.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月04日 + */ +@Schema(description = "模型平台 - Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class MmResultTablePageReqVO extends PageParam { + + private String tablename; +} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmResultTableRespVO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmResultTableRespVO.java new file mode 100644 index 0000000..9dd90c2 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/vo/MmResultTableRespVO.java @@ -0,0 +1,26 @@ +package com.iailab.module.model.mcs.pre.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月04日 + */ +@Schema(description = "模型平台 - MmResultTable Response VO") +@Data +@ExcelIgnoreUnannotated +public class MmResultTableRespVO { + + private String id; + + /** + * 表名 + */ + @NotBlank(message="表名不能为空") + private String tablename; +} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/controller/StScheduleController.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/controller/StScheduleController.java new file mode 100644 index 0000000..caffdea --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/controller/StScheduleController.java @@ -0,0 +1,78 @@ +package com.iailab.module.model.mcs.sche.controller; + +import com.iailab.framework.common.exception.ErrorCode; +import com.iailab.framework.common.pojo.CommonResult; +import com.iailab.framework.common.pojo.PageResult; +import com.iailab.framework.common.util.object.BeanUtils; +import com.iailab.module.model.mcs.sche.entity.StScheduleEntity; +import com.iailab.module.model.mcs.sche.service.StScheduleService; +import com.iailab.module.model.mcs.sche.vo.StSchedulePageReqVO; +import com.iailab.module.model.mcs.sche.vo.StScheduleRespVO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import static com.iailab.framework.common.pojo.CommonResult.error; +import static com.iailab.framework.common.pojo.CommonResult.success; + +/** + * @author PanZhibao + * @date 2021年07月20日 13:51 + */ +@RestController +@RequestMapping("/sche/schedule") +public class StScheduleController { + @Autowired + private StScheduleService stScheduleService; + + /** + * 调度列表 + */ + @GetMapping("/page") + public CommonResult<PageResult<StScheduleRespVO>> page(@Validated StSchedulePageReqVO reqVO) { + PageResult<StScheduleEntity> page = stScheduleService.page(reqVO); + + return success(BeanUtils.toBean(page, StScheduleRespVO.class)); + } + + /** + * 调度信息 + */ + @GetMapping("/info/{id}") + public CommonResult<StScheduleEntity> info(@PathVariable("id") String id){ + StScheduleEntity schedule = stScheduleService.selectById(id); + return success(schedule); + } + + /** + * 保存调度 + */ + @PostMapping("/create") + public CommonResult<Boolean> save(@RequestBody StScheduleEntity schedule){ + int count = stScheduleService.check(schedule); + if (count > 0) { + ErrorCode errorCode = new ErrorCode(999, "名称重复"); + return error(errorCode); + } + stScheduleService.saveSchedule(schedule); + return success(true); + } + + /** + * 修改调度 + */ + @PutMapping("/update") + public CommonResult<Boolean> update(@RequestBody StScheduleEntity schedule){ + stScheduleService.update(schedule); + return success(true); + } + + /** + * 删除调度 + */ + @DeleteMapping("/delete") + public CommonResult<Boolean> delete(@RequestParam("id") String id){ + stScheduleService.deleteBatch(new String[]{id}); + return success(true); + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/controller/StScheduleEnergyTypeController.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/controller/StScheduleEnergyTypeController.java new file mode 100644 index 0000000..9a08bda --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/controller/StScheduleEnergyTypeController.java @@ -0,0 +1,86 @@ +package com.iailab.module.model.mcs.sche.controller; + +import com.iailab.framework.common.exception.ErrorCode; +import com.iailab.framework.common.pojo.CommonResult; +import com.iailab.framework.common.pojo.PageResult; +import com.iailab.framework.common.util.object.BeanUtils; +import com.iailab.module.model.mcs.sche.entity.StScheduleEnergyTypeEntity; +import com.iailab.module.model.mcs.sche.service.StScheduleEnergyTypeService; +import com.iailab.module.model.mcs.sche.vo.StScheduleEnergyTypePageReqVO; +import com.iailab.module.model.mcs.sche.vo.StScheduleEnergyTypeRespVO; +import com.iailab.module.model.mcs.sche.vo.StScheduleRespVO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + +import static com.iailab.framework.common.pojo.CommonResult.error; +import static com.iailab.framework.common.pojo.CommonResult.success; + +/** + * @author PanZhibao + * @date 2021年07月20日 14:02 + */ +@RestController +@RequestMapping("/sche/schedule-energy-type") +public class StScheduleEnergyTypeController { + @Autowired + private StScheduleEnergyTypeService stScheduleEnergyTypeService; + + /** + * 调度类型列表 + */ + @GetMapping("/page") + public CommonResult<PageResult<StScheduleEnergyTypeRespVO>> page(@Validated StScheduleEnergyTypePageReqVO reqVO) { + PageResult<StScheduleEnergyTypeEntity> page = stScheduleEnergyTypeService.page(reqVO); + + return success(BeanUtils.toBean(page, StScheduleEnergyTypeRespVO.class)); + } + + /** + * 调度能源类型信息 + */ + @GetMapping("/info/{id}") + public CommonResult<StScheduleEnergyTypeEntity> info(@PathVariable("id") String id){ + StScheduleEnergyTypeEntity scheduleEnergyType = stScheduleEnergyTypeService.selectById(id); + return success(scheduleEnergyType); + } + + /** + * 保存调度能源类型 + */ + @PostMapping + public CommonResult<Boolean> save(@RequestBody StScheduleEnergyTypeEntity scheduleEnergyType){ + int count = stScheduleEnergyTypeService.check(scheduleEnergyType); + if (count > 0) { + ErrorCode errorCode = new ErrorCode(999, "名称重复"); + return error(errorCode); + } + stScheduleEnergyTypeService.saveScheduleEnergyType(scheduleEnergyType); + return success(true); + } + + /** + * 修改调度能源类型 + */ + @PutMapping + public CommonResult<Boolean> update(@RequestBody StScheduleEnergyTypeEntity scheduleEnergyType){ + int count = stScheduleEnergyTypeService.check(scheduleEnergyType); + if (count > 0) { + ErrorCode errorCode = new ErrorCode(999, "名称重复"); + return error(errorCode); + } + stScheduleEnergyTypeService.update(scheduleEnergyType); + return success(true); + } + + /** + * 删除调度能源类型 + */ + @DeleteMapping("/delete") + public CommonResult<Boolean> delete(@RequestParam("id") String id){ + stScheduleEnergyTypeService.deleteBatch(new String[]{id}); + return success(true); + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/controller/StScheduleModelController.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/controller/StScheduleModelController.java new file mode 100644 index 0000000..1847c04 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/controller/StScheduleModelController.java @@ -0,0 +1,85 @@ +package com.iailab.module.model.mcs.sche.controller; + +import com.iailab.framework.common.pojo.CommonResult; +import com.iailab.framework.common.pojo.PageResult; +import com.iailab.framework.common.util.object.BeanUtils; +import com.iailab.framework.common.util.object.ConvertUtils; +import com.iailab.module.model.mcs.sche.dto.StScheduleModelDto; +import com.iailab.module.model.mcs.sche.entity.StScheduleModelEntity; +import com.iailab.module.model.mcs.sche.service.StScheduleModelService; +import com.iailab.module.model.mcs.sche.vo.StScheduleModelRespVO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + +import static com.iailab.framework.common.pojo.CommonResult.error; +import static com.iailab.framework.common.pojo.CommonResult.success; + +/** + * @author PanZhibao + * @date 2021年07月20日 14:35 + */ +@RestController +@RequestMapping("/sche/schedule-model") +public class StScheduleModelController { + + @Autowired + private StScheduleModelService stScheduleModelService; + + /** + * 调度模型类型列表 + */ + @GetMapping("/page") + public CommonResult<PageResult<StScheduleModelRespVO>> page(@RequestParam Map<String, Object> params) { + PageResult<StScheduleModelRespVO> page = stScheduleModelService.getPageList(params); + + return success(BeanUtils.toBean(page, StScheduleModelRespVO.class)); + } + + /** + * 调度模型类型信息 + */ + @GetMapping("/get") + public CommonResult<StScheduleModelDto> info(@RequestParam("id") String id){ + StScheduleModelDto scheduleMode = stScheduleModelService.getDetailById(id); + return success(scheduleMode); + } + + /** + * 保存调度模型类型 + */ + @PostMapping("/create") + public CommonResult<Boolean> save(@RequestBody StScheduleModelDto scheduleMode){ + StScheduleModelEntity stScheduleModelEntity = ConvertUtils.sourceToTarget(scheduleMode, StScheduleModelEntity.class); + int count = stScheduleModelService.check(stScheduleModelEntity); + if (count > 0) { + return error(999, "名称或编号重复"); + } + stScheduleModelService.saveStScheduleModel(scheduleMode); + return success(true); + } + + /** + * 修改调度模型类型 + */ + @PutMapping("/update") + public CommonResult<Boolean> update(@RequestBody StScheduleModelDto scheduleMode){ + StScheduleModelEntity stScheduleModelEntity = ConvertUtils.sourceToTarget(scheduleMode, StScheduleModelEntity.class); + int count = stScheduleModelService.check(stScheduleModelEntity); + if (count > 0) { + return error(999, "名称或编号重复"); + } + stScheduleModelService.update(scheduleMode); + return success(true); + } + + /** + * 删除调度模型类型 + */ + @DeleteMapping("/delete") + public CommonResult<Boolean> delete(@RequestParam("id") String id){ + stScheduleModelService.deleteBatch(new String[]{id}); + return success(true); + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/controller/StScheduleObjectController.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/controller/StScheduleObjectController.java new file mode 100644 index 0000000..20a7c5d --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/controller/StScheduleObjectController.java @@ -0,0 +1,80 @@ +package com.iailab.module.model.mcs.sche.controller; + +import com.iailab.framework.common.pojo.CommonResult; +import com.iailab.framework.common.pojo.PageResult; +import com.iailab.framework.common.util.object.BeanUtils; +import com.iailab.module.model.mcs.sche.entity.StScheduleObjectEntity; +import com.iailab.module.model.mcs.sche.service.StScheduleObjectService; +import com.iailab.module.model.mcs.sche.vo.StScheduleObjectPageReqVO; +import com.iailab.module.model.mcs.sche.vo.StScheduleObjectRespVO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import static com.iailab.framework.common.pojo.CommonResult.error; +import static com.iailab.framework.common.pojo.CommonResult.success; + +/** + * @author PanZhibao + * @date 2021年07月21日 8:50 + */ +@RestController +@RequestMapping("/sche/schedule-object") +public class StScheduleObjectController { + @Autowired + private StScheduleObjectService stScheduleObjectService; + + /** + * 调度对象类型列表 + */ + @GetMapping("/page") + public CommonResult<PageResult<StScheduleObjectRespVO>> page(@Validated StScheduleObjectPageReqVO reqVO) { + PageResult<StScheduleObjectEntity> page = stScheduleObjectService.page(reqVO); + + return success(BeanUtils.toBean(page, StScheduleObjectRespVO.class)); + } + + /** + * 调度对象类型信息 + */ + @GetMapping("/info/{id}") + public CommonResult<StScheduleObjectEntity> info(@PathVariable("id") String id) { + StScheduleObjectEntity scheduleObject = stScheduleObjectService.selectById(id); + return success(scheduleObject); + } + + /** + * 保存调度对象类型 + */ + @PostMapping("/create") + public CommonResult<Boolean> save(@RequestBody StScheduleObjectEntity scheduleObject) { + int count = stScheduleObjectService.check(scheduleObject); + if (count > 0) { + return error(999, "名称或编号重复"); + } + stScheduleObjectService.saveStScheduleObject(scheduleObject); + return success(true); + } + + /** + * 修改调度对象类型 + */ + @PutMapping("/update") + public CommonResult<Boolean> update(@RequestBody StScheduleObjectEntity scheduleObject) { + int count = stScheduleObjectService.check(scheduleObject); + if (count > 0) { + return error(999, "名称或编号重复"); + } + stScheduleObjectService.update(scheduleObject); + return success(true); + } + + /** + * 删除调度对象类型 + */ + @DeleteMapping("/delete") + public CommonResult<Boolean> delete(@RequestParam("id") String id) { + stScheduleObjectService.deleteBatch(new String[]{id}); + return success(true); + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/controller/StScheduleUserController.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/controller/StScheduleUserController.java new file mode 100644 index 0000000..bc36dda --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/controller/StScheduleUserController.java @@ -0,0 +1,80 @@ +package com.iailab.module.model.mcs.sche.controller; + +import com.iailab.framework.common.pojo.CommonResult; +import com.iailab.framework.common.pojo.PageResult; +import com.iailab.framework.common.util.object.BeanUtils; +import com.iailab.module.model.mcs.sche.entity.StScheduleUserEntity; +import com.iailab.module.model.mcs.sche.service.StScheduleUserService; +import com.iailab.module.model.mcs.sche.vo.StScheduleUserPageReqVO; +import com.iailab.module.model.mcs.sche.vo.StScheduleUserRespVO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import static com.iailab.framework.common.pojo.CommonResult.error; +import static com.iailab.framework.common.pojo.CommonResult.success; + +/** + * @author PanZhibao + * @date 2021年07月20日 15:34 + */ +@RestController +@RequestMapping("/sche/schedule-user") +public class StScheduleUserController { + @Autowired + private StScheduleUserService stScheduleUserService; + + /** + * 调度用户类型列表 + */ + @GetMapping("/list") + public CommonResult<PageResult<StScheduleUserRespVO>> page(@Validated StScheduleUserPageReqVO reqVO) { + PageResult<StScheduleUserEntity> page = stScheduleUserService.page(reqVO); + + return success(BeanUtils.toBean(page, StScheduleUserRespVO.class)); + } + + /** + * 调度用户类型信息 + */ + @GetMapping("/get") + public CommonResult<StScheduleUserEntity> info(@RequestParam("id") String id) { + StScheduleUserEntity scheduleUser = stScheduleUserService.selectById(id); + return success(scheduleUser); + } + + /** + * 保存调度用户类型 + */ + @PostMapping("/create") + public CommonResult<Boolean> save(@RequestBody StScheduleUserEntity scheduleUser) { + int count = stScheduleUserService.check(scheduleUser); + if (count > 0) { + return error(999, "名称或编号重复"); + } + stScheduleUserService.saveScheduleUser(scheduleUser); + return success(true); + } + + /** + * 修改调度用户类型 + */ + @PutMapping("/update") + public CommonResult<Boolean> update(@RequestBody StScheduleUserEntity scheduleUser) { + int count = stScheduleUserService.check(scheduleUser); + if (count > 0) { + return error(999, "名称或编号重复"); + } + stScheduleUserService.update(scheduleUser); + return success(true); + } + + /** + * 删除调度用户类型 + */ + @DeleteMapping("/delete") + public CommonResult<Boolean> delete(@RequestParam("id") String id) { + stScheduleUserService.deleteBatch(new String[]{id}); + return success(true); + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleDao.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleDao.java new file mode 100644 index 0000000..f2f294f --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleDao.java @@ -0,0 +1,23 @@ +package com.iailab.module.model.mcs.sche.dao; + +import com.iailab.framework.common.pojo.PageResult; +import com.iailab.framework.mybatis.core.mapper.BaseMapperX; +import com.iailab.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.iailab.module.model.mcs.sche.entity.StScheduleEntity; +import com.iailab.module.model.mcs.sche.vo.StSchedulePageReqVO; +import org.apache.ibatis.annotations.Mapper; + +/** + * @author PanZhibao + * @date 2021年07月19日 17:54 + */ +@Mapper +public interface StScheduleDao extends BaseMapperX<StScheduleEntity> { + + + default PageResult<StScheduleEntity> selectPage(StSchedulePageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX<StScheduleEntity>() + .likeIfPresent(StScheduleEntity::getName, reqVO.getName()) + .orderByDesc(StScheduleEntity::getName)); + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleEnergyTypeDao.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleEnergyTypeDao.java new file mode 100644 index 0000000..852f954 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleEnergyTypeDao.java @@ -0,0 +1,22 @@ +package com.iailab.module.model.mcs.sche.dao; + +import com.iailab.framework.common.pojo.PageResult; +import com.iailab.framework.mybatis.core.mapper.BaseMapperX; +import com.iailab.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.iailab.module.model.mcs.sche.entity.StScheduleEnergyTypeEntity; +import com.iailab.module.model.mcs.sche.vo.StScheduleEnergyTypePageReqVO; +import org.apache.ibatis.annotations.Mapper; + +/** + * @author PanZhibao + * @date 2021年07月19日 17:53 + */ +@Mapper +public interface StScheduleEnergyTypeDao extends BaseMapperX<StScheduleEnergyTypeEntity> { + + default PageResult<StScheduleEnergyTypeEntity> selectPage(StScheduleEnergyTypePageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX<StScheduleEnergyTypeEntity>() + .likeIfPresent(StScheduleEnergyTypeEntity::getEnergytypename, reqVO.getEnergytypename()) + .orderByDesc(StScheduleEnergyTypeEntity::getEnergytypename)); + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleModelDao.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleModelDao.java new file mode 100644 index 0000000..c6ad125 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleModelDao.java @@ -0,0 +1,27 @@ +package com.iailab.module.model.mcs.sche.dao; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.iailab.framework.mybatis.core.mapper.BaseMapperX; +import com.iailab.module.model.mcs.sche.entity.StScheduleModelEntity; +import com.iailab.module.model.mcs.sche.vo.StScheduleModelRespVO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Map; + +/** + * @author PanZhibao + * @date 2021年07月19日 17:56 + */ +@Mapper +public interface StScheduleModelDao extends BaseMapperX<StScheduleModelEntity> { + + /** + * 查询列表 + * + * @param page + * @param params + * @return + */ + IPage<StScheduleModelRespVO> getPageList(IPage<StScheduleModelEntity> page, @Param("params") Map<String, Object> params); +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleModelUserParamDao.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleModelUserParamDao.java new file mode 100644 index 0000000..b57ae19 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleModelUserParamDao.java @@ -0,0 +1,26 @@ +package com.iailab.module.model.mcs.sche.dao; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.iailab.framework.mybatis.core.mapper.BaseMapperX; +import com.iailab.module.model.mcs.sche.entity.StScheduleModelUserParamEntity; +import com.iailab.module.model.mcs.sche.vo.ScheduleModelUserParamVo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Map; + +/** + * @author PanZhibao + * @date 2021年07月19日 17:58 + */ +@Mapper +public interface StScheduleModelUserParamDao extends BaseMapperX<StScheduleModelUserParamEntity> { + /** + * queryList + * + * @param page + * @param params + * @return + */ + IPage<ScheduleModelUserParamVo> queryList(IPage<ScheduleModelUserParamVo> page, @Param("params") Map<String, Object> params); +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleObjectDao.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleObjectDao.java new file mode 100644 index 0000000..56be35b --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleObjectDao.java @@ -0,0 +1,23 @@ +package com.iailab.module.model.mcs.sche.dao; + + +import com.iailab.framework.common.pojo.PageResult; +import com.iailab.framework.mybatis.core.mapper.BaseMapperX; +import com.iailab.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.iailab.module.model.mcs.sche.entity.StScheduleObjectEntity; +import com.iailab.module.model.mcs.sche.vo.StScheduleObjectPageReqVO; +import org.apache.ibatis.annotations.Mapper; + +/** + * @author PanZhibao + * @date 2021年07月20日 8:44 + */ +@Mapper +public interface StScheduleObjectDao extends BaseMapperX<StScheduleObjectEntity> { + + default PageResult<StScheduleObjectEntity> selectPage(StScheduleObjectPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX<StScheduleObjectEntity>() + .likeIfPresent(StScheduleObjectEntity::getName, reqVO.getName()) + .orderByDesc(StScheduleObjectEntity::getName)); + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleParamDao.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleParamDao.java new file mode 100644 index 0000000..83c9365 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleParamDao.java @@ -0,0 +1,13 @@ +package com.iailab.module.model.mcs.sche.dao; + +import com.iailab.framework.mybatis.core.mapper.BaseMapperX; +import com.iailab.module.model.mcs.sche.entity.StScheduleParamEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * @author PanZhibao + * @date 2021年07月20日 8:51 + */ +@Mapper +public interface StScheduleParamDao extends BaseMapperX<StScheduleParamEntity> { +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleParamSettingDao.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleParamSettingDao.java new file mode 100644 index 0000000..eb61c9c --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleParamSettingDao.java @@ -0,0 +1,13 @@ +package com.iailab.module.model.mcs.sche.dao; + +import com.iailab.framework.mybatis.core.mapper.BaseMapperX; +import com.iailab.module.model.mcs.sche.entity.StScheduleParamSettingEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * @author PanZhibao + * @date 2021年07月20日 8:54 + */ +@Mapper +public interface StScheduleParamSettingDao extends BaseMapperX<StScheduleParamSettingEntity> { +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleSchemeDao.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleSchemeDao.java new file mode 100644 index 0000000..418f09d --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleSchemeDao.java @@ -0,0 +1,22 @@ +package com.iailab.module.model.mcs.sche.dao; + +import com.iailab.framework.mybatis.core.mapper.BaseMapperX; +import com.iailab.module.model.mcs.sche.entity.StScheduleSchemeEntity; +import org.apache.ibatis.annotations.Mapper; + +import java.util.Map; + +/** + * @author PanZhibao + * @date 2021年07月20日 9:08 + */ +@Mapper +public interface StScheduleSchemeDao extends BaseMapperX<StScheduleSchemeEntity> { + + /** + * saveScheduleTime + * + * @param map + */ + void saveScheduleTime(Map map); +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleSchemeDetailesDao.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleSchemeDetailesDao.java new file mode 100644 index 0000000..fb9cf4b --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleSchemeDetailesDao.java @@ -0,0 +1,25 @@ +package com.iailab.module.model.mcs.sche.dao; + +import com.iailab.framework.mybatis.core.mapper.BaseMapperX; +import com.iailab.module.model.mcs.sche.entity.StScheduleSchemeDetailesEntity; +import com.iailab.module.model.mcs.sche.vo.ScheduleSchemeDetailesVo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + * @author PanZhibao + * @date 2021年07月20日 9:06 + */ +@Mapper +public interface StScheduleSchemeDetailesDao extends BaseMapperX<StScheduleSchemeDetailesEntity> { + /** + * 查询调度方案详情 + * + * @param params + * @return + */ + List<ScheduleSchemeDetailesVo> queryScheduleSchemeDetailes(@Param("params") Map<String, Object> params); +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleSchemeEvalTypeDao.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleSchemeEvalTypeDao.java new file mode 100644 index 0000000..24709d5 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleSchemeEvalTypeDao.java @@ -0,0 +1,13 @@ +package com.iailab.module.model.mcs.sche.dao; + +import com.iailab.framework.mybatis.core.mapper.BaseMapperX; +import com.iailab.module.model.mcs.sche.entity.StScheduleSchemeEvalTypeEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * @author PanZhibao + * @date 2021年07月20日 9:10 + */ +@Mapper +public interface StScheduleSchemeEvalTypeDao extends BaseMapperX<StScheduleSchemeEvalTypeEntity> { +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleSchemeEvalValueDao.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleSchemeEvalValueDao.java new file mode 100644 index 0000000..d21ac36 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleSchemeEvalValueDao.java @@ -0,0 +1,13 @@ +package com.iailab.module.model.mcs.sche.dao; + +import com.iailab.framework.mybatis.core.mapper.BaseMapperX; +import com.iailab.module.model.mcs.sche.entity.StScheduleSchemeEvalValueEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * @author PanZhibao + * @date 2021年07月20日 9:14 + */ +@Mapper +public interface StScheduleSchemeEvalValueDao extends BaseMapperX<StScheduleSchemeEvalValueEntity> { +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleUserDao.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleUserDao.java new file mode 100644 index 0000000..54dc2c6 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dao/StScheduleUserDao.java @@ -0,0 +1,22 @@ +package com.iailab.module.model.mcs.sche.dao; + +import com.iailab.framework.common.pojo.PageResult; +import com.iailab.framework.mybatis.core.mapper.BaseMapperX; +import com.iailab.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.iailab.module.model.mcs.sche.entity.StScheduleUserEntity; +import com.iailab.module.model.mcs.sche.vo.StScheduleUserPageReqVO; +import org.apache.ibatis.annotations.Mapper; + +/** + * @author PanZhibao + * @date 2021年07月20日 9:16 + */ +@Mapper +public interface StScheduleUserDao extends BaseMapperX<StScheduleUserEntity> { + + default PageResult<StScheduleUserEntity> selectPage(StScheduleUserPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX<StScheduleUserEntity>() + .likeIfPresent(StScheduleUserEntity::getUsername, reqVO.getUsername()) + .orderByDesc(StScheduleUserEntity::getUsername)); + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dto/StScheduleModelDto.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dto/StScheduleModelDto.java new file mode 100644 index 0000000..3c72a80 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dto/StScheduleModelDto.java @@ -0,0 +1,80 @@ +package com.iailab.module.model.mcs.sche.dto; + +import com.iailab.module.model.mcs.sche.entity.StScheduleModelUserParamEntity; +import com.iailab.module.model.mcs.sche.entity.StScheduleParamEntity; +import com.iailab.module.model.mcs.sche.entity.StScheduleParamSettingEntity; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @author PanZhibao + * @date 2021年07月21日 17:44 + */ +@Data +public class StScheduleModelDto implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private String id; + + + /** + * 模型名称 + */ + private String modelname; + + + /** + * 调度ID + */ + private String scheduleid; + + /** + * 对象ID + */ + private String objectid; + + /** + * 类名 + */ + private String classname; + + /** + * 方法名 + */ + private String methodname; + + /** + * 模型路径 + */ + private String modelpath; + + /** + * 端口长度 + */ + private Integer portlength; + + /** + * 模型状态 + */ + private Integer modelstatus; + + /** + * stScheduleParamSettingList + */ + private List<StScheduleParamSettingEntity> stScheduleParamSettingList; + + /** + * stScheduleParamList + */ + private List<StScheduleParamEntity> stScheduleParamList; + + /** + * stScheduleModelUserParamList + */ + private List<StScheduleModelUserParamEntity> stScheduleModelUserParamList; +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dto/StSchedulePredictItemDto.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dto/StSchedulePredictItemDto.java new file mode 100644 index 0000000..d25995b --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/dto/StSchedulePredictItemDto.java @@ -0,0 +1,81 @@ +package com.iailab.module.model.mcs.sche.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * @author PanZhibao + * @date 2021年11月02日 15:55 + */ +@Data +public class StSchedulePredictItemDto implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private String id; + + /** + * 名称 + */ + private String name; + + /** + * 标题 + */ + private String title; + + /** + * 预测项ID + */ + private String predictitemid; + + /** + * 预测项Name + */ + private String itemname; + + /** + * 调度模型ID + */ + private String schedulemodelid; + + /** + * 调度模型Name + */ + private String modelname; + + /** + * 最大值 + */ + private String maxvaluekey; + + /** + * 最大值 + */ + private String maxValue; + + /** + * 最小值 + */ + private String minvaluekey; + + /** + * 最大值 + */ + private String minValue; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 更新时间 + */ + private Date updateTime; +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleEnergyTypeEntity.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleEnergyTypeEntity.java new file mode 100644 index 0000000..e50297e --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleEnergyTypeEntity.java @@ -0,0 +1,34 @@ +package com.iailab.module.model.mcs.sche.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @author PanZhibao + * @date 2021年07月19日 14:55 + */ +@Data +@TableName("T_ST_SCHEDULE_ENERGY_TYPE") +public class StScheduleEnergyTypeEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id",type = IdType.INPUT) + private String id; + + /** + * 类型名称 + */ + @NotBlank(message="类型名称不能为空") + private String energytypename; + + +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleEntity.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleEntity.java new file mode 100644 index 0000000..928a672 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleEntity.java @@ -0,0 +1,38 @@ +package com.iailab.module.model.mcs.sche.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; +import java.util.Date; + +/** + * @author PanZhibao + * @date 2021年07月19日 14:30 + */ +@Data +@TableName("T_ST_SCHEDULE") +public class StScheduleEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id",type = IdType.INPUT) + private String id; + + /** + * 名称 + */ + @NotBlank(message="名称不能为空") + private String name; + + /** + * 调度时间 + */ + private Date scheduletime; +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleModelEntity.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleModelEntity.java new file mode 100644 index 0000000..277cf48 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleModelEntity.java @@ -0,0 +1,69 @@ +package com.iailab.module.model.mcs.sche.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @author PanZhibao + * @date 2021年07月19日 15:03 + */ +@Data +@TableName("T_ST_SCHEDULE_MODEL") +public class StScheduleModelEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id",type = IdType.INPUT) + private String id; + + + /** + * 模型名称 + */ + @NotBlank(message="模型名称不能为空") + private String modelname; + + + /** + * 调度ID + */ + private String scheduleid; + + /** + * 对象ID + */ + private String objectid; + + /** + * 类名 + */ + private String classname; + + /** + * 方法名 + */ + private String methodname; + + /** + * 模型路径 + */ + private String modelpath; + + /** + * 端口长度 + */ + private Integer portlength; + + /** + * 模型状态 + */ + private Integer modelstatus; +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleModelUserParamEntity.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleModelUserParamEntity.java new file mode 100644 index 0000000..01f1339 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleModelUserParamEntity.java @@ -0,0 +1,81 @@ +package com.iailab.module.model.mcs.sche.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * @author PanZhibao + * @date 2021年07月19日 15:35 + */ +@Data +@TableName("T_ST_SCHEDULE_MODEL_USER_PARAM") +public class StScheduleModelUserParamEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id",type = IdType.INPUT) + private String id; + + /** + * 模型ID + */ + private String modelid; + + /** + * 用户ID + */ + private String userid; + + /** + * 能源类型ID + */ + private String energytypeid; + + /** + * 参数ID + */ + private String paramid; + + /** + * 模型状态 + */ + private String modelsatus; + + /** + * 用户排序 + */ + private Integer userorder; + + /** + * 能源排序 + */ + private Integer energyorder; + + /** + * 是否调整 + */ + private Integer isadjust; + + /** + * 调整上限 + */ + private BigDecimal upadjlimit; + + /** + * 调整下限 + */ + private BigDecimal downadjlimit; + + /** + * 调整排序 + */ + private Integer adjorder; +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleObjectEntity.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleObjectEntity.java new file mode 100644 index 0000000..9675c78 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleObjectEntity.java @@ -0,0 +1,37 @@ +package com.iailab.module.model.mcs.sche.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @author PanZhibao + * @date 2021年07月19日 16:10 + */ +@Data +@TableName("T_ST_SCHEDULE_OBJECT") +public class StScheduleObjectEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id",type = IdType.INPUT) + private String id; + + /** + * 名称 + */ + @NotBlank(message="名称不能为空") + private String name; + + /** + * 排序 + */ + private Integer order; +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleParamEntity.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleParamEntity.java new file mode 100644 index 0000000..a024c7e --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleParamEntity.java @@ -0,0 +1,60 @@ +package com.iailab.module.model.mcs.sche.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; + +/** + * @author PanZhibao + * @date 2021年07月19日 16:17 + */ +@Data +@TableName("T_ST_SCHEDULE_PARAM") +public class StScheduleParamEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id",type = IdType.INPUT) + private String id; + + /** + * 模型ID + */ + private String modelid; + + /** + * 模型参数名称 + */ + private String modelparamname; + + /** + * 模型参数ID + */ + private String modelparamid; + + /** + * 模型参数排序 + */ + private Integer modelparamorder; + + /** + * 模型参数端口排序 + */ + private Integer modelparamportorder; + + /** + * 数据长度 + */ + private Integer datalength; + + /** + * 数据类型 + */ + private String modelparamtype; +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleParamSettingEntity.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleParamSettingEntity.java new file mode 100644 index 0000000..edcc111 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleParamSettingEntity.java @@ -0,0 +1,50 @@ +package com.iailab.module.model.mcs.sche.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; + +/** + * @author PanZhibao + * @date 2021年07月19日 16:35 + */ +@Data +@TableName("T_ST_SCHEDULE_PARAM_SETTING") +public class StScheduleParamSettingEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id",type = IdType.INPUT) + private String id; + + /** + * 模型ID + */ + private String modelid; + + /** + * 键 + */ + private String key; + + /** + * 值 + */ + private String value; + + /** + * 值类型 + */ + private String valuetype; + + /** + * 名称 + */ + private String name; +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StSchedulePredictItemEntity.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StSchedulePredictItemEntity.java new file mode 100644 index 0000000..a23cf83 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StSchedulePredictItemEntity.java @@ -0,0 +1,58 @@ +package com.iailab.module.model.mcs.sche.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * @author PanZhibao + * @date 2021年11月02日 15:18 + */ +@Data +@TableName("T_ST_SCHEDULE_PREDICT_ITEM") +public class StSchedulePredictItemEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id",type = IdType.INPUT) + private String id; + + + /** + * 预测项ID + */ + private String predictitemid; + + /** + * 调度模型ID + */ + private String schedulemodelid; + + /** + * 最大值 + */ + private String maxvaluekey; + + /** + * 最小值 + */ + private String minvaluekey; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 更新时间 + */ + private Date updateTime; + +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleSchemeDetailesEntity.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleSchemeDetailesEntity.java new file mode 100644 index 0000000..a7c3cd0 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleSchemeDetailesEntity.java @@ -0,0 +1,46 @@ +package com.iailab.module.model.mcs.sche.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * @author PanZhibao + * @date 2021年07月19日 17:14 + */ +@Data +@TableName("T_ST_SCHEDULE_SCHEME_DETAILES") +public class StScheduleSchemeDetailesEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id",type = IdType.INPUT) + private String id; + + /** + * 调整用户ID + */ + private String adjustuserid; + + /** + * 方案ID + */ + private String schemid; + + /** + * 值 + */ + private BigDecimal value; + + /** + * 是否调整 + */ + private BigDecimal isadjust; +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleSchemeEntity.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleSchemeEntity.java new file mode 100644 index 0000000..5cd1b79 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleSchemeEntity.java @@ -0,0 +1,62 @@ +package com.iailab.module.model.mcs.sche.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + * @author PanZhibao + * @date 2021年07月19日 16:43 + */ +@Data +@TableName("T_ST_SCHEDULE_SCHEME") +public class StScheduleSchemeEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id",type = IdType.INPUT) + private String id; + + /** + * 模型ID + */ + private String modelid; + + /** + * 开始时间 + */ + private Date starttime; + + /** + * 结束时间 + */ + private Date endtime; + + /** + * 调度时间 + */ + private Date scheduletime; + + /** + * 对象值 + */ + private BigDecimal objectvalue; + + /** + * 方案排序 + */ + private Integer schemeorder; + + /** + * 是否调整 + */ + private Integer isadjust; +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleSchemeEvalTypeEntity.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleSchemeEvalTypeEntity.java new file mode 100644 index 0000000..adcedda --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleSchemeEvalTypeEntity.java @@ -0,0 +1,30 @@ +package com.iailab.module.model.mcs.sche.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; + +/** + * @author PanZhibao + * @date 2021年07月19日 17:24 + */ +@Data +@TableName("T_ST_SCHEDULE_SCHEME_EVAL_TYPE") +public class StScheduleSchemeEvalTypeEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id",type = IdType.INPUT) + private String id; + + /** + * 名称 + */ + private String evalname; +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleSchemeEvalValueEntity.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleSchemeEvalValueEntity.java new file mode 100644 index 0000000..1c78ed9 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleSchemeEvalValueEntity.java @@ -0,0 +1,46 @@ +package com.iailab.module.model.mcs.sche.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * @author PanZhibao + * @date 2021年07月19日 17:33 + */ +@Data +@TableName("T_ST_SCHEDULE_SCHEME_EVAL_VALUE") +public class StScheduleSchemeEvalValueEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id",type = IdType.INPUT) + private String id; + + /** + * 方案ID + */ + private String schemid; + + /** + * evalid + */ + private String evalid; + + /** + * schprevalue + */ + private BigDecimal schprevalue; + + /** + * schedvalue + */ + private BigDecimal schedvalue; +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleUserEntity.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleUserEntity.java new file mode 100644 index 0000000..73621f9 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/entity/StScheduleUserEntity.java @@ -0,0 +1,40 @@ +package com.iailab.module.model.mcs.sche.entity; + +/** + * @author PanZhibao + * @date 2021年07月19日 17:42 + */ + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; + +/** + * @author PanZhibao + * @date 2021年07月19日 17:33 + */ +@Data +@TableName("T_ST_SCHEDULE_USER") +public class StScheduleUserEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id",type = IdType.INPUT) + private String id; + + /** + * 用户名称 + */ + private String username; + + /** + * 调整状态 + */ + private String adjuststatus; +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleEnergyTypeService.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleEnergyTypeService.java new file mode 100644 index 0000000..91b50b6 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleEnergyTypeService.java @@ -0,0 +1,27 @@ +package com.iailab.module.model.mcs.sche.service; + +import com.iailab.framework.common.page.PageData; +import com.iailab.framework.common.pojo.PageResult; +import com.iailab.framework.common.service.BaseService; +import com.iailab.module.model.mcs.sche.entity.StScheduleEnergyTypeEntity; +import com.iailab.module.model.mcs.sche.vo.StScheduleEnergyTypePageReqVO; + +import java.util.Map; + +/** + * @author PanZhibao + * @date 2021年07月20日 11:45 + */ +public interface StScheduleEnergyTypeService extends BaseService<StScheduleEnergyTypeEntity> { + + void saveScheduleEnergyType(StScheduleEnergyTypeEntity scheduleEnergyType); + + void update(StScheduleEnergyTypeEntity scheduleEnergyType); + + void deleteBatch(String[] scheduleEnergyTypeIds); + + int check(StScheduleEnergyTypeEntity scheduleEnergyType); + + PageResult<StScheduleEnergyTypeEntity> page(StScheduleEnergyTypePageReqVO reqVO); + +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleModelService.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleModelService.java new file mode 100644 index 0000000..07d3ada --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleModelService.java @@ -0,0 +1,31 @@ +package com.iailab.module.model.mcs.sche.service; + +import com.iailab.framework.common.page.PageData; +import com.iailab.framework.common.pojo.PageResult; +import com.iailab.framework.common.service.BaseService; +import com.iailab.module.model.mcs.sche.dto.StScheduleModelDto; +import com.iailab.module.model.mcs.sche.entity.StScheduleModelEntity; +import com.iailab.module.model.mcs.sche.vo.StScheduleModelRespVO; + +import java.util.Map; + +/** + * @author PanZhibao + * @date 2021年07月20日 14:13 + */ +public interface StScheduleModelService extends BaseService<StScheduleModelEntity> { + + void saveStScheduleModel(StScheduleModelDto stScheduleModel); + + StScheduleModelDto getDetailById(String id); + + void update(StScheduleModelDto stScheduleModel); + + void deleteBatch(String[] stScheduleModelIds); + + int check(StScheduleModelEntity stScheduleModel); + + PageResult<StScheduleModelRespVO> getPageList(Map<String, Object> params); + + Long count(); +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleModelUserParamService.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleModelUserParamService.java new file mode 100644 index 0000000..5ace5c4 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleModelUserParamService.java @@ -0,0 +1,21 @@ +package com.iailab.module.model.mcs.sche.service; + +import com.iailab.framework.common.page.PageData; +import com.iailab.framework.common.service.BaseService; +import com.iailab.module.model.mcs.sche.entity.StScheduleModelUserParamEntity; +import com.iailab.module.model.mcs.sche.vo.ScheduleModelUserParamVo; + +import java.util.List; +import java.util.Map; + +/** + * @author PanZhibao + * @date 2021年07月22日 10:37 + */ +public interface StScheduleModelUserParamService extends BaseService<StScheduleModelUserParamEntity> { + + List<StScheduleModelUserParamEntity> getByModelid(String modelid); + + PageData<ScheduleModelUserParamVo> page(Map<String, Object> params); +} + diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleObjectService.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleObjectService.java new file mode 100644 index 0000000..298138f --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleObjectService.java @@ -0,0 +1,27 @@ +package com.iailab.module.model.mcs.sche.service; + +import com.iailab.framework.common.page.PageData; +import com.iailab.framework.common.pojo.PageResult; +import com.iailab.framework.common.service.BaseService; +import com.iailab.module.model.mcs.sche.entity.StScheduleObjectEntity; +import com.iailab.module.model.mcs.sche.vo.StScheduleObjectPageReqVO; + +import java.util.Map; + +/** + * @author PanZhibao + * @date 2021年07月20日 17:49 + */ +public interface StScheduleObjectService extends BaseService<StScheduleObjectEntity> { + + void saveStScheduleObject(StScheduleObjectEntity scheduleObject); + + void update(StScheduleObjectEntity scheduleObject); + + void deleteBatch(String[] scheduleObjectIds); + + int check(StScheduleObjectEntity scheduleObject); + + PageResult<StScheduleObjectEntity> page(StScheduleObjectPageReqVO reqVO); + +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleParamService.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleParamService.java new file mode 100644 index 0000000..a4c91af --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleParamService.java @@ -0,0 +1,15 @@ +package com.iailab.module.model.mcs.sche.service; + +import com.iailab.framework.common.service.BaseService; +import com.iailab.module.model.mcs.sche.entity.StScheduleParamEntity; + +import java.util.List; + +/** + * @author PanZhibao + * @date 2021年07月22日 10:03 + */ +public interface StScheduleParamService extends BaseService<StScheduleParamEntity> { + + List<StScheduleParamEntity> getByModelid(String modelid); +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleParamSettingService.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleParamSettingService.java new file mode 100644 index 0000000..98ef251 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleParamSettingService.java @@ -0,0 +1,15 @@ +package com.iailab.module.model.mcs.sche.service; + +import com.iailab.framework.common.service.BaseService; +import com.iailab.module.model.mcs.sche.entity.StScheduleParamSettingEntity; + +import java.util.List; + +/** + * @author PanZhibao + * @date 2021年07月22日 9:05 + */ +public interface StScheduleParamSettingService extends BaseService<StScheduleParamSettingEntity> { + + List<StScheduleParamSettingEntity> getByModelid(String modelid); +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleSchemeDetailesService.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleSchemeDetailesService.java new file mode 100644 index 0000000..acc65b5 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleSchemeDetailesService.java @@ -0,0 +1,19 @@ +package com.iailab.module.model.mcs.sche.service; + +import com.iailab.framework.common.service.BaseService; +import com.iailab.module.model.mcs.sche.entity.StScheduleSchemeDetailesEntity; +import com.iailab.module.model.mcs.sche.vo.ScheduleSchemeDetailesVo; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.List; +import java.util.Map; + +/** + * @author PanZhibao + * @date 2021年07月26日 16:49 + */ +public interface StScheduleSchemeDetailesService extends BaseService<StScheduleSchemeDetailesEntity> { + + List<ScheduleSchemeDetailesVo> queryScheduleSchemeDetailes(Map<String, Object> params); +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleSchemeService.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleSchemeService.java new file mode 100644 index 0000000..6f3f6bd --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleSchemeService.java @@ -0,0 +1,11 @@ +package com.iailab.module.model.mcs.sche.service; + +import com.iailab.framework.common.service.BaseService; +import com.iailab.module.model.mcs.sche.entity.StScheduleSchemeEntity; + +/** + * @author PanZhibao + * @date 2021年08月11日 12:06 + */ +public interface StScheduleSchemeService extends BaseService<StScheduleSchemeEntity> { +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleService.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleService.java new file mode 100644 index 0000000..7787b3b --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleService.java @@ -0,0 +1,26 @@ +package com.iailab.module.model.mcs.sche.service; + +import com.iailab.framework.common.pojo.PageResult; +import com.iailab.framework.common.service.BaseService; +import com.iailab.module.model.mcs.sche.entity.StScheduleEntity; +import com.iailab.module.model.mcs.sche.vo.StSchedulePageReqVO; + +import java.util.Map; + +/** + * @author PanZhibao + * @date 2021年07月20日 11:36 + */ +public interface StScheduleService extends BaseService<StScheduleEntity> { + + void saveSchedule(StScheduleEntity stSchedule); + + void update(StScheduleEntity stSchedule); + + void deleteBatch(String[] stScheduleIds); + + int check(StScheduleEntity stSchedule); + + PageResult<StScheduleEntity> page(StSchedulePageReqVO reqVO); + +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleUserService.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleUserService.java new file mode 100644 index 0000000..d6cb61e --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StScheduleUserService.java @@ -0,0 +1,27 @@ +package com.iailab.module.model.mcs.sche.service; + +import com.iailab.framework.common.page.PageData; +import com.iailab.framework.common.pojo.PageResult; +import com.iailab.framework.common.service.BaseService; +import com.iailab.module.model.mcs.sche.entity.StScheduleUserEntity; +import com.iailab.module.model.mcs.sche.vo.StScheduleUserPageReqVO; + +import java.util.Map; + +/** + * @author PanZhibao + * @date 2021年07月20日 15:09 + */ +public interface StScheduleUserService extends BaseService<StScheduleUserEntity> { + + void saveScheduleUser(StScheduleUserEntity scheduleUser); + + void update(StScheduleUserEntity scheduleUser); + + void deleteBatch(String[] scheduleUserIds); + + int check(StScheduleUserEntity scheduleUser); + + PageResult<StScheduleUserEntity> page(StScheduleUserPageReqVO reqVO); + +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleEnergyTypeServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleEnergyTypeServiceImpl.java new file mode 100644 index 0000000..40fa1c8 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleEnergyTypeServiceImpl.java @@ -0,0 +1,75 @@ +package com.iailab.module.model.mcs.sche.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.iailab.framework.common.pojo.PageResult; +import com.iailab.framework.common.service.impl.BaseServiceImpl; +import com.iailab.module.model.mcs.sche.dao.StScheduleEnergyTypeDao; +import com.iailab.module.model.mcs.sche.entity.StScheduleEnergyTypeEntity; +import com.iailab.module.model.mcs.sche.service.StScheduleEnergyTypeService; +import com.iailab.module.model.mcs.sche.vo.StScheduleEnergyTypePageReqVO; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.UUID; + +/** + * @author PanZhibao + * @date 2021年07月20日 11:47 + */ +@Service("stScheduleEnergyTypeService") +public class StScheduleEnergyTypeServiceImpl extends BaseServiceImpl<StScheduleEnergyTypeDao, StScheduleEnergyTypeEntity> implements StScheduleEnergyTypeService { + @Override + public PageResult<StScheduleEnergyTypeEntity> page(StScheduleEnergyTypePageReqVO reqVO) { + return baseDao.selectPage(reqVO); + } + + private QueryWrapper<StScheduleEnergyTypeEntity> getWrapper(Map<String, Object> params) { + String energytypename = (String) params.get("energytypename"); + + QueryWrapper<StScheduleEnergyTypeEntity> wrapper = new QueryWrapper<>(); + wrapper.like(StringUtils.isNotBlank(energytypename), "energytypename", energytypename); + + return wrapper; + } + + public StScheduleEnergyTypeEntity getDetailById(String id) { + StScheduleEnergyTypeEntity entity = baseDao.selectById(id); + return entity; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void saveScheduleEnergyType(StScheduleEnergyTypeEntity scheduleEnergyType) { + scheduleEnergyType.setId(UUID.randomUUID().toString()); + baseDao.insert(scheduleEnergyType); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(StScheduleEnergyTypeEntity scheduleEnergyType) { + baseDao.updateById(scheduleEnergyType); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteBatch(String[] storeTypeIds) { + baseDao.deleteBatchIds(Arrays.asList(storeTypeIds)); + } + + @Override + public int check(StScheduleEnergyTypeEntity scheduleEnergyType) { + String id = scheduleEnergyType.getId(); + String energytypename = scheduleEnergyType.getEnergytypename(); + QueryWrapper<StScheduleEnergyTypeEntity> scheduleEnergyTypeWrapper = new QueryWrapper<>(); + scheduleEnergyTypeWrapper.ne(StringUtils.isNotBlank(id), "id", id); + scheduleEnergyTypeWrapper.and(wrapper -> wrapper.eq("energytypename", energytypename)); + + List<StScheduleEnergyTypeEntity> list = baseDao.selectList(scheduleEnergyTypeWrapper); + return list.size(); + } + +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleModelServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleModelServiceImpl.java new file mode 100644 index 0000000..277bd7e --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleModelServiceImpl.java @@ -0,0 +1,145 @@ +package com.iailab.module.model.mcs.sche.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.iailab.framework.common.pojo.PageResult; +import com.iailab.framework.common.service.impl.BaseServiceImpl; +import com.iailab.module.model.mcs.sche.dao.StScheduleModelDao; +import com.iailab.module.model.mcs.sche.dto.StScheduleModelDto; +import com.iailab.module.model.mcs.sche.entity.StScheduleModelEntity; +import com.iailab.module.model.mcs.sche.entity.StScheduleModelUserParamEntity; +import com.iailab.module.model.mcs.sche.entity.StScheduleParamEntity; +import com.iailab.module.model.mcs.sche.entity.StScheduleParamSettingEntity; +import com.iailab.module.model.mcs.sche.service.StScheduleModelService; +import com.iailab.module.model.mcs.sche.vo.StScheduleModelRespVO; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.UUID; + +/** + * @author PanZhibao + * @date 2021年07月20日 14:23 + */ +@Service("stScheduleModelService") +public class StScheduleModelServiceImpl extends BaseServiceImpl<StScheduleModelDao, StScheduleModelEntity> implements StScheduleModelService { + @Autowired + private StScheduleParamSettingServiceImpl stScheduleParamSettingServiceImpl; + + @Autowired + private StScheduleParamServiceImpl stScheduleParamServiceImpl; + + @Autowired + private StScheduleModelUserParamServiceImpl stScheduleModelUserParamServiceImpl; + + @Override + public PageResult<StScheduleModelRespVO> getPageList(Map<String, Object> params) { + PageResult<StScheduleModelRespVO> result = new PageResult(); + IPage<StScheduleModelRespVO> page = baseDao.getPageList( + getPage(params, null, false), + params + ); + result.setTotal(page.getTotal()); + result.setList(page.getRecords()); + return result; + } + + private QueryWrapper<StScheduleModelEntity> getWrapper(Map<String, Object> params) { + QueryWrapper<StScheduleModelEntity> wrapper = new QueryWrapper<>(); + return wrapper; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void saveStScheduleModel(StScheduleModelDto scheduleModel) { + StScheduleModelEntity stScheduleModelEntity = new StScheduleModelEntity(); + BeanUtils.copyProperties(scheduleModel, stScheduleModelEntity); + stScheduleModelEntity.setId(UUID.randomUUID().toString()); + baseDao.insert(stScheduleModelEntity); + + scheduleModel.getStScheduleParamSettingList().forEach(item -> { + item.setModelid(stScheduleModelEntity.getId()); + }); + stScheduleParamSettingServiceImpl.saveList(scheduleModel.getStScheduleParamSettingList()); + + scheduleModel.getStScheduleParamList().forEach(item -> { + item.setModelid(stScheduleModelEntity.getId()); + }); + stScheduleParamServiceImpl.saveList(scheduleModel.getStScheduleParamList()); + + scheduleModel.getStScheduleModelUserParamList().forEach(item -> { + item.setModelid(stScheduleModelEntity.getId()); + }); + stScheduleModelUserParamServiceImpl.saveList(scheduleModel.getStScheduleModelUserParamList()); + } + + @Override + public StScheduleModelDto getDetailById(String id) { + StScheduleModelDto scheduleMode = new StScheduleModelDto(); + StScheduleModelEntity stScheduleModelEntity = baseDao.selectById(id); + BeanUtils.copyProperties(stScheduleModelEntity, scheduleMode); + List<StScheduleParamSettingEntity> stScheduleParamSettingList = stScheduleParamSettingServiceImpl.getByModelid(stScheduleModelEntity.getId()); + scheduleMode.setStScheduleParamSettingList(stScheduleParamSettingList); + List<StScheduleParamEntity> stScheduleParamList = stScheduleParamServiceImpl.getByModelid(stScheduleModelEntity.getId()); + scheduleMode.setStScheduleParamList(stScheduleParamList); + List<StScheduleModelUserParamEntity> stScheduleModelUserParamList = stScheduleModelUserParamServiceImpl.getByModelid(stScheduleModelEntity.getId()); + scheduleMode.setStScheduleModelUserParamList(stScheduleModelUserParamList); + return scheduleMode; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(StScheduleModelDto scheduleModel) { + StScheduleModelEntity stScheduleModelEntity = new StScheduleModelEntity(); + BeanUtils.copyProperties(scheduleModel, stScheduleModelEntity); + baseDao.updateById(stScheduleModelEntity); + + scheduleModel.getStScheduleParamSettingList().forEach(item -> { + item.setModelid(stScheduleModelEntity.getId()); + }); + stScheduleParamSettingServiceImpl.saveList(scheduleModel.getStScheduleParamSettingList()); + + scheduleModel.getStScheduleParamList().forEach(item -> { + item.setModelid(stScheduleModelEntity.getId()); + }); + stScheduleParamServiceImpl.saveList(scheduleModel.getStScheduleParamList()); + + scheduleModel.getStScheduleModelUserParamList().forEach(item -> { + item.setModelid(stScheduleModelEntity.getId()); + }); + stScheduleModelUserParamServiceImpl.saveList(scheduleModel.getStScheduleModelUserParamList()); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteBatch(String[] scheduleModelIds) { + baseDao.deleteBatchIds(Arrays.asList(scheduleModelIds)); + stScheduleParamSettingServiceImpl.deleteBatch(scheduleModelIds); + stScheduleParamServiceImpl.deleteBatch(scheduleModelIds); + stScheduleModelUserParamServiceImpl.deleteBatch(scheduleModelIds); + } + + @Override + public int check(StScheduleModelEntity scheduleModel) { + String id = scheduleModel.getId(); + String modelname = scheduleModel.getModelname(); + QueryWrapper<StScheduleModelEntity> scheduleModelWrapper = new QueryWrapper<>(); + scheduleModelWrapper.ne(StringUtils.isNotBlank(id), "id", id); + scheduleModelWrapper.and(wrapper -> wrapper.eq("modelname", modelname)); + + List<StScheduleModelEntity> list = baseDao.selectList(scheduleModelWrapper); + return list.size(); + } + + @Override + public Long count() { + QueryWrapper<StScheduleModelEntity> wrapper = new QueryWrapper<>(); + return baseDao.selectCount(wrapper); + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleModelUserParamServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleModelUserParamServiceImpl.java new file mode 100644 index 0000000..30c0370 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleModelUserParamServiceImpl.java @@ -0,0 +1,67 @@ +package com.iailab.module.model.mcs.sche.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.iailab.framework.common.page.PageData; +import com.iailab.framework.common.service.impl.BaseServiceImpl; +import com.iailab.module.model.mcs.sche.dao.StScheduleModelUserParamDao; +import com.iailab.module.model.mcs.sche.entity.StScheduleModelUserParamEntity; +import com.iailab.module.model.mcs.sche.service.StScheduleModelUserParamService; +import com.iailab.module.model.mcs.sche.vo.ScheduleModelUserParamVo; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.UUID; + +/** + * @author PanZhibao + * @date 2021年07月22日 10:40 + */ +@Service("stScheduleModelUserParamService") +public class StScheduleModelUserParamServiceImpl extends BaseServiceImpl<StScheduleModelUserParamDao, StScheduleModelUserParamEntity> implements StScheduleModelUserParamService { + @Override + public PageData<ScheduleModelUserParamVo> page(Map<String, Object> params) { + IPage<StScheduleModelUserParamEntity> page = baseDao.selectPage( + getPage(params, null, false), + getWrapper(params) + ); + return getPageData(page, ScheduleModelUserParamVo.class); + } + + private QueryWrapper<StScheduleModelUserParamEntity> getWrapper(Map<String, Object> params) { + QueryWrapper<StScheduleModelUserParamEntity> wrapper = new QueryWrapper<>(); + return wrapper; + } + + @Override + public List<StScheduleModelUserParamEntity> getByModelid(String modelid) { + QueryWrapper<StScheduleModelUserParamEntity> queryWrapper = new QueryWrapper(); + queryWrapper.eq("modelid", modelid); + queryWrapper.orderByAsc("USERID"); + queryWrapper.orderByAsc("ENERGYTYPEID"); + List<StScheduleModelUserParamEntity> list = baseDao.selectList(queryWrapper); + if (CollectionUtils.isEmpty(list)) { + return new ArrayList<>(); + } + return list; + } + + public void saveList(List<StScheduleModelUserParamEntity> list) { + QueryWrapper<StScheduleModelUserParamEntity> queryWrapper = new QueryWrapper(); + queryWrapper.eq("modelid", list.get(0).getModelid()); + baseDao.delete(queryWrapper); + list.forEach(item -> { + item.setId(UUID.randomUUID().toString()); + baseDao.insert(item); + }); + } + + public void deleteBatch(String[] modelIds) { + QueryWrapper queryWrapper = new QueryWrapper<StScheduleModelUserParamEntity>(); + queryWrapper.in("modelid", modelIds); + baseDao.delete(queryWrapper); + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleObjectServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleObjectServiceImpl.java new file mode 100644 index 0000000..d78c0b9 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleObjectServiceImpl.java @@ -0,0 +1,76 @@ +package com.iailab.module.model.mcs.sche.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.iailab.framework.common.page.PageData; +import com.iailab.framework.common.pojo.PageResult; +import com.iailab.framework.common.service.impl.BaseServiceImpl; +import com.iailab.module.model.mcs.sche.dao.StScheduleObjectDao; +import com.iailab.module.model.mcs.sche.entity.StScheduleObjectEntity; +import com.iailab.module.model.mcs.sche.service.StScheduleObjectService; +import com.iailab.module.model.mcs.sche.vo.StScheduleObjectPageReqVO; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.UUID; + +/** + * @author PanZhibao + * @date 2021年07月20日 17:53 + */ +@Service("stScheduleObjectService") +public class StScheduleObjectServiceImpl extends BaseServiceImpl<StScheduleObjectDao, StScheduleObjectEntity> implements StScheduleObjectService { + + @Override + public PageResult<StScheduleObjectEntity> page(StScheduleObjectPageReqVO reqVO) { + return baseDao.selectPage(reqVO); + } + + private QueryWrapper<StScheduleObjectEntity> getWrapper(Map<String, Object> params) { + String name = (String)params.get("name"); + + QueryWrapper<StScheduleObjectEntity> wrapper = new QueryWrapper<>(); + wrapper.like(StringUtils.isNotBlank(name),"name", name); + + return wrapper; + } + + public StScheduleObjectEntity getDetailById(String id) { + return baseDao.selectById(id); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void saveStScheduleObject(StScheduleObjectEntity scheduleObject) { + scheduleObject.setId(UUID.randomUUID().toString()); + insert(scheduleObject); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(StScheduleObjectEntity scheduleObject) { + this.updateById(scheduleObject); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteBatch(String[] scheduleObjectIds) { + deleteBatchIds(Arrays.asList(scheduleObjectIds)); + } + + @Override + public int check(StScheduleObjectEntity scheduleObject) { + String id = scheduleObject.getId(); + String name = scheduleObject.getName(); + QueryWrapper<StScheduleObjectEntity> scheduleObjectWrapper = new QueryWrapper<>(); + scheduleObjectWrapper.ne(StringUtils.isNotBlank(id), "id", id); + scheduleObjectWrapper.and(wrapper -> wrapper.eq("name", name)); + + List<StScheduleObjectEntity> list = baseDao.selectList(scheduleObjectWrapper); + return list.size(); + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleParamServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleParamServiceImpl.java new file mode 100644 index 0000000..d92942a --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleParamServiceImpl.java @@ -0,0 +1,51 @@ +package com.iailab.module.model.mcs.sche.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.iailab.framework.common.service.impl.BaseServiceImpl; +import com.iailab.module.model.mcs.sche.dao.StScheduleParamDao; +import com.iailab.module.model.mcs.sche.entity.StScheduleParamEntity; +import com.iailab.module.model.mcs.sche.service.StScheduleParamService; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +/** + * @author PanZhibao + * @date 2021年07月22日 10:05 + */ +@Service("stScheduleParamService") +public class StScheduleParamServiceImpl extends BaseServiceImpl<StScheduleParamDao, StScheduleParamEntity> implements StScheduleParamService { + + @Override + public List<StScheduleParamEntity> getByModelid(String modelid) { + QueryWrapper<StScheduleParamEntity> queryWrapper = new QueryWrapper(); + queryWrapper.eq("modelid", modelid); + queryWrapper.orderByAsc("MODELPARAMPORTORDER"); + queryWrapper.orderByAsc("MODELPARAMORDER"); + List<StScheduleParamEntity> list = baseDao.selectList(queryWrapper); + if (CollectionUtils.isEmpty(list)) { + return new ArrayList<>(); + } + return list; + } + + public void saveList(List<StScheduleParamEntity> list) { + QueryWrapper<StScheduleParamEntity> queryWrapper = new QueryWrapper(); + queryWrapper.eq("modelid", list.get(0).getModelid()); + baseDao.delete(queryWrapper); + //scheduleModelEntityFactory.removeModelInputParam(list.get(0).getModelid()); + list.forEach(item -> { + item.setId(UUID.randomUUID().toString()); + baseDao.insert(item); + }); + } + + public void deleteBatch(String[] modelIds) { + QueryWrapper queryWrapper = new QueryWrapper<StScheduleParamEntity>(); + queryWrapper.in("modelid", modelIds); + baseDao.delete(queryWrapper); + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleParamSettingServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleParamSettingServiceImpl.java new file mode 100644 index 0000000..5bbb676 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleParamSettingServiceImpl.java @@ -0,0 +1,49 @@ +package com.iailab.module.model.mcs.sche.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.iailab.framework.common.service.impl.BaseServiceImpl; +import com.iailab.module.model.mcs.sche.dao.StScheduleParamSettingDao; +import com.iailab.module.model.mcs.sche.entity.StScheduleParamSettingEntity; +import com.iailab.module.model.mcs.sche.service.StScheduleParamSettingService; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +/** + * @author PanZhibao + * @date 2021年07月22日 9:07 + */ +@Service("stScheduleParamSettingService") +public class StScheduleParamSettingServiceImpl extends BaseServiceImpl<StScheduleParamSettingDao, StScheduleParamSettingEntity> implements StScheduleParamSettingService { + + @Override + public List<StScheduleParamSettingEntity> getByModelid(String modelid) { + QueryWrapper<StScheduleParamSettingEntity> queryWrapper = new QueryWrapper(); + queryWrapper.eq("modelid", modelid); + queryWrapper.orderByAsc("key"); + List<StScheduleParamSettingEntity> list = baseDao.selectList(queryWrapper); + if (CollectionUtils.isEmpty(list)) { + return new ArrayList<>(); + } + return list; + } + + public void saveList(List<StScheduleParamSettingEntity> list) { + QueryWrapper<StScheduleParamSettingEntity> queryWrapper = new QueryWrapper(); + queryWrapper.eq("modelid", list.get(0).getModelid()); + baseDao.delete(queryWrapper); + list.forEach(item -> { + item.setId(UUID.randomUUID().toString()); + baseDao.insert(item); + }); + } + + public void deleteBatch(String[] modelIds) { + QueryWrapper queryWrapper = new QueryWrapper<StScheduleParamSettingEntity>(); + queryWrapper.in("modelid", modelIds); + baseDao.delete(queryWrapper); + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleSchemeDetailesServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleSchemeDetailesServiceImpl.java new file mode 100644 index 0000000..e8c46b6 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleSchemeDetailesServiceImpl.java @@ -0,0 +1,39 @@ +package com.iailab.module.model.mcs.sche.service.impl; + +import com.iailab.framework.common.service.impl.BaseServiceImpl; +import com.iailab.module.model.mcs.sche.dao.StScheduleSchemeDetailesDao; +import com.iailab.module.model.mcs.sche.entity.StScheduleSchemeDetailesEntity; +import com.iailab.module.model.mcs.sche.service.StScheduleSchemeDetailesService; +import com.iailab.module.model.mcs.sche.vo.ScheduleSchemeDetailesVo; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; +import java.util.Map; + +/** + * @author PanZhibao + * @date 2021年07月26日 16:50 + */ +@Service("stScheduleSchemeDetailesService") +public class StScheduleSchemeDetailesServiceImpl extends BaseServiceImpl<StScheduleSchemeDetailesDao, StScheduleSchemeDetailesEntity> + implements StScheduleSchemeDetailesService { + + private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + @Override + public List<ScheduleSchemeDetailesVo> queryScheduleSchemeDetailes(Map<String, Object> params) { + Calendar calendar = Calendar.getInstance(); + calendar.add(Calendar.HOUR_OF_DAY, -1); + if (StringUtils.isBlank((String)params.get("startTime"))) { + params.put("startTime", calendar.getTime()); + } + return baseDao.queryScheduleSchemeDetailes(params); + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleSchemeServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleSchemeServiceImpl.java new file mode 100644 index 0000000..2a98eb3 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleSchemeServiceImpl.java @@ -0,0 +1,16 @@ +package com.iailab.module.model.mcs.sche.service.impl; + +import com.iailab.framework.common.service.impl.BaseServiceImpl; +import com.iailab.module.model.mcs.sche.dao.StScheduleSchemeDao; +import com.iailab.module.model.mcs.sche.entity.StScheduleSchemeEntity; +import com.iailab.module.model.mcs.sche.service.StScheduleSchemeService; +import org.springframework.stereotype.Service; + +/** + * @author PanZhibao + * @date 2021年08月11日 12:06 + */ +@Service("stScheduleSchemeService") +public class StScheduleSchemeServiceImpl extends BaseServiceImpl<StScheduleSchemeDao, StScheduleSchemeEntity> + implements StScheduleSchemeService { +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleServiceImpl.java new file mode 100644 index 0000000..fa4f254 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleServiceImpl.java @@ -0,0 +1,72 @@ +package com.iailab.module.model.mcs.sche.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.iailab.framework.common.pojo.PageResult; +import com.iailab.framework.common.service.impl.BaseServiceImpl; +import com.iailab.module.model.mcs.sche.dao.StScheduleDao; +import com.iailab.module.model.mcs.sche.entity.StScheduleEntity; +import com.iailab.module.model.mcs.sche.service.StScheduleService; +import com.iailab.module.model.mcs.sche.vo.StSchedulePageReqVO; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; + +/** + * @author PanZhibao + * @date 2021年07月20日 11:37 + */ +@Service("stScheduleService") +public class StScheduleServiceImpl extends BaseServiceImpl<StScheduleDao, StScheduleEntity> implements StScheduleService { + + @Override + public PageResult<StScheduleEntity> page(StSchedulePageReqVO reqVO) { + return baseDao.selectPage(reqVO); + } + + private QueryWrapper<StScheduleEntity> getWrapper(Map<String, Object> params) { + String name = (String) params.get("name"); + + QueryWrapper<StScheduleEntity> wrapper = new QueryWrapper<>(); + wrapper.like(StringUtils.isNotBlank(name), "name", name); + + return wrapper; + } + + public StScheduleEntity getDetailById(String id) { + return baseDao.selectById(id); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void saveSchedule(StScheduleEntity schedule) { + schedule.setId(UUID.randomUUID().toString()); + schedule.setScheduletime(new Date()); + baseDao.insert(schedule); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(StScheduleEntity schedule) { + baseDao.updateById(schedule); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteBatch(String[] storeTypeIds) { + baseDao.deleteBatchIds(Arrays.asList(storeTypeIds)); + } + + @Override + public int check(StScheduleEntity schedule) { + String id = schedule.getId(); + String name = schedule.getName(); + QueryWrapper<StScheduleEntity> scheduleWrapper = new QueryWrapper<>(); + scheduleWrapper.ne(StringUtils.isNotBlank(id), "id", id); + scheduleWrapper.and(wrapper -> wrapper.eq("name", name)); + + List<StScheduleEntity> list = baseDao.selectList(scheduleWrapper); + return list.size(); + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleUserServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleUserServiceImpl.java new file mode 100644 index 0000000..4a7dc24 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StScheduleUserServiceImpl.java @@ -0,0 +1,74 @@ +package com.iailab.module.model.mcs.sche.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.iailab.framework.common.pojo.PageResult; +import com.iailab.framework.common.service.impl.BaseServiceImpl; +import com.iailab.module.model.mcs.sche.dao.StScheduleUserDao; +import com.iailab.module.model.mcs.sche.entity.StScheduleUserEntity; +import com.iailab.module.model.mcs.sche.service.StScheduleUserService; +import com.iailab.module.model.mcs.sche.vo.StScheduleUserPageReqVO; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.UUID; + +/** + * @author PanZhibao + * @date 2021年07月20日 15:15 + */ +@Service("stScheduleUserService") +public class StScheduleUserServiceImpl extends BaseServiceImpl<StScheduleUserDao, StScheduleUserEntity> implements StScheduleUserService { + + @Override + public PageResult<StScheduleUserEntity> page(StScheduleUserPageReqVO reqVO) { + return baseDao.selectPage(reqVO); + } + + private QueryWrapper<StScheduleUserEntity> getWrapper(Map<String, Object> params) { + String username = (String)params.get("username"); + + QueryWrapper<StScheduleUserEntity> wrapper = new QueryWrapper<>(); + wrapper.like(StringUtils.isNotBlank(username),"username", username); + + return wrapper; + } + + public StScheduleUserEntity getDetailById(String id) { + return baseDao.selectById(id); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void saveScheduleUser(StScheduleUserEntity scheduleUser) { + scheduleUser.setId(UUID.randomUUID().toString()); + insert(scheduleUser); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(StScheduleUserEntity scheduleUser) { + this.updateById(scheduleUser); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteBatch(String[] storeTypeIds) { + deleteBatchIds(Arrays.asList(storeTypeIds)); + } + + @Override + public int check(StScheduleUserEntity scheduleUser) { + String id = scheduleUser.getId(); + String username = scheduleUser.getUsername(); + QueryWrapper<StScheduleUserEntity> scheduleUserWrapper = new QueryWrapper<>(); + scheduleUserWrapper.ne(StringUtils.isNotBlank(id), "id", id); + scheduleUserWrapper.and(wrapper -> wrapper.eq("username", username)); + + List<StScheduleUserEntity> list = baseDao.selectList(scheduleUserWrapper); + return list.size(); + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/ScheduleModelUserParamVo.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/ScheduleModelUserParamVo.java new file mode 100644 index 0000000..96fa8fc --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/ScheduleModelUserParamVo.java @@ -0,0 +1,90 @@ +package com.iailab.module.model.mcs.sche.vo; + +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * @author PanZhibao + * @date 2021年07月26日 13:11 + */ +@Data +public class ScheduleModelUserParamVo implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private String id; + + /** + * 模型ID + */ + private String modelid; + + /** + * 模型名称 + */ + private String modelname; + + /** + * 用户ID + */ + private String userid; + + /** + * 用户名称 + */ + private String username; + + /** + * 能源类型ID + */ + private String energytypeid; + + /** + * 能源类型名称 + */ + private String energytypename; + + /** + * 参数ID + */ + private String paramid; + + /** + * 模型状态 + */ + private String modelsatus; + + /** + * 用户排序 + */ + private Integer userorder; + + /** + * 能源排序 + */ + private Integer energyorder; + + /** + * 是否调整 + */ + private Integer isadjust; + + /** + * 调整上限 + */ + private BigDecimal upadjlimit; + + /** + * 调整下限 + */ + private BigDecimal downadjlimit; + + /** + * 调整排序 + */ + private Integer adjorder; +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/ScheduleSchemeDetailesVo.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/ScheduleSchemeDetailesVo.java new file mode 100644 index 0000000..e1f301e --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/ScheduleSchemeDetailesVo.java @@ -0,0 +1,61 @@ +package com.iailab.module.model.mcs.sche.vo; + +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + * @author PanZhibao + * @date 2021年07月26日 11:05 + */ +@Data +public class ScheduleSchemeDetailesVo implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private String id; + + /** + * 调度时间 + */ + private Date scheduletime; + + /** + * schemeorder + */ + private Integer schemeorder; + + /** + * value + */ + private BigDecimal value; + + /** + * modelname + */ + private String modelname; + + /** + * userid + */ + private String userid; + + /** + * username + */ + private String username; + + /** + * energytypeid + */ + private String energytypeid; + + /** + * energytypename + */ + private String energytypename; +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleEnergyTypePageReqVO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleEnergyTypePageReqVO.java new file mode 100644 index 0000000..30f8d8e --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleEnergyTypePageReqVO.java @@ -0,0 +1,21 @@ +package com.iailab.module.model.mcs.sche.vo; + +import com.iailab.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月04日 + */ +@Schema(description = "模型平台 - 管网分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class StScheduleEnergyTypePageReqVO extends PageParam { + + private String energytypename; +} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleEnergyTypeRespVO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleEnergyTypeRespVO.java new file mode 100644 index 0000000..eb26766 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleEnergyTypeRespVO.java @@ -0,0 +1,20 @@ +package com.iailab.module.model.mcs.sche.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月04日 + */ +@Schema(description = "模型平台 - Response VO") +@Data +@ExcelIgnoreUnannotated +public class StScheduleEnergyTypeRespVO { + + private String id; + + private String energytypename; +} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleModelPageReqVO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleModelPageReqVO.java new file mode 100644 index 0000000..e9b7829 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleModelPageReqVO.java @@ -0,0 +1,19 @@ +package com.iailab.module.model.mcs.sche.vo; + +import com.iailab.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月04日 + */ +@Schema(description = "模型平台 - 管网分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class StScheduleModelPageReqVO extends PageParam { +} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleModelRespVO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleModelRespVO.java new file mode 100644 index 0000000..af4aed1 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleModelRespVO.java @@ -0,0 +1,75 @@ +package com.iailab.module.model.mcs.sche.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serializable; + +/** + * @author PanZhibao + * @date 2021年07月21日 14:08 + */ +@Schema(description = "模型平台 - Response VO") +@Data +@ExcelIgnoreUnannotated +public class StScheduleModelRespVO implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private String id; + + + /** + * 模型名称 + */ + private String modelname; + + + /** + * 调度ID + */ + private String scheduleid; + + /** + * 调度名称 + */ + private String schedulename; + + /** + * 对象ID + */ + private String objectid; + + /** + * 对象名称 + */ + private String objectname; + + /** + * 类名 + */ + private String classname; + + /** + * 方法名 + */ + private String methodname; + + /** + * 模型路径 + */ + private String modelpath; + + /** + * 端口长度 + */ + private Integer portlength; + + /** + * 模型状态 + */ + private Integer modelstatus; +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleObjectPageReqVO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleObjectPageReqVO.java new file mode 100644 index 0000000..d643c57 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleObjectPageReqVO.java @@ -0,0 +1,21 @@ +package com.iailab.module.model.mcs.sche.vo; + +import com.iailab.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月04日 + */ +@Schema(description = "模型平台 - 管网分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class StScheduleObjectPageReqVO extends PageParam { + + private String name; +} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleObjectRespVO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleObjectRespVO.java new file mode 100644 index 0000000..f820b50 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleObjectRespVO.java @@ -0,0 +1,28 @@ +package com.iailab.module.model.mcs.sche.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月04日 + */ +@Schema(description = "模型平台 - Response VO") +@Data +@ExcelIgnoreUnannotated +public class StScheduleObjectRespVO { + + private String id; + + /** + * 名称 + */ + private String name; + + /** + * 排序 + */ + private Integer order; +} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StSchedulePageReqVO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StSchedulePageReqVO.java new file mode 100644 index 0000000..3a37cf9 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StSchedulePageReqVO.java @@ -0,0 +1,21 @@ +package com.iailab.module.model.mcs.sche.vo; + +import com.iailab.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月04日 + */ +@Schema(description = "模型平台 - 管网分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class StSchedulePageReqVO extends PageParam { + + private String name; +} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleRespVO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleRespVO.java new file mode 100644 index 0000000..809dc88 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleRespVO.java @@ -0,0 +1,30 @@ +package com.iailab.module.model.mcs.sche.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.Date; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月04日 + */ +@Schema(description = "模型平台 - Response VO") +@Data +@ExcelIgnoreUnannotated +public class StScheduleRespVO { + + private String id; + + /** + * 名称 + */ + private String name; + + /** + * 调度时间 + */ + private Date scheduletime; +} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleUserPageReqVO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleUserPageReqVO.java new file mode 100644 index 0000000..0b555a5 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleUserPageReqVO.java @@ -0,0 +1,21 @@ +package com.iailab.module.model.mcs.sche.vo; + +import com.iailab.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月04日 + */ +@Schema(description = "模型平台 - 管网分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class StScheduleUserPageReqVO extends PageParam { + + private String username; +} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleUserRespVO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleUserRespVO.java new file mode 100644 index 0000000..3b8bb67 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/vo/StScheduleUserRespVO.java @@ -0,0 +1,28 @@ +package com.iailab.module.model.mcs.sche.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月04日 + */ +@Schema(description = "模型平台 - Response VO") +@Data +@ExcelIgnoreUnannotated +public class StScheduleUserRespVO { + + private String id; + + /** + * 用户名称 + */ + private String username; + + /** + * 调整状态 + */ + private String adjuststatus; +} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/common/dto/MdkDataDTO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/common/dto/MdkDataDTO.java new file mode 100644 index 0000000..2ca9412 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/common/dto/MdkDataDTO.java @@ -0,0 +1,9 @@ +package com.iailab.module.model.mdk.common.dto; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月02日 + */ +public class MdkDataDTO { +} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/common/enums/ItemPredictStatus.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/common/enums/ItemPredictStatus.java new file mode 100644 index 0000000..7fae71b --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/common/enums/ItemPredictStatus.java @@ -0,0 +1,27 @@ +package com.iailab.module.model.mdk.common.enums; + +import org.jetbrains.annotations.Contract; + +/** + * 预测项的预测状态 + */ +public enum ItemPredictStatus { + + PREDICTING(1), + + SUCCESS(2), + + FAILED(3); + + private Integer value; + + @Contract(pure = true) + ItemPredictStatus(Integer value) { + this.value = value; + } + + @Contract(pure = true) + public Integer getValue() { + return value; + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/common/enums/TypeA.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/common/enums/TypeA.java new file mode 100644 index 0000000..d547c20 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/common/enums/TypeA.java @@ -0,0 +1,9 @@ +package com.iailab.module.model.mdk.common.enums; + +/** + * @author PanZhibao + * @date 2021年07月29日 11:15 + */ +public enum TypeA { + Predict, Schedule, Train +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/common/exceptions/ArithInvokeException.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/common/exceptions/ArithInvokeException.java new file mode 100644 index 0000000..7b1f1ae --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/common/exceptions/ArithInvokeException.java @@ -0,0 +1,21 @@ +package com.iailab.module.model.mdk.common.exceptions; + +//类 职 责:算法调用异常 +public class ArithInvokeException extends Exception { + public final static String errorGetArithEntity = "获取ArithEntity失败"; + public final static String errorCreateArith = "创建Arith失败"; + + private Throwable cause; + + public ArithInvokeException() { + } + + public ArithInvokeException(String msg) { + super(msg); + } + + public ArithInvokeException(String msg, Exception cause) { + super(msg, cause); + this.cause = cause; + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/common/exceptions/ArrayLengthMisMatchException.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/common/exceptions/ArrayLengthMisMatchException.java new file mode 100644 index 0000000..fc86a8f --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/common/exceptions/ArrayLengthMisMatchException.java @@ -0,0 +1,19 @@ +package com.iailab.module.model.mdk.common.exceptions; + +public class ArrayLengthMisMatchException extends Exception { + public final String arrayLengthMisMatch = "数组维数不匹配"; + + private Throwable cause; + + public ArrayLengthMisMatchException() { + } + + public ArrayLengthMisMatchException(String msg) { + super(msg); + } + + public ArrayLengthMisMatchException(String msg, Exception cause) { + super(msg); + this.cause = cause; + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/common/exceptions/DataAccessException.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/common/exceptions/DataAccessException.java new file mode 100644 index 0000000..024ec3a --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/common/exceptions/DataAccessException.java @@ -0,0 +1,19 @@ +package com.iailab.module.model.mdk.common.exceptions; + +public class DataAccessException extends Exception { + public final static String errorDataAccess = "数据库访问失败"; + private Throwable cause; + + public DataAccessException() { + + } + + public DataAccessException(String msg) { + super(msg); + } + + public DataAccessException(String msg, Throwable cause) { + super(msg, cause); + this.cause = cause; + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/common/exceptions/ErrorCalculateFailedException.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/common/exceptions/ErrorCalculateFailedException.java new file mode 100644 index 0000000..10e6a5b --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/common/exceptions/ErrorCalculateFailedException.java @@ -0,0 +1,19 @@ +package com.iailab.module.model.mdk.common.exceptions; + +public class ErrorCalculateFailedException extends Exception { + public final String errorrCalculate = "误差计算失败"; + + private Throwable cause; + + public ErrorCalculateFailedException() { + } + + public ErrorCalculateFailedException(String msg) { + super(msg); + } + + public ErrorCalculateFailedException(String msg, Exception cause) { + super(msg, cause); + this.cause = cause; + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/common/exceptions/ItemInvokeException.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/common/exceptions/ItemInvokeException.java new file mode 100644 index 0000000..d35b9b8 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/common/exceptions/ItemInvokeException.java @@ -0,0 +1,22 @@ +package com.iailab.module.model.mdk.common.exceptions; + +//类 职 责:预测项调用异常 +public class ItemInvokeException extends Exception { + public final static String errorGetItemEntity = "获取ItemEntity失败"; + public final static String errorGetItemOutput = "获取Item输出信息失败"; + public final static String errorItemFailed = "预测项预测失败"; + + private Throwable cause; + + public ItemInvokeException() { + } + + public ItemInvokeException(String msg) { + super(msg); + } + + public ItemInvokeException(String msg, Exception cause) { + super(msg); + this.cause = cause; + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/common/exceptions/ModelInvokeException.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/common/exceptions/ModelInvokeException.java new file mode 100644 index 0000000..36a1d76 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/common/exceptions/ModelInvokeException.java @@ -0,0 +1,25 @@ +package com.iailab.module.model.mdk.common.exceptions; + +//类 职 责:模型调用异常 +public class ModelInvokeException extends Exception { + public final static String errorGetModelEntity = "获取modelEntity失败"; + public final static String errorGetModelInputCount = "获取Model输入信息失败"; + public final static String errorGetModelOutputCount = "获取Model输出信息失败"; + public final static String errorGetModelArithParam = "获取模型的算法参数失败"; + public final static String errorGetModelFile = "获取模型文件失败"; + + private Throwable cause; + + public ModelInvokeException() { + + } + + public ModelInvokeException(String msg) { + super(msg); + } + + public ModelInvokeException(String msg, Throwable cause) { + super(msg); + this.cause = cause; + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/common/exceptions/RealDataLackException.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/common/exceptions/RealDataLackException.java new file mode 100644 index 0000000..b61069d --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/common/exceptions/RealDataLackException.java @@ -0,0 +1,20 @@ +package com.iailab.module.model.mdk.common.exceptions; + +//类 职 责:数据访问异常 +public class RealDataLackException extends Exception { + public final static String errorRealDataLack = "缺少实际值"; + private Throwable cause; + + public RealDataLackException() { + + } + + public RealDataLackException(String msg) { + super(msg); + } + + public RealDataLackException(String msg, Exception cause) { + super(msg, cause); + this.cause = cause; + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/common/exceptions/SamplePrepareException.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/common/exceptions/SamplePrepareException.java new file mode 100644 index 0000000..d1c554b --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/common/exceptions/SamplePrepareException.java @@ -0,0 +1,19 @@ +package com.iailab.module.model.mdk.common.exceptions; + +//类 职 责:样本准备异常 +public class SamplePrepareException extends Exception { + public final String errorGetHistoryData = "获取历史数据失败"; + private Throwable cause; + + public SamplePrepareException() { + } + + public SamplePrepareException(String msg) { + super(msg); + } + + public SamplePrepareException(String msg, Exception cause) { + super(msg, cause); + this.cause = cause; + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/factory/ItemEntityFactory.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/factory/ItemEntityFactory.java new file mode 100644 index 0000000..7f54058 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/factory/ItemEntityFactory.java @@ -0,0 +1,163 @@ +package com.iailab.module.model.mdk.factory; + +import com.iailab.module.model.mcs.pre.entity.MmItemTypeEntity; +import com.iailab.module.model.mcs.pre.service.MmItemOutputService; +import com.iailab.module.model.mcs.pre.service.MmItemTypeService; +import com.iailab.module.model.mcs.pre.service.MmPredictItemService; +import com.iailab.module.model.mdk.vo.ItemVO; +import com.iailab.module.model.mdk.vo.MergeItemVO; +import com.iailab.module.model.mdk.vo.MmItemOutputVO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 创建预测项对象的工厂 + */ +@Component +public class ItemEntityFactory { + private HashMap<String, ItemVO> ItemVOHashMap = new HashMap<>(); + private Map<String, MmItemTypeEntity> itemTypeMap = new HashMap<>(); + private Map<String, MergeItemVO> mergeItemMap = new HashMap<>(); + private Map<String, ItemVO> itemNoEntityMap = new HashMap<>(); + private Map<String, List<MmItemOutputVO>> itemOutPutItemMap = new HashMap<>(); + private Map<String, MmItemOutputVO> itemOutputMap = new HashMap<>(); + + @Autowired + private MmPredictItemService mmPredictItemService; + + @Autowired + private MmItemOutputService mmItemOutputService; + + @Autowired + private MmItemTypeService mmItemTypeService; + + /** + * 1.根据ITEMID,获取模型对应的MERGEITEM实体 + * + * @param itemId + * @return + */ + public MergeItemVO getMergeItem(String itemId) { + MergeItemVO mergeItemVO = mmPredictItemService.getMergeItemByItemId(itemId); + if (!mergeItemMap.containsKey(itemId)) { + if (mergeItemVO != null) { + mergeItemMap.put(itemId, mergeItemVO); + } else { + return null; + } + } + return mergeItemVO; + } + + /** + * 2.根据ITEMNO,获取模型对应的ITEM实体 + * + * @param itemNo + * @return + */ + public ItemVO getItemByItemNo(String itemNo) { + ItemVO ItemVO = mmPredictItemService.getItemByItemNo(itemNo); + if (!itemNoEntityMap.containsKey(itemNo)) { + if (ItemVO != null) { + itemNoEntityMap.put(itemNo, ItemVO); + } else { + return null; + } + } + return ItemVO; + } + + /** + * 3.根据ITEMID,获取模型对应的ITEM实体 + * + * @param itemId + * @return + */ + public ItemVO getItemById(String itemId) { + ItemVO ItemVO = mmPredictItemService.getItemById(itemId); + if (!ItemVOHashMap.containsKey(itemId)) { + if (ItemVO != null) { + ItemVOHashMap.put(itemId, ItemVO); + } else { + return null; + } + } + return ItemVO; + } + + /** + * 4. 根据ITEMID,获取模型对应的ITEMOUTPUT实体 + * + * @param itemId + * @return + */ + public List<MmItemOutputVO> getOutPutByItemId(String itemId) { + List<MmItemOutputVO> list = mmItemOutputService.getOutPutByItemId(itemId); + if (!itemOutPutItemMap.containsKey(itemId)) { + if (list != null) { + itemOutPutItemMap.put(itemId, list); + } else { + return null; + } + } + return list; + } + + /** + * 5. + * + * @param outputId + * @return + */ + public MmItemOutputVO getItemOutPutById(String outputId) { + if (!itemOutputMap.containsKey(outputId)) { + MmItemOutputVO itemOutput = mmItemOutputService.getOutPutById(outputId); + if (itemOutput != null) { + itemOutputMap.put(outputId, itemOutput); + } else { + return null; + } + } + return itemOutputMap.get(outputId); + } + + /** + * 6.根据预测项ID,获取预测项对应的输出参数的维数 + * + * @param itemId + * @return + */ + public Integer getItemOutputCount(String itemId) { + if (!itemOutPutItemMap.containsKey(itemId)) { + List<MmItemOutputVO> list = mmItemOutputService.getOutPutByItemId(itemId); + if (list != null) { + itemOutPutItemMap.put(itemId, list); + } else { + return 0; + } + } + return itemOutPutItemMap.get(itemId).size(); + } + + /** + * 7.根据预测项ID,获取对应的MmItemTypeEntity实体 + * + * @param itemId + * @return + */ + public MmItemTypeEntity getMmItemTypeEntity(String itemId) { + if (!itemTypeMap.containsKey(itemId)) { + MmItemTypeEntity MmItemTypeEntity = mmItemTypeService.getItemTypeByItemId(itemId); + if (MmItemTypeEntity != null) { + itemTypeMap.put(itemId, MmItemTypeEntity); + } else { + return null; + } + } + return itemTypeMap.get(itemId); + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/factory/ModelEntityFactory.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/factory/ModelEntityFactory.java new file mode 100644 index 0000000..bc663e3 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/factory/ModelEntityFactory.java @@ -0,0 +1,150 @@ +package com.iailab.module.model.mdk.factory; + +import com.iailab.module.model.mcs.pre.entity.MmModelArithSettingsEntity; +import com.iailab.module.model.mcs.pre.entity.MmModelParamEntity; +import com.iailab.module.model.mcs.pre.entity.MmPredictModelEntity; +import com.iailab.module.model.mcs.pre.service.MmModelArithSettingsService; +import com.iailab.module.model.mcs.pre.service.MmModelParamService; +import com.iailab.module.model.mcs.pre.service.MmPredictModelService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 创建和管理模型实体 + */ +@Slf4j +@Component +public class ModelEntityFactory { + + private Map<String, Object> modelFileMap = new HashMap<>(); + private Map<String, MmPredictModelEntity> modelEntityMap = new HashMap<>(); + private Map<String, List<MmModelParamEntity>> modelInputParamMap = new HashMap<>(); + private Map<String, List<MmModelArithSettingsEntity>> modelArithParamMap = new HashMap<>(); + private Map<String, List<MmPredictModelEntity>> modelListMap = new HashMap<>(); + + @Autowired + private MmPredictModelService mmPredictModelService; + + @Autowired + private MmModelParamService mmModelParamService; + + @Autowired + private MmModelArithSettingsService mmModelArithSettingsService; + + /** + * 2.根据模型ID,获取模型实体 + * + * @param modelId + * @return + */ + public MmPredictModelEntity getModelEntity(String modelId) { + MmPredictModelEntity modelEntity = mmPredictModelService.getInfo(modelId); + if (!modelEntityMap.containsKey(modelId)) { + if (modelEntity != null) { + modelEntityMap.put(modelId, modelEntity); + } + } + return modelEntity; + } + + /** + * 3.根据模型ID,获取模型对应的输入参数 + * + * @param modelId + * @return + */ + public List<MmModelParamEntity> getModelInputParam(String modelId) { + if (!modelInputParamMap.containsKey(modelId)) { + List<MmModelParamEntity> modelInputParamEntities = mmModelParamService.getByModelid(modelId); + if (modelInputParamEntities != null) { + modelInputParamMap.put(modelId, modelInputParamEntities); + } else { + return null; + } + } + return mmModelParamService.getByModelid(modelId); + } + + /** + * 4.根据模型ID,获取模型对应的输入参数的维数 + * + * @param modelId + * @return + */ + public Integer getModelInputCount(String modelId) { + if (!modelInputParamMap.containsKey(modelId)) { + List<MmModelParamEntity> modelInputParamEntityList = mmModelParamService.getByModelid(modelId); + if (modelInputParamEntityList != null) { + modelInputParamMap.put(modelId, modelInputParamEntityList); + } else { + return 0; + } + } + return modelInputParamMap.get(modelId).size(); + } + + /** + * 5.根据模型ID,获取模型对应的算法参数 + * + * @param modelId + * @return + */ + public List<MmModelArithSettingsEntity> getModelArithParam(String modelId) { + if (!modelArithParamMap.containsKey(modelId)) { + List<MmModelArithSettingsEntity> modelArithParamEntityList = mmModelArithSettingsService.getByModelId(modelId); + if (modelArithParamEntityList != null) { + modelArithParamMap.put(modelId, modelArithParamEntityList); + } else { + return null; + } + } + return modelArithParamMap.get(modelId); + } + + /** + * 7.根据预测项itemID,获取status=1的模型列表 + * + * @param itemId + * @return + */ + public List<MmPredictModelEntity> getActiveModelByItemId(String itemId) { + if (!modelListMap.containsKey(itemId)) { + List<MmPredictModelEntity> modelEntityList = mmPredictModelService.getActiveModelByItemId(itemId); + if (modelEntityList != null) { + modelListMap.put(itemId, modelEntityList); + } else { + return null; + } + } + return modelListMap.get(itemId); + } + + /** + * 8.根据模型ID,删除模型对应的输入参数 + * + * @param modelId + * @return + */ + public void removeModelInputParam(String modelId) { + if (modelInputParamMap.containsKey(modelId)) { + log.info("removeModelInputParam:modelId=" + modelId); + modelInputParamMap.remove(modelId); + } + } + + /** + * 清除缓存 + */ + public void removeModelEntity() { + modelFileMap.clear(); + modelEntityMap.clear(); + modelInputParamMap.clear(); + modelArithParamMap.clear(); + modelListMap.clear(); + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/factory/PredictItemFactory.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/factory/PredictItemFactory.java new file mode 100644 index 0000000..1290ff6 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/factory/PredictItemFactory.java @@ -0,0 +1,40 @@ +package com.iailab.module.model.mdk.factory; + +import com.iailab.module.model.mcs.pre.entity.MmItemTypeEntity; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationContext; +import org.springframework.stereotype.Component; + +/** + * 创建预测项对象的工厂 + */ +@Slf4j +@Component +public class PredictItemFactory { + + @Autowired + private ApplicationContext applicationContext; + + @Autowired + private ItemEntityFactory itemEntityFactory; + + /** + * 根据预测项实体创建对应的预测项对象 + * + * @param itemId + * @return + */ + public Object create(String itemId) { + MmItemTypeEntity itemTypeEntity = itemEntityFactory.getMmItemTypeEntity(itemId); + //获取预测项的预测程序的类 + Object itemObject = null; + try { + Class clazz = Class.forName(itemTypeEntity.getItemclasstype()); + itemObject = applicationContext.getBean(clazz); + } catch (Exception e) { + log.error("exception message : {}", e.getMessage()); + } + return itemObject; + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/PredictItemHandler.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/PredictItemHandler.java new file mode 100644 index 0000000..ec51294 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/PredictItemHandler.java @@ -0,0 +1,17 @@ +package com.iailab.module.model.mdk.predict; + +import com.iailab.module.model.mdk.common.exceptions.ItemInvokeException; +import com.iailab.module.model.mdk.vo.ItemVO; +import com.iailab.module.model.mdk.vo.PredictResultVO; + +import java.util.Date; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月01日 + */ +public interface PredictItemHandler { + + PredictResultVO predict(Date predictTime, ItemVO predictItemDto) throws ItemInvokeException; +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/PredictModelHandler.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/PredictModelHandler.java new file mode 100644 index 0000000..5253a3c --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/PredictModelHandler.java @@ -0,0 +1,17 @@ +package com.iailab.module.model.mdk.predict; + +import com.iailab.module.model.mcs.pre.entity.MmPredictModelEntity; +import com.iailab.module.model.mdk.common.exceptions.ModelInvokeException; +import com.iailab.module.model.mdk.vo.PredictResultVO; + +import java.util.Date; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月01日 + */ +public interface PredictModelHandler { + + PredictResultVO predictByModel(Date predictTime, MmPredictModelEntity predictModel) throws ModelInvokeException; +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/PredictModuleHandler.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/PredictModuleHandler.java new file mode 100644 index 0000000..853bd14 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/PredictModuleHandler.java @@ -0,0 +1,73 @@ +package com.iailab.module.model.mdk.predict; + +import com.iailab.module.model.mcs.pre.enums.ItemStatus; +import com.iailab.module.model.mdk.factory.PredictItemFactory; +import com.iailab.module.model.mdk.vo.ItemVO; +import com.iailab.module.model.mdk.vo.PredictResultVO; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.text.MessageFormat; +import java.time.Duration; +import java.time.Instant; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年08月30日 + */ +@Slf4j +@Component +public class PredictModuleHandler { + + + @Autowired + private PredictItemFactory predictItemFactory; + + @Autowired + private PredictResultHandler predictResultHandler; + + + public Map<String, PredictResultVO> predict(List<ItemVO> predictItemList, Date predictTime, int intervalTime) { + Map<String, PredictResultVO> result = new HashMap<>(); + + PredictResultVO predictResult = new PredictResultVO(); + for (ItemVO predictItem : predictItemList) { + if (!predictItem.getStatus().equals(ItemStatus.STATUS1)) { + continue; + } + try { + PredictItemHandler predictItemHandler = (PredictItemHandler)predictItemFactory.create(predictItem.getId()); + Instant start = Instant.now(); + try { + predictResult = predictItemHandler.predict(predictTime, predictItem); + } catch (Exception e) { + e.printStackTrace(); + log.error(String.valueOf(e)); + } + Instant end = Instant.now(); + Long drtPre = Duration.between(start, end).getSeconds(); + log.info(MessageFormat.format("预测项:{0},预测时间:{1}秒", predictItem.getItemName(), drtPre)); + + predictResult.setT(intervalTime); + predictResult.setSaveIndex(predictItem.getSaveIndex()); + predictResult.setLt(1); + predictResultHandler.savePredictResult(predictResult); + Instant endSave = Instant.now(); + Long drtSave = Duration.between(end, endSave).getSeconds(); + log.info(MessageFormat.format("预测项:{0},保存时间:{1}秒", predictItem.getItemName(), + drtSave)); + } catch (Exception e) { + e.printStackTrace(); + log.error(MessageFormat.format("预测项编号:{0},预测项名称:{1},预测失败:{2} 预测时刻:{3}", + predictItem.getId(), predictItem.getItemName(), e.getMessage(), predictTime)); + } + } + return result; + } +} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/PredictResultHandler.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/PredictResultHandler.java new file mode 100644 index 0000000..e69b1e7 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/PredictResultHandler.java @@ -0,0 +1,90 @@ +package com.iailab.module.model.mdk.predict; + +import com.iailab.module.data.api.point.DataPointApi; +import com.iailab.module.data.api.point.dto.ApiPointDTO; +import com.iailab.module.data.enums.DataPointFreq; +import com.iailab.module.model.mcs.pre.service.MmItemResultService; +import com.iailab.module.model.mdk.factory.ItemEntityFactory; +import com.iailab.module.model.mdk.vo.MmItemOutputVO; +import com.iailab.module.model.mdk.vo.DataValueVO; +import com.iailab.module.model.mdk.vo.PredictResultVO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.*; + +@Service +public class PredictResultHandler { + @Autowired + private MmItemResultService mmItemResultService; + + @Autowired + private ItemEntityFactory itemEntityFactory; + + @Autowired + private DataPointApi dataPointApi; + + /** + * convertToPredictData + * + * @param predictResult + * @return + */ + private Map<String, List<DataValueVO>> convertToPredictData(PredictResultVO predictResult) { + Map<String, List<DataValueVO>> resultMap = new HashMap<>(); + List<MmItemOutputVO> itemOutPutList = itemEntityFactory.getOutPutByItemId(predictResult.getPredictId()); + + if (!CollectionUtils.isEmpty(predictResult.getPredictList())) { + resultMap.put(itemOutPutList.get(0).getId(), predictResult.getPredictList()); + return resultMap; + } + ApiPointDTO point = dataPointApi.getPointById(itemOutPutList.get(0).getPointId()); + List<Date> dateTimeList = new ArrayList<>(); + Integer rows = predictResult.getPredictMatrix().length; + Integer columns = predictResult.getPredictMatrix()[0].length; + Date tempTime = predictResult.getPredictTime(); + for (Integer i = 0; i < rows; i++) { + dateTimeList.add(tempTime); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(tempTime); + calendar.add(Calendar.SECOND, DataPointFreq.getEumByCode(point.getMinfreqid()).getValue()); + tempTime = calendar.getTime(); + } + for (Integer i = 0; i < columns; i++) { + List<DataValueVO> predictDataList = new ArrayList<>(); + for (Integer j = 0; j < rows; j++) { + DataValueVO predictData = new DataValueVO(); + predictData.setDataTime(dateTimeList.get(j)); + predictData.setDataValue(Double.valueOf(predictResult.getPredictMatrix()[j][i])); + predictDataList.add(predictData); + } + resultMap.put(itemOutPutList.get(i).getId(), predictDataList); + predictResult.setPredictList(predictDataList); + } + return resultMap; + } + + /** + * savePredictResult + * + * @param predictResult + */ + @Async + public void savePredictResult(PredictResultVO predictResult) { + Map<String, List<DataValueVO>> resultMap = convertToPredictData(predictResult); + mmItemResultService.savePredictValue(resultMap, predictResult.getLt(), "n", predictResult.getPredictTime()); + } + + public List<DataValueVO> getPredictValueByItemNo(String itemNo, Date start, Date end) { + String itemId = itemEntityFactory.getItemByItemNo(itemNo).getId(); + List<MmItemOutputVO> outputList = itemEntityFactory.getOutPutByItemId(itemId); + return mmItemResultService.getPredictValue(outputList.get(0).getId(), start, end); + } + + public List<DataValueVO> getPredictValueByItemId(String itemId, Date start, Date end) { + List<MmItemOutputVO> outputList = itemEntityFactory.getOutPutByItemId(itemId); + return mmItemResultService.getPredictValue(outputList.get(0).getId(), start, end); + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/impl/PredictItemMergeHandlerImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/impl/PredictItemMergeHandlerImpl.java new file mode 100644 index 0000000..b00251d --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/impl/PredictItemMergeHandlerImpl.java @@ -0,0 +1,131 @@ +package com.iailab.module.model.mdk.predict.impl; + +import com.iailab.module.data.api.point.DataPointApi; +import com.iailab.module.data.api.point.dto.ApiPointDTO; +import com.iailab.module.data.enums.DataPointFreq; +import com.iailab.module.model.mdk.common.enums.ItemPredictStatus; +import com.iailab.module.model.mdk.common.exceptions.ItemInvokeException; +import com.iailab.module.model.mdk.factory.ItemEntityFactory; +import com.iailab.module.model.mdk.factory.PredictItemFactory; +import com.iailab.module.model.mdk.predict.PredictItemHandler; +import com.iailab.module.model.mdk.predict.PredictResultHandler; +import com.iailab.module.model.mdk.vo.DataValueVO; +import com.iailab.module.model.mdk.vo.ItemVO; +import com.iailab.module.model.mdk.vo.MmItemOutputVO; +import com.iailab.module.model.mdk.vo.PredictResultVO; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.sql.Timestamp; +import java.util.*; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月01日 + */ +@Slf4j +@Component +public class PredictItemMergeHandlerImpl implements PredictItemHandler { + + @Autowired + private ItemEntityFactory itemEntityFactory; + + @Autowired + private DataPointApi dataPointApi; + + @Autowired + private PredictItemFactory predictItemFactory; + + @Autowired + private PredictResultHandler predictResultHandler; + + @Override + public PredictResultVO predict(Date predictTime, ItemVO predictItemDto) + throws ItemInvokeException { + PredictResultVO predictResult = new PredictResultVO(); + ItemPredictStatus itemStatus = ItemPredictStatus.PREDICTING; + String itemId = predictItemDto.getId(); + try { + String expression = itemEntityFactory.getMergeItem(itemId).getExpression(); + int predictLength = itemEntityFactory.getItemById(itemId).getPredictLength(); + double[][] predictResultMat = new double[predictLength][1]; + Map<String, List<DataValueVO>> predictValueMap = new HashMap<>(); + String[] mathItem = expression.split("[\\+ \\-]"); + ArrayList<Character> operator = new ArrayList<>(); + for (int i = 0; i < expression.length(); i++) { + if (expression.charAt(i)=='+' || expression.charAt(i)=='-'){ + operator.add(expression.charAt(i)); + } + } + String[] compositionItem = expression.split(String.valueOf("&".toCharArray())); + //是否为计算预测项 + if (mathItem.length > 1) { + for (String itemNo : mathItem) { + if (itemNo.length() > 4) { + Date endTime = predictTime; + ItemVO itemEntity = itemEntityFactory.getItemByItemNo(itemNo); + List<MmItemOutputVO> outPutList = itemEntityFactory.getOutPutByItemId(itemEntity.getId()); + ApiPointDTO pointEntity = dataPointApi.getPointById(outPutList.get(0).getPointId()); + + Calendar calendar = Calendar.getInstance(); + calendar.setTime(endTime); + calendar.add(Calendar.SECOND, (predictLength - 1) * DataPointFreq.getEumByCode(pointEntity.getMinfreqid()).getValue()); + endTime = new Timestamp(calendar.getTime().getTime()); + List<DataValueVO> predictValueList = predictResultHandler.getPredictValueByItemNo(itemNo, predictTime, endTime); + if (predictValueList.size() != predictLength) { + log.debug("merge项融合失败:缺少子项预测数据,对应子项ItemNo=" + itemNo); + return null; + } + predictValueMap.put(itemNo, predictValueList); + } + } + for (Integer i = 0; i < predictLength; i++) { + double sum =0.0; + sum = predictValueMap.get(mathItem[0]).get(i).getDataValue(); + for (int j = 1; j < mathItem.length; j++) { + if (operator.get(j-1)=='+') + {sum += predictValueMap.get(mathItem[j]).get(i).getDataValue();} + if (operator.get(j-1)=='-') + {sum -= predictValueMap.get(mathItem[j]).get(i).getDataValue();} + } + predictResultMat[i][0] = sum; + } + } + //是否为组合预测项 + if (compositionItem.length > 1) { + Map<String, PredictResultVO> predictResultMap = new HashMap<>(); + Integer columnTotalNumber = 0; + Integer rowNumber = 0; + for (String itemNo : compositionItem) { + PredictItemHandler predictItem = (PredictItemHandler) predictItemFactory.create(itemEntityFactory. + getItemByItemNo(itemNo).getId()); + predictResult = predictItem.predict(predictTime, predictItemDto); + columnTotalNumber += Integer.valueOf(predictResult.getPredictMatrix().length); + predictResultMap.put(itemNo, predictItem.predict(predictTime, predictItemDto)); + } + double[][] matrix = new double[columnTotalNumber][1]; + for (String itemNo : compositionItem) { + for (Integer i = 0; i < predictResultMap.get(itemNo).getPredictMatrix().length; i++) { + matrix[rowNumber][0] = predictResultMap.get(itemNo).getPredictMatrix()[i][0]; + rowNumber++; + } + } + predictResult.setPredictMatrix(matrix); + } + predictResult.setPredictId(itemId); + predictResult.setPredictMatrix(predictResultMat); + predictResult.setPredictTime(predictTime); + //预测项预测成功的状态 + itemStatus = ItemPredictStatus.SUCCESS; + } catch (Exception e) { + //预测项预测失败的状态 + itemStatus = ItemPredictStatus.FAILED; + log.debug("merge项预测失败,itemId:" + itemId); + throw e; + } + log.debug("预测完成,itemId:" + itemId + ",itemStatus:" + itemStatus.getValue()); + return predictResult; + } +} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/impl/PredictItemNormalHandlerImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/impl/PredictItemNormalHandlerImpl.java new file mode 100644 index 0000000..ef3149a --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/impl/PredictItemNormalHandlerImpl.java @@ -0,0 +1,74 @@ +package com.iailab.module.model.mdk.predict.impl; + +import com.iailab.framework.common.util.collection.CollectionUtils; +import com.iailab.module.model.mcs.pre.entity.MmPredictModelEntity; +import com.iailab.module.model.mcs.pre.service.MmPredictModelService; +import com.iailab.module.model.mdk.common.enums.ItemPredictStatus; +import com.iailab.module.model.mdk.common.exceptions.ItemInvokeException; +import com.iailab.module.model.mdk.common.exceptions.ModelInvokeException; +import com.iailab.module.model.mdk.predict.PredictItemHandler; +import com.iailab.module.model.mdk.predict.PredictModelHandler; +import com.iailab.module.model.mdk.vo.ItemVO; +import com.iailab.module.model.mdk.vo.PredictResultVO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.sql.Timestamp; +import java.text.MessageFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月01日 + */ +@Component +public class PredictItemNormalHandlerImpl implements PredictItemHandler { + + @Autowired + private MmPredictModelService mmPredictModelService; + + @Autowired + private PredictModelHandler predictModelHandler; + + @Override + public PredictResultVO predict(Date predictTime, ItemVO predictItemDto) + throws ItemInvokeException{ + String itemId = predictItemDto.getId(); + ItemPredictStatus itemStatus = ItemPredictStatus.PREDICTING; + PredictResultVO finalResult = new PredictResultVO(); + PredictResultVO predictResult = new PredictResultVO(); + List<PredictResultVO> predictResultList = new ArrayList<>(); + try { + // 获取预测项模型 + List<MmPredictModelEntity> predictModelList = mmPredictModelService.getActiveModelByItemId(itemId); + if (CollectionUtils.isAnyEmpty(predictModelList)) { + throw new ModelInvokeException(MessageFormat.format("{0},itemId={1}", + ModelInvokeException.errorGetModelEntity, itemId)); + } + for (MmPredictModelEntity predictModel : predictModelList) { + predictResult = predictModelHandler.predictByModel(predictTime, predictModel); + predictResult.setPredictId(itemId); + predictResultList.add(predictResult); + } + itemStatus = ItemPredictStatus.SUCCESS; + Calendar calendar = Calendar.getInstance(); + calendar.setTime(predictTime); + calendar.add(Calendar.MINUTE, predictResult.getPredictMatrix().length - 1); + Timestamp endTime = new Timestamp(calendar.getTime().getTime()); + finalResult = predictResultList.get(0); + + } catch (Exception ex) { + ex.printStackTrace(); + //预测项预测失败的状态 + itemStatus = ItemPredictStatus.FAILED; + throw new ItemInvokeException(MessageFormat.format("{0},itemId={1}", + ItemInvokeException.errorItemFailed, itemId)); + } + + return finalResult; + } +} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/impl/PredictModelHandlerImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/impl/PredictModelHandlerImpl.java new file mode 100644 index 0000000..7b47923 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/predict/impl/PredictModelHandlerImpl.java @@ -0,0 +1,167 @@ +package com.iailab.module.model.mdk.predict.impl; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.iail.IAILMDK; +import com.iail.model.IAILModel; +import com.iailab.module.model.mcs.pre.entity.MmModelArithSettingsEntity; +import com.iailab.module.model.mcs.pre.entity.MmModelResultstrEntity; +import com.iailab.module.model.mcs.pre.entity.MmPredictModelEntity; +import com.iailab.module.model.mcs.pre.service.MmModelArithSettingsService; +import com.iailab.module.model.mcs.pre.service.MmModelResultstrService; +import com.iailab.module.model.mdk.common.enums.TypeA; +import com.iailab.module.model.mdk.common.exceptions.ModelInvokeException; +import com.iailab.module.model.mdk.predict.PredictModelHandler; +import com.iailab.module.model.mdk.sample.SampleConstructor; +import com.iailab.module.model.mdk.sample.dto.SampleData; +import com.iailab.module.model.mdk.vo.PredictResultVO; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月01日 + */ +@Slf4j +@Component +public class PredictModelHandlerImpl implements PredictModelHandler { + + @Autowired + private MmModelArithSettingsService mmModelArithSettingsService; + + @Autowired + private MmModelResultstrService mmModelResultstrService; + + @Autowired + private SampleConstructor sampleConstructor; + + @Override + public PredictResultVO predictByModel(Date predictTime, MmPredictModelEntity predictModel) throws ModelInvokeException { + PredictResultVO result = new PredictResultVO(); + if (predictModel == null) { + throw new ModelInvokeException("modelEntity is null"); + } + String modelId = predictModel.getId(); + + try { + List<SampleData> sampleDataList = sampleConstructor.constructSample(TypeA.Predict.name(), modelId, predictTime); + String modelPath = predictModel.getModelpath(); + if (modelPath == null) { + System.out.println("模型路径不存在,modelId=" + modelId); + return null; + } + IAILModel newModelBean = composeNewModelBean(predictModel); + HashMap<String, Object> settings = getPredictSettingsByModelId(modelId); + if (settings == null) { + log.error("模型setting不存在,modelId=" + modelId); + return null; + } + int portLength = sampleDataList.size(); + Object[] param2Values = new Object[portLength + 2]; + for (int i = 0; i < portLength; i++) { + param2Values[i]=sampleDataList.get(i).getMatrix(); + } + param2Values[portLength] = newModelBean.getDataMap().get("models"); + param2Values[portLength+1] = settings; + + log.info("#######################预测模型 " + predictModel.getItemid() + " ##########################"); + JSONObject jsonObjNewModelBean = new JSONObject(); + jsonObjNewModelBean.put("newModelBean", newModelBean); + log.info(String.valueOf(jsonObjNewModelBean)); + JSONObject jsonObjParam2Values = new JSONObject(); + jsonObjParam2Values.put("param2Values", param2Values); + log.info(String.valueOf(jsonObjParam2Values)); + + //IAILMDK.run + HashMap<String, Object> modelResult = IAILMDK.run(newModelBean, param2Values); + //打印结果 + JSONObject jsonObjResult = new JSONObject(); + jsonObjResult.put("result", result); + log.info(String.valueOf(jsonObjResult)); + + MmModelResultstrEntity modelResultstr = mmModelResultstrService.getInfo(predictModel.getResultstrid()); + log.info("模型计算完成:modelId=" + modelId + result); + double[][] temp = (double[][]) modelResult.get(modelResultstr.getResultstr()); + result.setPredictMatrix(temp); + result.setPredictTime(predictTime); + } catch (Exception ex) { + log.error("IAILModel对象构造失败,modelId=" + modelId); + log.error(ex.getMessage()); + log.error("调用发生异常,异常信息为:{}" , ex); + ex.printStackTrace(); + + } + return result; + } + + /** + * 构造IAILMDK.run()方法的newModelBean参数 + * + * @param predictModel + * @return + */ + private IAILModel composeNewModelBean(MmPredictModelEntity predictModel) { + IAILModel newModelBean = new IAILModel(); + newModelBean.setClassName(predictModel.getClassname().trim()); + newModelBean.setMethodName(predictModel.getMethodname().trim()); + //构造参数类型 + String[] paArStr = predictModel.getModelparamstructure().trim().split(","); + Class<?>[] paramsArray = new Class[paArStr.length]; + for (int i = 0; i < paArStr.length; i++) { + if ("[[D".equals(paArStr[i])) { + paramsArray[i] = double[][].class; + } else if ("Map".equals(paArStr[i]) || "java.util.HashMap".equals(paArStr[i])) { + paramsArray[i] = HashMap.class; + } + } + newModelBean.setParamsArray(paramsArray); + HashMap<String, Object> dataMap = new HashMap<>(); + HashMap<String, String> models = new HashMap<>(1); + models.put("paramFile", predictModel.getModelpath()); + dataMap.put("models", models); + newModelBean.setDataMap(dataMap); + return newModelBean; + } + + /** + * 根据模型id获取参数map + * + * @param modelId + * @return + */ + private HashMap<String, Object> getPredictSettingsByModelId(String modelId) { + List<MmModelArithSettingsEntity> list = mmModelArithSettingsService.getByModelId(modelId); + HashMap<String, Object> result = new HashMap<>(); + for (MmModelArithSettingsEntity entry : list) { + String valueType = entry.getValuetype().trim(); //去除两端空格 + if ("int".equals(valueType)) { + int value = Integer.parseInt(entry.getValue()); + result.put(entry.getKey(), value); + } else if ("double".equals(valueType)) { + double value = Double.parseDouble(entry.getValue()); + result.put(entry.getKey(), value); + } else if ("string".equals(valueType)) { + String value = entry.getValue(); + result.put(entry.getKey(), value); + } else if ("decimalArray".equals(valueType)) { + JSONArray valueArray = JSONArray.parseArray(entry.getValue()); + double[] value = new double[valueArray.size()]; + for (int i = 0; i < valueArray.size(); i++) { + value[i] = Double.parseDouble(valueArray.get(i).toString()); + } + result.put(entry.getKey(), value); + } else if ("decimal".equals(valueType)) { + double value = Double.parseDouble(entry.getValue()); + result.put(entry.getKey(), value); + } + } + return result; + } +} \ 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 new file mode 100644 index 0000000..f6573a1 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/PredictSampleDataConstructor.java @@ -0,0 +1,148 @@ +package com.iailab.module.model.mdk.sample; + +import com.iailab.framework.common.util.object.ConvertUtils; +import com.iailab.module.data.api.point.DataPointApi; +import com.iailab.module.data.api.point.dto.ApiPointDTO; +import com.iailab.module.data.api.point.dto.ApiPointValueDTO; +import com.iailab.module.data.api.point.dto.ApiPointValueQueryDTO; +import com.iailab.module.model.mcs.pre.service.MmItemResultService; +import com.iailab.module.model.mdk.factory.ItemEntityFactory; +import com.iailab.module.model.mdk.sample.dto.ColumnItem; +import com.iailab.module.model.mdk.sample.dto.ColumnItemPort; +import com.iailab.module.model.mdk.sample.dto.SampleData; +import com.iailab.module.model.mdk.sample.dto.SampleInfo; +import com.iailab.module.model.mdk.vo.DataValueVO; +import com.iailab.module.model.mdk.vo.MmItemOutputVO; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.math.BigDecimal; +import java.util.*; + +/** + * 预测样本数据构造 + */ +@Component +public class PredictSampleDataConstructor extends SampleDataConstructor { + + private Logger logger = LoggerFactory.getLogger(getClass()); + + @Autowired + private DataPointApi dataPointApi; + + @Autowired + private MmItemResultService mmItemResultService; + + @Autowired + private ItemEntityFactory itemEntityFactory; + + /** + * alter by zfc 2020.11.24 修改数据样本构造方案:sampleInfo中数据已按爪子进行分类,但爪内数据为无序的, + * 对爪内数据样本拼接:先基于modelParamOrder对项进行排序(重写comparator匿名函数),再逐项拼接 + * + * @param sampleInfo + * @return + */ + @Override + public List<SampleData> prepareSampleData(SampleInfo sampleInfo) { + List<SampleData> sampleDataList = new ArrayList<>(); + //对每个爪分别进行计算 + int deviationIndex = 0; + for (ColumnItemPort entry : sampleInfo.getColumnInfo()) { + //先依据爪内数据项的modelParamOrder进行排序——重写comparator匿名函数 + Collections.sort(entry.getColumnItemList(), new Comparator<ColumnItem>() { + @Override + public int compare(ColumnItem o1, ColumnItem o2) { + return o1.getModelParamOrder() - o2.getModelParamOrder(); + } + }); + + //默认都是double类型的数据,且按列向量进行拼接,默认初始值为0.0 + double[][] matrix = new double[entry.getDataLength()][entry.getColumnItemList().size()]; + for (int i = 0; i < entry.getColumnItemList().size(); i++) { + for (int j = 0; j < entry.getDataLength(); j++) { + matrix[j][i] = -2.0; + } + } + + //找出对应的调整值 + BigDecimal[] deviationItem = null; + if (sampleInfo.getDeviation() != null && sampleInfo.getDeviation().length > 0) { + deviationItem = sampleInfo.getDeviation()[deviationIndex]; + } + deviationIndex++; + + //对每一项依次进行数据查询,然后将查询出的值赋给matrix对应的位置 + for (int i = 0; i < entry.getColumnItemList().size(); i++) { + try { + List<DataValueVO> dataEntityList = getData(entry.getColumnItemList().get(i)); + //设置调整值 + if (deviationItem != null && deviationItem.length > 0) { + logger.info("设置调整值, i = " + i); + if (deviationItem[i] != null && deviationItem[i].compareTo(BigDecimal.ZERO) != 0) { + for (int dataKey = 1; dataKey < dataEntityList.size(); dataKey++) { + DataValueVO item = dataEntityList.get(dataKey); + item.setDataValue(item.getDataValue() + deviationItem[i].doubleValue()); + } + } + } + //补全数据 + ColumnItem columnItem = entry.getColumnItemList().get(i); + dataEntityList = super.completionData(matrix.length, dataEntityList, columnItem.startTime, columnItem.getEndTime(), columnItem.granularity); + + /** 如果数据取不满,把缺失的数据点放在后面 */ + if (dataEntityList != null && dataEntityList.size() != 0) { + logger.info("设置matrix, i = " + i + ", size = " + dataEntityList.size()); + for (int k = 0; k < dataEntityList.size(); k++) { + matrix[k][i] = dataEntityList.get(k).getDataValue(); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + SampleData sampleData = new SampleData(); + sampleData.setMatrix(matrix); + sampleDataList.add(sampleData); + } + return sampleDataList; + } + + /** + * getData + * + * @param columnItem + * @return + * @throws Exception + */ + private List<DataValueVO> getData(ColumnItem columnItem) throws Exception { + List<DataValueVO> dataList = new ArrayList<>(); + String paramType = columnItem.getParamType(); + switch (paramType) { + case "DATAPOINT": + ApiPointDTO point = dataPointApi.getPointById(columnItem.getId()); + ApiPointValueQueryDTO queryDto = new ApiPointValueQueryDTO(); + queryDto.setPointNo(point.getPointNo()); + queryDto.setStart(columnItem.getStartTime()); + queryDto.setEnd(columnItem.getEndTime()); + List<ApiPointValueDTO> pointValueList = dataPointApi.getValue(queryDto); + dataList = ConvertUtils.sourceToTarget(pointValueList, DataValueVO.class); + break; + case "PREDICTITEM": + MmItemOutputVO outPut = itemEntityFactory.getItemOutPutById(columnItem.getId()); + dataList = mmItemResultService.getPredictValue(outPut.getId(), + columnItem.getStartTime(), columnItem.getEndTime()); + if (dataList == null) { + throw new Exception("没有预测值"); + } + break; + + + default: + break; + } + return dataList; + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/PredictSampleInfoConstructor.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/PredictSampleInfoConstructor.java new file mode 100644 index 0000000..17002f6 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/PredictSampleInfoConstructor.java @@ -0,0 +1,142 @@ +package com.iailab.module.model.mdk.sample; + +import com.iailab.module.model.mcs.pre.entity.MmModelParamEntity; +import com.iailab.module.model.mcs.pre.service.MmPredictModelService; +import com.iailab.module.model.mdk.factory.ItemEntityFactory; +import com.iailab.module.model.mdk.factory.ModelEntityFactory; +import com.iailab.module.model.mdk.sample.dto.ColumnItem; +import com.iailab.module.model.mdk.sample.dto.ColumnItemPort; +import com.iailab.module.model.mdk.sample.dto.SampleInfo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月03日 + */ +@Component +public class PredictSampleInfoConstructor extends SampleInfoConstructor { + + @Autowired + private MmPredictModelService mmPredictModelService; + + @Autowired + private ModelEntityFactory modelEntityFactory; + + @Autowired + private ItemEntityFactory itemEntityFactory; + + @Override + public SampleInfo prepareSampleInfo(String modelId, Date predictTime) { + return super.prepareSampleInfo(modelId, predictTime); + } + + /** + * 返回样本矩阵的列数 + * + * @param modelId + * @return + */ + @Override + protected Integer getSampleColumn(String modelId) { + return mmPredictModelService.getSampleLength(modelId).intValue(); + } + + /** + * 返回样本的开始时间 + * + * @param columnItem + * @param predictTime + * @return + */ + @Override + protected Date getStartTime(ColumnItem columnItem, Date predictTime) { + return super.getStartTime(columnItem, predictTime); + } + + /** + * 返回样本的结束时间 + * + * @param columnItem + * @param predictTime + * @return + */ + @Override + protected Date getEndTime(ColumnItem columnItem, Date predictTime) { + return super.getEndTime(columnItem, predictTime); + } + + /** + * 样本的列信息 + * + * @param modelId + * @param predictTime + * @return + */ + @Override + protected List<ColumnItemPort> getColumnInfo(String modelId, Date predictTime) { + List<ColumnItemPort> resultList = new ArrayList<>(); + List<ColumnItem> columnItemList = new ArrayList<>(); + ColumnItem columnInfo = new ColumnItem(); + ColumnItemPort curPort = new ColumnItemPort(); //当前端口 + List<MmModelParamEntity> modelInputParamEntityList = modelEntityFactory.getModelInputParam(modelId); + if (CollectionUtils.isEmpty(modelInputParamEntityList)) { + return null; + } + //设置当前端口号,初始值为最小端口(查询结果按端口号从小到达排列) + int curPortOrder = modelInputParamEntityList.get(0).getModelparamportorder(); + //设置当前查询数据长度,初始值为最小端口数据长度 + int curDataLength = modelInputParamEntityList.get(0).getDatalength(); + for (MmModelParamEntity entry : modelInputParamEntityList) { + columnInfo.setParamType(entry.getModelparamtype()); + columnInfo.setId(entry.getModelparamid()); + columnInfo.setDataLength(entry.getDatalength()); + columnInfo.setModelParamOrder(entry.getModelparamorder()); + columnInfo.setModelParamPortOrder(entry.getModelparamportorder()); + columnInfo.setStartTime(getStartTime(columnInfo, predictTime)); + columnInfo.setEndTime(getEndTime(columnInfo, predictTime)); + columnInfo.setGranularity(super.getGranularity(columnInfo)); + + //对每一个爪进行数据项归并 + if (curPortOrder != entry.getModelparamportorder()){ + //当数据项端口号不为当前端口号时,封装上一个端口类,操作下一个端口类 + curPort.setColumnItemList(columnItemList); + curPort.setDataLength(curDataLength); + curPort.setPortOrder(curPortOrder); + resultList.add(curPort); + curPort = new ColumnItemPort(); //对象重新初始化,防止引用拷贝导致数据覆盖 + //封装上一个端口类后更新当前的各个参数 + columnItemList = new ArrayList<>(); + curDataLength = entry.getDatalength(); + curPortOrder = entry.getModelparamportorder(); + } + columnItemList.add(columnInfo); + columnInfo = new ColumnItem(); //对象重新初始化,防止引用拷贝导致数据覆盖 + } + //当迭代到最后一个项的时候,封装最后一个端口的信息 + curPort.setColumnItemList(columnItemList); + curPort.setDataLength(curDataLength); + curPort.setPortOrder(curPortOrder); + resultList.add(curPort); + return resultList; + } + + /** + * 样本的采样周期 + * + * @param modelId + * @return + */ + @Override + protected Integer getSampleCycle(String modelId) { + return itemEntityFactory.getItemById(modelEntityFactory.getModelEntity(modelId).getItemid()).getGranularity(); + } + + +} \ 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/SampleConstructor.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/SampleConstructor.java new file mode 100644 index 0000000..ce7dd8b --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/SampleConstructor.java @@ -0,0 +1,43 @@ +package com.iailab.module.model.mdk.sample; + +import com.iailab.module.model.mdk.common.exceptions.DataAccessException; +import com.iailab.module.model.mdk.sample.dto.SampleData; +import com.iailab.module.model.mdk.sample.dto.SampleInfo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.sql.Timestamp; +import java.text.MessageFormat; +import java.util.Date; +import java.util.List; + +/** + * 样本构造 + * + * @author PanZhibao + * @Description + * @createTime 2024年09月03日 + */ +@Component +public class SampleConstructor { + + @Autowired + private SampleFactory sampleFactory; + + public List<SampleData> constructSample(String typeA, String modelId, Date runTime) { + try { + SampleInfoConstructor sampleInfoConstructor = sampleFactory.createSampleInfo(typeA, modelId); + SampleInfo sampleInfo = sampleInfoConstructor.prepareSampleInfo(modelId, runTime); + SampleDataConstructor sampleDataConstructor = sampleFactory.createSampelData(typeA); + return sampleDataConstructor.prepareSampleData(sampleInfo); + } catch (Exception e) { + DataAccessException exception = new DataAccessException(MessageFormat.format("{0},类名为{1}", + DataAccessException.errorDataAccess, Thread.currentThread().getStackTrace()[1].getClassName())); + System.out.println(exception); + e.printStackTrace(); + return null; + } + + + } +} \ 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/SampleDataConstructor.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/SampleDataConstructor.java new file mode 100644 index 0000000..bee81d5 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/SampleDataConstructor.java @@ -0,0 +1,95 @@ +package com.iailab.module.model.mdk.sample; + +import com.iailab.module.model.mdk.sample.dto.SampleData; +import com.iailab.module.model.mdk.sample.dto.SampleInfo; +import com.iailab.module.model.mdk.vo.DataValueVO; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.util.CollectionUtils; + +import java.util.*; + +abstract class SampleDataConstructor { + + private Logger logger = LoggerFactory.getLogger(getClass()); + + /** + * prepareSampleData + * + * @param sampleInfo + * @return + */ + public abstract List<SampleData> prepareSampleData(SampleInfo sampleInfo); + + /** + * 补全数据 + * + * @param length + * @param dataEntityList + * @param startTime + * @param endTime + * @return + */ + public List<DataValueVO> completionData(int length, List<DataValueVO> dataEntityList, Date startTime, Date endTime, int granularity) { + if (CollectionUtils.isEmpty(dataEntityList) || length <= dataEntityList.size()) { + return dataEntityList; + } + logger.info("补全数据, length =" + length + "; size = " + dataEntityList.size() + "; startTime = " + startTime.getTime() + "; endTime = " + endTime.getTime()); + logger.info("补全前:" + dataEntityList); + + Map<Long, Double> sourceDataMap = new HashMap<>(dataEntityList.size()); + for (DataValueVO dataEntity : dataEntityList) { + sourceDataMap.put(dataEntity.getDataTime().getTime(), dataEntity.getDataValue()); + } + + //找出缺少项 + long oneMin = 1000 * granularity; + long start = startTime.getTime(); + long end = endTime.getTime(); + long mins = ((end - start) / oneMin) + 1; + Map<Long, Double> dataMap = new LinkedHashMap<>(); + for (int i = 0; i < mins; i++) { + Long key = start + oneMin * i; + Double value = sourceDataMap.get(key); + dataMap.put(key, value); + } + + //补充缺少项 + int k = 0; + Map.Entry<Long, Double> lastItem = null; + List<DataValueVO> completionDataEntityList = new ArrayList<>(); + for (Map.Entry<Long, Double> item : dataMap.entrySet()) { + if (k == 0 && item.getValue() == null) { + item.setValue(getFirstValue(dataMap)); + } else if (item.getValue() == null) { + item.setValue(lastItem.getValue()); + } + k++; + lastItem = item; + + DataValueVO dataEntity = new DataValueVO(); + dataEntity.setDataTime(new Date(item.getKey())); + dataEntity.setDataValue(item.getValue()); + completionDataEntityList.add(dataEntity); + } + + logger.info("补全后:" + completionDataEntityList); + return completionDataEntityList; + } + + /** + * getFirstValue + * + * @param dataMap + * @return + */ + private Double getFirstValue(Map<Long, Double> dataMap) { + for (Map.Entry<Long, Double> item : dataMap.entrySet()) { + if (item.getValue() != null) { + return item.getValue(); + } + } + return null; + } + +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/SampleFactory.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/SampleFactory.java new file mode 100644 index 0000000..587c0ca --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/SampleFactory.java @@ -0,0 +1,41 @@ +package com.iailab.module.model.mdk.sample; + +import com.iailab.module.model.mdk.common.enums.TypeA; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * 样本工厂 + */ +@Component +public class SampleFactory { + + @Autowired + private PredictSampleInfoConstructor predictSampleInfoConstructor; + + @Autowired + private PredictSampleDataConstructor predictSampleDataConstructor; + + /** + * add by zfc 2020.12.15 重写createSampleInfo方法:不区分算法类型直接返回预测时间序列类型 + * + * @param typeA + * @param modelId + * @return + */ + public SampleInfoConstructor createSampleInfo(String typeA, String modelId){ + PredictSampleInfoConstructor sampleInfoConstructor = null; + if (typeA.compareTo(TypeA.Predict.name()) == 0) { + sampleInfoConstructor = predictSampleInfoConstructor; + } + return sampleInfoConstructor; + } + + public SampleDataConstructor createSampelData(String typeA) { + SampleDataConstructor sampleDataConstructor = null; + if (typeA.compareTo(TypeA.Predict.name()) == 0) { + sampleDataConstructor = predictSampleDataConstructor; + } + return sampleDataConstructor; + } +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/SampleInfoConstructor.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/SampleInfoConstructor.java new file mode 100644 index 0000000..c86dc27 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/SampleInfoConstructor.java @@ -0,0 +1,197 @@ +package com.iailab.module.model.mdk.sample; + +import com.iailab.module.data.api.point.DataPointApi; +import com.iailab.module.data.api.point.dto.ApiPointDTO; +import com.iailab.module.data.enums.DataPointFreq; +import com.iailab.module.model.mdk.factory.ItemEntityFactory; +import com.iailab.module.model.mdk.sample.dto.ColumnItem; +import com.iailab.module.model.mdk.sample.dto.ColumnItemPort; +import com.iailab.module.model.mdk.sample.dto.SampleInfo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.sql.Timestamp; +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月03日 + */ +abstract class SampleInfoConstructor { + + @Autowired + private DataPointApi dataPointApi; + + @Autowired + private ItemEntityFactory itemEntityFactory; + + /** + * prepareSampleInfo + * + * @param modelId + * @param predictTime + * @return + */ + public SampleInfo prepareSampleInfo(String modelId, Date predictTime) { + SampleInfo sampleInfo = new SampleInfo(); + //调用样本列数的方法 + sampleInfo.setSampleColumn(getSampleColumn(modelId)); + //样本的列信息 + sampleInfo.setColumnInfo(getColumnInfo(modelId, predictTime)); + //样本的采样周期 + sampleInfo.setSampleCycle(getSampleCycle(modelId)); + return sampleInfo; + } + + /** + * 返回样本矩阵的列数 + * + * @param modelId + * @return + */ + protected abstract Integer getSampleColumn(String modelId); + + /** + * 获取开始时间 + * + * @param columnItem + * @param originalTime + * @return + * @throws Exception + */ + protected Date getStartTime(ColumnItem columnItem, Date originalTime) { + Date dateTime = new Date(); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(originalTime); + switch (columnItem.getParamType()) { + case "DATAPOINT": + ApiPointDTO dataPoint = dataPointApi.getPointById(columnItem.getParamId()); + if (dataPoint == null) { + return null; + } + dateTime = calculateTime(originalTime, true, columnItem.getDataLength(), DataPointFreq.getEumByCode(dataPoint.getMinfreqid()).getValue()); + break; + case "PREDICTITEM": + dateTime = calendar.getTime(); + break; + case "IND-HIS": + dateTime = calculateTime(originalTime, true, columnItem.getDataLength(), 60); + break; + case "IND-PLAN": + dateTime = calendar.getTime(); + break; + default: + break; + } + return dateTime; + } + + /** + * 获取结束时间 + * + * @param columnItem + * @param originalTime + * @return + * @throws Exception + */ + protected Date getEndTime(ColumnItem columnItem, Date originalTime) { + Date dateTime = new Date(); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(originalTime); + switch (columnItem.getParamType()) { + case "DATAPOINT": + ApiPointDTO dataPoint = dataPointApi.getPointById(columnItem.getParamId()); + if (dataPoint == null) { + return null; + } + calendar.add(Calendar.SECOND, DataPointFreq.getEumByCode(dataPoint.getMinfreqid()).getValue() * -1); + break; + case "PREDICTITEM": + dateTime = calculateTime(originalTime, false, columnItem.getDataLength(), 60); + break; + case "IND-HIS": + dateTime = calendar.getTime(); + break; + case "IND-PLAN": + dateTime = calculateTime(originalTime, false, columnItem.getDataLength(), 60); + break; + default: + break; + } + return dateTime; + } + + /** + * 获取粒度,s + * + * @param columnItem + * @return + * @throws Exception + */ + protected Integer getGranularity(ColumnItem columnItem) { + Integer granularity = 60; + switch (columnItem.getParamType()) { + case "DATAPOINT": + ApiPointDTO dataPoint = dataPointApi.getPointById(columnItem.getParamId()); + granularity = DataPointFreq.getEumByCode(dataPoint.getMinfreqid()).getValue(); + break; + case "PREDICTITEM": + granularity = itemEntityFactory.getItemById(columnItem.getParamId()).getGranularity(); + break; + case "IND-HIS": + granularity = 60; + break; + case "IND-PLAN": + granularity = 60; + break; + default: + break; + } + return granularity; + } + + /** + * 样本的列信息 + * + * @param modelId + * @param predictTime + * @return + */ + protected abstract List<ColumnItemPort> getColumnInfo(String modelId, Date predictTime); + + /** + * 样本的采样周期 + * + * @param modelId + * @return + */ + protected abstract Integer getSampleCycle(String modelId); + + /** + * 计算取值的时间 + * + * @param originalTime + * @param backward + * @param dataLength + * @param granularity + * @return + */ + public Date calculateTime(Date originalTime, Boolean backward, int dataLength, int granularity) { + int timeLength; + if (backward) { + timeLength = (-1) * dataLength; + } else { + timeLength = dataLength - 1; + } + Date desTime = originalTime; + Calendar calendar = Calendar.getInstance(); + calendar.setTime(desTime); + calendar.set(Calendar.MILLISECOND, 0); + // 数据长度 * 粒度 + calendar.add(Calendar.SECOND, timeLength * granularity); + return calendar.getTime(); + } +} \ 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/dto/ColumnItem.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/dto/ColumnItem.java new file mode 100644 index 0000000..561f4bc --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/dto/ColumnItem.java @@ -0,0 +1,61 @@ +package com.iailab.module.model.mdk.sample.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.sql.Timestamp; +import java.util.Date; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class ColumnItem { + + /** + * id + */ + public String id; + + /** + * 参数类型 + */ + public String paramType; + + /** + * 参数ID + */ + public String paramId; + + /** + * 数据长度 + */ + public int dataLength; + + /** + * 模型参数排序 + */ + public int modelParamOrder; + + /** + * 模型参数端口排序 + */ + public int modelParamPortOrder; + + /** + * 采样的开始时间 + */ + public Date startTime; + + /** + * 采样的结束时间 + */ + public Date endTime; + + /** + * 采样粒度,s + */ + public int granularity; +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/dto/ColumnItemPort.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/dto/ColumnItemPort.java new file mode 100644 index 0000000..05706f9 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/dto/ColumnItemPort.java @@ -0,0 +1,32 @@ +package com.iailab.module.model.mdk.sample.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * add by zfc 2020.11.25 用于对每个爪的Column进行归类 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class ColumnItemPort { + /** + * 爪内数据项的列表 + */ + private List<ColumnItem> columnItemList; + + /** + * 爪的端口号 + */ + private int portOrder; + + /** + * 预测数据长度 + */ + private int dataLength; +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/dto/SampleData.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/dto/SampleData.java new file mode 100644 index 0000000..4f058cc --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/dto/SampleData.java @@ -0,0 +1,14 @@ +package com.iailab.module.model.mdk.sample.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class SampleData { + private double[][] matrix; +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/dto/SampleInfo.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/dto/SampleInfo.java new file mode 100644 index 0000000..14fab98 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/sample/dto/SampleInfo.java @@ -0,0 +1,33 @@ +package com.iailab.module.model.mdk.sample.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.sql.Timestamp; +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class SampleInfo { + /** + * 用于记录端口的个数(爪的个数) + */ + private Integer portLength; + + private Integer sampleColumn; + + private Timestamp startTime; + + private Timestamp endTime; + + private List<ColumnItemPort> columnInfo; + + private Integer sampleCycle; + + private BigDecimal[][] deviation; +} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/vo/DataValueVO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/vo/DataValueVO.java new file mode 100644 index 0000000..9b360d8 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/vo/DataValueVO.java @@ -0,0 +1,23 @@ +package com.iailab.module.model.mdk.vo; + +import lombok.Data; + +import java.util.Date; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月02日 + */ +@Data +public class DataValueVO { + /** + * 时间戳 + */ + private Date dataTime; + + /** + * 数值 + */ + private Double dataValue; +} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/vo/ItemVO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/vo/ItemVO.java new file mode 100644 index 0000000..2068a7a --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/vo/ItemVO.java @@ -0,0 +1,29 @@ +package com.iailab.module.model.mdk.vo; + +import lombok.Data; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月01日 + */ +@Data +public class ItemVO { + private String id; + private String itemNo; + private String itemName; + private String itemType; + private Integer predictLength; + private Integer granularity; + private Integer status; + private Integer isFuse; + private Integer predictPhase; + private Integer workChecked; + private Integer isDisplay; + private Integer unitTransFactor; + + /** + * 保留的预测点位 (T+2 则n=2, T+30则n=30, T+n则表示从最后点位开始,n=预测长度;n由系统配置得出) + */ + private String saveIndex; +} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/vo/MergeItemVO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/vo/MergeItemVO.java new file mode 100644 index 0000000..e7a0522 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/vo/MergeItemVO.java @@ -0,0 +1,18 @@ +package com.iailab.module.model.mdk.vo; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class MergeItemVO { + private String id; + private String itemId; + private String expression; + private String itemNo; + private Integer num; +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/vo/MmItemOutputVO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/vo/MmItemOutputVO.java new file mode 100644 index 0000000..ae25275 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/vo/MmItemOutputVO.java @@ -0,0 +1,17 @@ +package com.iailab.module.model.mdk.vo; + +import lombok.Data; + +/** + * @author PanZhibao + * @Description + * @createTime 2024年09月02日 + */ +@Data +public class MmItemOutputVO { + private String id; + private String itemId; + private String pointId; + private String resultTableName; + private Integer order; +} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/vo/ModelArithParamVO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/vo/ModelArithParamVO.java new file mode 100644 index 0000000..7b5ab3a --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/vo/ModelArithParamVO.java @@ -0,0 +1,30 @@ +package com.iailab.module.model.mdk.vo; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 模型算法参数实体 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class ModelArithParamVO { + /** + * 算法参数名称 + */ + private String arithParamName; + + /** + * 算法参数类型 + */ + private String arithParamType; + + /** + * 算法参数值 + */ + private String arithParamValue; +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/vo/ModelInputParamVO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/vo/ModelInputParamVO.java new file mode 100644 index 0000000..2cc6e8f --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/vo/ModelInputParamVO.java @@ -0,0 +1,46 @@ +package com.iailab.module.model.mdk.vo; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 模型输入参数实体 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class ModelInputParamVO { + /** + * 模型输入参数名称 + */ + private String modelParamName; + + /** + * 模型输入参数类型 + */ + private String modelParamType; + + /** + * 模型输入参数的ID(PREDICTITEM类型的为ITEMID,DATAPOINT类型的为POINTDID) + */ + private String modelParamId; + + /** + * 模型输入参数的顺序 + */ + private Integer modelParamOrder; + + /** + * 模型参数对应的爪的顺序 + * add by zfc 2020.11.24 添加模型参数对应的爪的order + */ + private int modelParamPortOrder; + + /** + * 预测数据长度 + */ + private int dataLength; +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/vo/ModelVO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/vo/ModelVO.java new file mode 100644 index 0000000..199c7d6 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/vo/ModelVO.java @@ -0,0 +1,122 @@ +package com.iailab.module.model.mdk.vo; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; + +/** + * 模型实体 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class ModelVO { + /** + * 模型ID + */ + private String id; + + /** + * 模型编号 + */ + private String modelNo; + + /** + * 模型名称 + */ + private String modelName; + + /** + * 预测项ID + */ + private String itemId; + + /** + * 算法ID + */ + private String arithId; + + /** + * 训练样本长度 + */ + private Integer trainSampleLength; + + /** + * 预测样本长度 + */ + private Integer predictSampleLength; + + /** + * 是否在线训练 + */ + private Integer isOnlineTrain; + + /** + * 模型路径 + */ + private String modelPath; + + /** + * 是否归一化 + */ + private Integer isNormal; + + /** + * 归一化后的最大值 + */ + private Double normalMax; + + /** + * 归一化后的最小值 + */ + private Double normalMin; + + /** + * 是否参与预测 + */ + private Integer status; + + /** + * 类名称 + */ + private String className; + + /** + * 方法名称 + */ + private String methodName; + + /** + * 模型构造器 + */ + private String modelParamStructure; + + /** + * 结果ID + */ + private String resultstrid; + + /** + * settingMap + */ + private String settingMap; + + /** + * 训练模型路径 + */ + private String trainModelPath; + + /** + * 模型路径状态(1:需要更换,0:不需要更换) + */ + private BigDecimal pathStatus; + + /** + * 预测阶段需要输入的数据长度 + */ + private Integer pdim; +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/vo/PredictResultVO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/vo/PredictResultVO.java new file mode 100644 index 0000000..3c36180 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mdk/vo/PredictResultVO.java @@ -0,0 +1,51 @@ +package com.iailab.module.model.mdk.vo; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class PredictResultVO { + + /** + * 如果是单独预测项,则predictID=itemID;如果是模块,则predictID=moduleID + */ + private String predictId; + + /** + * 预测的时间 + */ + private Date predictTime; + + /** + * 统一预测入口的预测类型(循环调用、手动调用) + */ + private double[][] predictMatrix; + + /** + * 时间间隔 (当前预测时间 与 上一次预测时间 相差的分钟数;系统计算得出) + */ + private int t; + + /** + * 时间间隔 (当前预测时间 与 上一次预测时间 相差的分钟数;系统计算得出) + */ + private int lt; + + /** + * 保留的预测点位 (T+2 则n=2, T+30则n=30, T+n则表示从最后点位开始,n=预测长度;n由系统配置得出) + */ + private String saveIndex; + + /** + * 预测集合 + */ + private List<DataValueVO> predictList; +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/sample/constructor/SampleConstructor.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/sample/constructor/SampleConstructor.java deleted file mode 100644 index 32f2e68..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/sample/constructor/SampleConstructor.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.iailab.module.model.sample.constructor; - - -import com.iailab.module.model.sample.dto.SampleData; -import com.iailab.module.model.sample.dto.SampleInfo; -import lombok.extern.slf4j.Slf4j; -import javax.annotation.Resource; -import org.springframework.stereotype.Component; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -/** - * 样本构造 - * - * @author PanZhibao - * @Description - * @createTime 2023年05月16日 15:17:00 - */ -@Slf4j -@Component -public class SampleConstructor { - - @Resource - private SampleInfoConstructor sampleInfoConstructor; - - @Resource - private SampleDataConstructor sampleDataConstructor; - - public List<SampleData> constructSample(String modelId, Date runTime) { - List<SampleData> list = new ArrayList<>(); - try { - SampleInfo sampleInfo = sampleInfoConstructor.prepareSampleInfo(modelId, runTime); - list = sampleDataConstructor.prepareSampleData(sampleInfo); - } catch (Exception ex) { - ex.printStackTrace(); - log.error("constructSample:" + ex.getMessage()); - } - return list; - } -} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/sample/constructor/SampleDataConstructor.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/sample/constructor/SampleDataConstructor.java deleted file mode 100644 index dc89335..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/sample/constructor/SampleDataConstructor.java +++ /dev/null @@ -1,208 +0,0 @@ -package com.iailab.module.model.sample.constructor; -import com.iailab.module.data.api.point.DataPointApi; -import com.iailab.module.data.api.point.dto.ApiPointValueDTO; -import com.iailab.module.data.api.point.dto.ApiPointValueQueryDTO; -import com.iailab.module.data.api.point.dto.ApiPointDTO; -import com.iailab.module.mcs.service.StModelResultService; -import com.iailab.module.model.sample.dto.ColumnItem; -import com.iailab.module.model.sample.dto.ColumnItemPort; -import com.iailab.module.model.sample.dto.SampleData; -import com.iailab.module.model.sample.dto.SampleInfo; -import com.iailab.module.model.sample.entity.DataEntity; -import lombok.extern.slf4j.Slf4j; -import javax.annotation.Resource; -import org.springframework.stereotype.Component; -import org.springframework.util.CollectionUtils; - -import java.sql.Timestamp; -import java.util.*; -import java.util.stream.Collectors; - -/** - * @author PanZhibao - * @Description - * @createTime 2023年05月16日 16:24:00 - */ -@Slf4j -@Component -public class SampleDataConstructor { - - @Resource - private DataPointApi dataPointApi; - - @Resource - private StModelResultService modelResultService; - - public List<SampleData> prepareSampleData(SampleInfo sampleInfo) { - List<SampleData> sampleDataList = new ArrayList<>(); - for (ColumnItemPort entry : sampleInfo.getColumnInfo()) { - double[][] matrix = new double[entry.getDataLength()][entry.getColumnItemList().size()]; - for (int i = 0; i < entry.getColumnItemList().size(); i++) { - ColumnItem columnItem = entry.getColumnItemList().get(i); - List<DataEntity> dataEntityList = getColumnData(columnItem); - - //补全数据 - dataEntityList = completionData(matrix.length, dataEntityList, columnItem.startTime, columnItem.endTime, columnItem.paramId); - - if (CollectionUtils.isEmpty(dataEntityList)) { - continue; - } - for (int k = 0; k < entry.getDataLength(); k++) { - matrix[k][i] = dataEntityList.get(k).getDataValue(); - } - } - SampleData sampleData = new SampleData(); - sampleData.setMatrix(matrix); - sampleDataList.add(sampleData); - } - return sampleDataList; - } - - public List<DataEntity> getColumnData(ColumnItem columnItem) { - List<DataEntity> dataEntityList = new ArrayList<>(); - switch (columnItem.getParamType()) { - case "predict": - // 预测值 - dataEntityList = modelResultService.getValueList(columnItem.getParamId(), columnItem.startTime, columnItem.endTime) - .stream().collect(Collectors.toList()); - break; - case "point": - // 测点值 - ApiPointValueQueryDTO dto = new ApiPointValueQueryDTO(); - dto.setEnd(columnItem.endTime); - dto.setStart(columnItem.startTime); - dto.setPointNo(columnItem.getParamId()); - List<ApiPointValueDTO> pointValues = dataPointApi.getValue(dto); - - List<DataEntity> tempList = new ArrayList<>(); - pointValues.forEach(item -> { - DataEntity dataEntity = new DataEntity(); - dataEntity.setDataValue(item.getDataValue()); - dataEntity.setTimeStamp(item.getDataTime()); - tempList.add(dataEntity); - }); - dataEntityList = tempList; - break; - default: - break; - } - return dataEntityList; - } - - /** - * 补全数据 - * - * @param length - * @param dataEntityList - * @param startTime - * @param endTime - * @return - */ - public List<DataEntity> completionData(int length, List<DataEntity> dataEntityList, Date startTime, Date endTime, String paramId) { - if (CollectionUtils.isEmpty(dataEntityList) || length <= dataEntityList.size()) { - return dataEntityList; - } - /*log.info("补全数据, length =" + length + "; size = " + dataEntityList.size() + "; startTime = " + startTime + "; endTime = " + endTime); - log.info("补全前:" + dataEntityList);*/ - - ApiPointDTO dataPoint = dataPointApi.getPoint(paramId); - - Map<Long, Double> sourceDataMap = new HashMap<>(dataEntityList.size()); - for (DataEntity dataEntity : dataEntityList) { - sourceDataMap.put(dataEntity.getTimeStamp().getTime(), dataEntity.getDataValue()); - } - - //找出缺少项 - long oneMin = 1000 * SampleInfoConstructor.minFreqMap.get(dataPoint.getMinfreqid()); - long start = startTime.getTime(); - long end = endTime.getTime(); - long mins = ((end - start) / oneMin) + 1; - Map<Long, Double> dataMap = new LinkedHashMap<>(); - for (int i = 0; i < mins; i ++) { - Long key = start + oneMin * i; - Double value = sourceDataMap.get(key); - dataMap.put(key, value); - } - - //补充缺少项 - int k = 0; - Map.Entry<Long, Double> lastItem = null; - List<DataEntity> completionDataEntityList = new ArrayList<>(); - for (Map.Entry<Long, Double> item : dataMap.entrySet()) { - if (k == 0 && item.getValue() == null) { - item.setValue(getFirstValue(dataMap)); - } else if (item.getValue() == null) { - item.setValue(lastItem.getValue()); - } - k ++; - lastItem = item; - - DataEntity dataEntity = new DataEntity(); - dataEntity.setTimeStamp(new Timestamp(item.getKey())); - dataEntity.setDataValue(item.getValue()); - completionDataEntityList.add(dataEntity); - } - - // log.info("补全后:" + completionDataEntityList); - return completionDataEntityList; - } - - public List<DataEntity> completionData(int length, List<DataEntity> dataEntityList, Date startTime, Date endTime, int s) { - if (CollectionUtils.isEmpty(dataEntityList) || length <= dataEntityList.size()) { - return dataEntityList; - } - Map<Long, Double> sourceDataMap = new HashMap<>(dataEntityList.size()); - for (DataEntity dataEntity : dataEntityList) { - sourceDataMap.put(dataEntity.getTimeStamp().getTime(), dataEntity.getDataValue()); - } - - //找出缺少项 - long oneMin = 1000 * s; - long start = startTime.getTime(); - long end = endTime.getTime(); - long mins = ((end - start) / oneMin) + 1; - Map<Long, Double> dataMap = new LinkedHashMap<>(); - for (int i = 0; i < mins; i ++) { - Long key = start + oneMin * i; - Double value = sourceDataMap.get(key); - dataMap.put(key, value); - } - - //补充缺少项 - int k = 0; - Map.Entry<Long, Double> lastItem = null; - List<DataEntity> completionDataEntityList = new ArrayList<>(); - for (Map.Entry<Long, Double> item : dataMap.entrySet()) { - if (k == 0 && item.getValue() == null) { - item.setValue(getFirstValue(dataMap)); - } else if (item.getValue() == null) { - item.setValue(lastItem.getValue()); - } - k ++; - lastItem = item; - - DataEntity dataEntity = new DataEntity(); - dataEntity.setTimeStamp(new Timestamp(item.getKey())); - dataEntity.setDataValue(item.getValue()); - completionDataEntityList.add(dataEntity); - } - - // log.info("补全后:" + completionDataEntityList); - return completionDataEntityList; - } - - /** - * getFirstValue - * - * @param dataMap - * @return - */ - private Double getFirstValue(Map<Long, Double> dataMap) { - for (Map.Entry<Long, Double> item : dataMap.entrySet()) { - if (item.getValue() != null) { - return item.getValue(); - } - } - return null; - } -} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/sample/constructor/SampleInfoConstructor.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/sample/constructor/SampleInfoConstructor.java deleted file mode 100644 index 196fff9..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/sample/constructor/SampleInfoConstructor.java +++ /dev/null @@ -1,171 +0,0 @@ -package com.iailab.module.model.sample.constructor; - - -import com.iailab.module.data.api.point.DataPointApi; -import com.iailab.module.data.api.point.dto.ApiPointDTO; -import com.iailab.module.mcs.dto.StModelParamDTO; -import com.iailab.module.mcs.service.StModelParamService; -import com.iailab.module.model.sample.dto.ColumnItem; -import com.iailab.module.model.sample.dto.ColumnItemPort; -import com.iailab.module.model.sample.dto.SampleInfo; -import javax.annotation.Resource; -import org.springframework.stereotype.Component; -import org.springframework.util.CollectionUtils; - -import java.util.*; - -/** - * @author PanZhibao - * @Description - * @createTime 2023年05月16日 16:25:00 - */ -@Component -public class SampleInfoConstructor { - - @Resource - private StModelParamService stModelParamService; - - @Resource - private DataPointApi dataPointApi; - - public static final Map<String, Integer> minFreqMap = new HashMap<>(); - - private int DAY_SECOND = 1000 * 60 * 60 * 24; - - SampleInfoConstructor() { - minFreqMap.put("NET10", 10); - minFreqMap.put("NET30", 30); - minFreqMap.put("NET60", 60); - minFreqMap.put("NET_KIO10", 10); - minFreqMap.put("NET_KIO60", 60); - } - - public SampleInfo prepareSampleInfo(String modelId, Date predictTime) throws Exception { - SampleInfo sampleInfo = new SampleInfo(); - sampleInfo.setSampleColumn(getSampleColumn(modelId)); - sampleInfo.setColumnInfo(getColumnInfo(modelId, predictTime)); - return sampleInfo; - } - - private Integer getSampleColumn(String modelId) { - return stModelParamService.getByModelId(modelId).size(); - } - - private List<ColumnItemPort> getColumnInfo(String modelId, Date dateTime) throws Exception { - List<ColumnItemPort> resultList = new ArrayList<>(); - List<ColumnItem> columnItemList = new ArrayList<>(); - ColumnItem columnInfo = new ColumnItem(); - ColumnItemPort curPort = new ColumnItemPort(); //当前端口 - List<StModelParamDTO> modelParamList = stModelParamService.getByModelId(modelId); - if (CollectionUtils.isEmpty(modelParamList)) { - return null; - } - int curPortOrder = modelParamList.get(0).getParamPortOrder(); - int curDataLength = modelParamList.get(0).getDataLength(); - for (StModelParamDTO entry : modelParamList) { - columnInfo.setParamType(entry.getParamType()); - columnInfo.setParamId(entry.getParamId()); - columnInfo.setDataLength(entry.getDataLength()); - columnInfo.setModelParamOrder(entry.getParamOrder()); - columnInfo.setModelParamPortOrder(entry.getParamPortOrder()); - columnInfo.setStartTime(this.getStartTime(columnInfo, dateTime)); - columnInfo.setEndTime(this.getEndTime(columnInfo, dateTime)); - if (curPortOrder != entry.getParamPortOrder()) { - //当数据项端口号不为当前端口号时,封装上一个端口类,操作下一个端口类 - curPort.setColumnItemList(columnItemList); - curPort.setDataLength(curDataLength); - curPort.setPortOrder(curPortOrder); - resultList.add(curPort); - curPort = new ColumnItemPort(); - //封装上一个端口类后更新当前的各个参数 - columnItemList = new ArrayList<>(); - curDataLength = entry.getDataLength(); - curPortOrder = entry.getParamPortOrder(); - } - columnItemList.add(columnInfo); - columnInfo = new ColumnItem(); - } - //当迭代到最后一个项的时候,封装最后一个端口的信息 - curPort.setColumnItemList(columnItemList); - curPort.setDataLength(curDataLength); - curPort.setPortOrder(curPortOrder); - resultList.add(curPort); - return resultList; - } - - protected Date getStartTime(ColumnItem columnItem, Date originalTime) throws Exception { - Date dateTime = new Date(); - Calendar calendar = Calendar.getInstance(); - calendar.setTime(originalTime); - switch (columnItem.getParamType()) { - case "point": - ApiPointDTO dataPoint = dataPointApi.getPoint(columnItem.paramId); - if (dataPoint == null) { - throw new Exception("apiDataPointDTO is null"); - } - dateTime = calculateTime(calendar.getTime(), true, columnItem.getDataLength(), minFreqMap.get(dataPoint.getMinfreqid())); - break; - case "predict": - dateTime = calendar.getTime(); - break; - case "ind": - dateTime = calculateTime(calendar.getTime(), true, columnItem.getDataLength(), DAY_SECOND); - break; - case "device-main": - dateTime = calculateTime(calendar.getTime(), true, columnItem.getDataLength(), DAY_SECOND); - break; - case "event": - dateTime = calculateTime(calendar.getTime(), true, columnItem.getDataLength(), DAY_SECOND); - break; - default: - break; - } - return dateTime; - } - - protected Date getEndTime(ColumnItem columnItem, Date originalTime) throws Exception { - Date dateTime = new Date(); - Calendar calendar = Calendar.getInstance(); - calendar.setTime(originalTime); - switch (columnItem.getParamType()) { - case "point": - ApiPointDTO dataPoint = dataPointApi.getPoint(columnItem.paramId); - if (dataPoint == null) { - throw new Exception("apiDataPointDTO is null"); - } - calendar.add(Calendar.SECOND, minFreqMap.get(dataPoint.getMinfreqid()) * -1); - break; - case "predict": - dateTime = calculateTime(dateTime, false, columnItem.getDataLength(), 60); - break; - case "ind": - dateTime = calendar.getTime(); - break; - case "device-main": - dateTime = calendar.getTime(); - break; - case "event": - dateTime = calendar.getTime(); - break; - default: - break; - } - return dateTime; - } - - public Date calculateTime(Date originalTime, Boolean backward, int dataLength, int granularity) { - int timeLength; - if (backward) { - timeLength = (-1) * dataLength; - } else { - timeLength = dataLength - 1; - } - Date desTime = originalTime; - Calendar calendar = Calendar.getInstance(); - calendar.setTime(desTime); - calendar.set(Calendar.MILLISECOND, 0); - // 数据长度 * 粒度 - calendar.add(Calendar.SECOND, timeLength * granularity); - return calendar.getTime(); - } -} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/sample/dto/ColumnItem.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/sample/dto/ColumnItem.java deleted file mode 100644 index 1a45e32..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/sample/dto/ColumnItem.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.iailab.module.model.sample.dto; - -import lombok.Data; - -import java.util.Date; - -/** - * @author PanZhibao - * @Description - * @createTime 2023年05月16日 15:15:00 - */ -@Data -public class ColumnItem { - /** - * 参数类型 - */ - public String paramType; - - /** - * 参数ID - */ - public String paramId; - - /** - * 数据长度 - */ - public int dataLength; - - /** - * 模型参数排序 - */ - public int modelParamOrder; - - /** - * 模型参数端口排序 - */ - public int modelParamPortOrder; - - /** - * 采样的开始时间 - */ - public Date startTime; - - /** - * 采样的结束时间 - */ - public Date endTime; -} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/sample/dto/ColumnItemPort.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/sample/dto/ColumnItemPort.java deleted file mode 100644 index de62bbf..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/sample/dto/ColumnItemPort.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.iailab.module.model.sample.dto; - -import lombok.Data; - -import java.util.List; - -/** - * @author PanZhibao - * @Description - * @createTime 2023年05月16日 15:16:00 - */ -@Data -public class ColumnItemPort { - - private List<ColumnItem> columnItemList; - - private int portOrder; - - private int dataLength; -} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/sample/dto/DataValue.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/sample/dto/DataValue.java deleted file mode 100644 index a07e653..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/sample/dto/DataValue.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.iailab.module.model.sample.dto; - -import lombok.Data; - -import java.util.Date; - -/** - * @author PanZhibao - * @Description - * @createTime 2023年05月16日 16:21:00 - */ -@Data -public class DataValue { - - private Date timeStamp; - - private Double dataValue; -} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/sample/dto/SampleData.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/sample/dto/SampleData.java deleted file mode 100644 index 971fe16..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/sample/dto/SampleData.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.iailab.module.model.sample.dto; - -import lombok.Data; - -/** - * @author PanZhibao - * @Description - * @createTime 2023年05月16日 15:14:00 - */ -@Data -public class SampleData { - private double[][] matrix; -} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/sample/dto/SampleInfo.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/sample/dto/SampleInfo.java deleted file mode 100644 index b3e7453..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/sample/dto/SampleInfo.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.iailab.module.model.sample.dto; - -import lombok.Data; - -import java.util.List; - -/** - * @author PanZhibao - * @Description - * @createTime 2023年05月16日 15:13:00 - */ -@Data -public class SampleInfo { - private Integer portLength; - - private Integer sampleColumn; - - private List<ColumnItemPort> columnInfo; -} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/sample/entity/DataEntity.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/sample/entity/DataEntity.java deleted file mode 100644 index 0ed6952..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/sample/entity/DataEntity.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.iailab.module.model.sample.entity; - -import lombok.Data; - -import java.util.Date; -@Data -public class DataEntity { - - private Date timeStamp; - private double dataValue; - -} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/resources/iailmdk.properties b/iailab-module-model/iailab-module-model-biz/src/main/resources/iailmdk.properties new file mode 100644 index 0000000..55818ca --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/resources/iailmdk.properties @@ -0,0 +1,4 @@ +#dev +#mdk-init-path = D:\\DLUT\\MDK\\libs\\ +#prod +mdk-init-path = D:\\SmartEnergyStudio\\IAILMDK\\libs\\ \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/MmItemOutputDao.xml b/iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/MmItemOutputDao.xml new file mode 100644 index 0000000..d925891 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/MmItemOutputDao.xml @@ -0,0 +1,49 @@ +<?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="com.iailab.module.model.mcs.pre.dao.MmItemOutputDao"> + + <resultMap id="MmItemOutputVO" type="com.iailab.module.model.mdk.vo.MmItemOutputVO"> + <result property="id" column="ID"/> + <result property="itemId" column="ITEMID"/> + <result property="pointId" column="POINTID"/> + <result property="resultTableName" column="TABLENAME"/> + <result property="order" column="OUTPUTORDER"/> + </resultMap> + + <select id="getOutPutById" resultMap="MmItemOutputVO"> + SELECT t1.id, + t1.itemid, + t1.pointid, + t2.tablename, + t1.outputorder + FROM t_mm_item_output t1, + t_mm_result_table t2 + WHERE t1.id = #{value} + AND t1.resulttableid = t2.id + </select> + <select id="getOutPutByItemId" resultMap="MmItemOutputVO"> + SELECT t1.id, + t1.itemid, + t1.pointid, + t2.tablename, + t1.outputorder + FROM t_mm_item_output t1, + t_mm_result_table t2 + WHERE t1.itemid = #{value} + AND t1.resulttableid = t2.id + ORDER BY t1.outputorder + </select> + <select id="getOutPutByPointId" resultMap="MmItemOutputVO"> + SELECT t1.id, + t1.itemid, + t1.pointid, + t2.tablename, + t1.outputorder + FROM t_mm_item_output t1, + t_mm_result_table t2 + WHERE t1.pointid = #{value} + AND t1.resulttableid = t2.id + ORDER BY t1.outputorder + </select> +</mapper> \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/MmItemResultDao.xml b/iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/MmItemResultDao.xml new file mode 100644 index 0000000..910200c --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/MmItemResultDao.xml @@ -0,0 +1,32 @@ +<?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="com.iailab.module.model.mcs.pre.dao.MmItemResultDao"> + + <delete id="deletePredictValue" parameterType="map"> + DELETE + FROM ${TABLENAME} + WHERE outputid = #{OUTPUTID} + AND datatime + BETWEEN #{STARTTIME} + AND #{ENDTIME} + </delete> + + <insert id="savePredictValue" parameterType="map"> + INSERT INTO ${TABLENAME} + (id,outputid,datatime,datavalue) + VALUES + <foreach item="item" collection="list" separator=","> + (#{item.id},#{item.outputId},#{item.dataTime},#{item.dataValue}) + </foreach> + </insert> + + <insert id="savePredictJsonValue" parameterType="map"> + INSERT INTO ${TABLENAME} + (id,outputid,predicttime,jsonvalue,cumulant) + VALUES (#{entity.id},#{entity.outputid},#{entity.predicttime},#{entity.jsonvalue},#{entity.cumulant}) + </insert> + + +</mapper> \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/MmItemTypeDao.xml b/iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/MmItemTypeDao.xml new file mode 100644 index 0000000..4097139 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/MmItemTypeDao.xml @@ -0,0 +1,24 @@ +<?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="com.iailab.module.model.mcs.pre.dao.MmItemTypeDao"> + + <resultMap id="MmItemTypeEntity" type="com.iailab.module.model.mcs.pre.entity.MmItemTypeEntity"> + <result property="itemtypename" column="ITEMTYPENAME"/> + <result property="itemclasstype" column="ITEMCLASSTYPE"/> + <result property="assemblyname" column="ASSEMBLYNAME"/> + </resultMap> + + <select id="getItemTypeByItemId" resultMap="MmItemTypeEntity"> + SELECT + t2.itemtypename, + t2.itemclasstype, + t2.assemblyname + FROM + t_mm_predict_item t1, + t_mm_item_type t2 + WHERE t1.itemtypeid=t2.id + AND t1.id=#{value} + </select> + +</mapper> \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/MmPredictItemDao.xml b/iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/MmPredictItemDao.xml new file mode 100644 index 0000000..ecf1ecb --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/MmPredictItemDao.xml @@ -0,0 +1,121 @@ +<?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="com.iailab.module.model.mcs.pre.dao.MmPredictItemDao"> + + <resultMap id="ItemVO" type="com.iailab.module.model.mdk.vo.ItemVO"> + <result property="id" column="ID"/> + <result property="itemNo" column="ITEMNO"/> + <result property="itemName" column="ITEMNAME"/> + <result property="itemType" column="ITEMTYPENAME"/> + <result property="predictLength" column="PREDICTLENGTH"/> + <result property="granularity" column="GRANULARITY"/> + <result property="status" column="STATUS"/> + <result property="isFuse" column="ISFUSE"/> + <result property="predictPhase" column="PREDICTPHASE"/> + <result property="workChecked" column="WORKCHECKED"/> + </resultMap> + + <resultMap id="MergeItemVO" type="com.iailab.module.model.mdk.vo.MergeItemVO"> + <result property="id" column="ID"/> + <result property="itemId" column="ITEMID"/> + <result property="expression" column="EXPRESSION"/> + </resultMap> + + <select id="queryList" resultType="com.iailab.module.model.mcs.pre.vo.MmPredictItemRespVO" parameterType="map"> + SELECT + TMPI.ID, + TMPI.ITEMNO, + TMPI.ITEMNAME, + TMPI.ITEMTYPEID, + TMIT.ITEMTYPENAME, + TMPI.GRANULARITY, + TMPI.ISFUSE, + TMPI.WORKCHECKED, + TDMI.MODULEID, + TDMI.ITEMORDER, + TDMI.STATUS, + TDMI.CATEGORYID, + TMIO.POINTID, + TMIO.TAGNAME, + TMIO.RESULTTABLEID, + TMRT.TABLENAME + FROM T_MM_PREDICT_ITEM TMPI + LEFT JOIN T_MM_ITEM_TYPE TMIT ON TMIT.ID = TMPI.ITEMTYPEID + LEFT JOIN T_DM_MODULE_ITEM TDMI ON TDMI.ITEMID = TMPI.ID + LEFT JOIN T_MM_ITEM_OUTPUT TMIO ON TMIO.ITEMID = TMPI.ID + LEFT JOIN T_MM_RESULT_TABLE TMRT ON TMRT.ID = TMIO.RESULTTABLEID + WHERE 1 = 1 + <if test="params.itemno != null and params.itemno != ''"> + AND TMPI.ITEMNO LIKE CONCAT('%', #{params.itemno},'%') + </if> + <if test="params.itemname != null and params.itemname != ''"> + AND TMPI.ITEMNAME LIKE CONCAT('%', #{params.itemname},'%') + </if> + <if test="params.itemtypeid != null and params.itemtypeid != ''"> + AND TMPI.ITEMTYPEID = #{params.itemtypeid} + </if> + <if test="params.itemtypename != null and params.itemtypename != ''"> + AND TMIT.ITEMTYPENAME = #{params.itemtypename} + </if> + <if test="params.status != null and params.status != ''"> + AND TDMI.STATUS = #{params.status} + </if> + ORDER BY TMPI.CREATE_TIME DESC + </select> + + <select id="getByModuleId" parameterType="map" resultMap="ItemVO"> + SELECT t1.id, + t1.itemno, + t1.itemname, + t3.itemtypename, + t1.predictlength, + t1.granularity, + t1.status, + t1.isfuse, + t1.workchecked, + t1.unittransfactor + FROM t_mm_predict_item t1, + t_dm_module_item t2, + t_mm_item_type t3 + WHERE t1.id = t2.itemid + AND t1.itemtypeid = t3.id + AND t2.moduleid = #{MODULEID} + AND t2.status = 1 + AND t1.status = 1 + ORDER BY t2.itemorder + </select> + + <select id="getItem" parameterType="map" resultMap="ItemVO"> + SELECT + t1.id, + t1.itemno , + t1.itemname , + t1.predictlength , + t2.itemtypename, + t1.granularity, + t1.status, + t1.isfuse, + t1.predictphase, + t1.workchecked + FROM + ${TABLESCHEMA}.t_mm_predict_item t1, + ${TABLESCHEMA}.t_mm_item_type t2 + WHERE t1.itemtypeid=t2.id + <if test="ITEMID != null and ITEMID != ''"> + AND t1.id=#{ITEMID} + </if> + <if test="ITEMNO != null and ITEMNO != ''"> + t1.itemno=#{ITEMNO} + </if> + </select> + <select id="getMergeItemByItemId" parameterType="map" resultMap="MergeItemVO"> + SELECT t1.id, + t1.itemid, + t1.expression + FROM t_mm_predict_merge_item t1 + WHERE t1.itemid = #{ITEMID} + </select> + + +</mapper> \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/MmPredictModelDao.xml b/iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/MmPredictModelDao.xml new file mode 100644 index 0000000..dca5639 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/MmPredictModelDao.xml @@ -0,0 +1,27 @@ +<?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="com.iailab.module.model.mcs.pre.dao.MmPredictModelDao"> + + <select id="getActiveModelByItemId" resultMap="com.iailab.module.model.mcs.pre.entity.MmPredictModelEntity"> + SELECT + t.* + FROM + t_mm_predict_model t + WHERE status=1 + AND itemid=#{value} + </select> + + + <select id="getSampleLength" resultMap="com.iailab.module.model.mcs.pre.entity.MmPredictModelEntity"> + SELECT + t.predictsamplength + FROM + t_mm_predict_model t + WHERE status=1 + AND id=#{value} + </select> + + + +</mapper> \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/StModelOutDao.xml b/iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/StModelOutDao.xml deleted file mode 100644 index 6d6c33a..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/StModelOutDao.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?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="com.iailab.module.mcs.dao.StModelOutDao"> - <select id="getAll" resultType="com.iailab.module.mcs.dto.StModelOutDTO"> - select * from t_st_model_out where model_id = #{modelId} - order by sort - </select> - <delete id="deleteByModelId"> - delete from t_st_model_out where model_id = #{modelId} - </delete> - <select id="getOutPoint" parameterType="map" resultType="com.iailab.module.mcs.dto.StModelOutDTO"> - select t1.result_key,t1.is_write,t1.point_no,t1.disturbance_point_no - from t_st_model_out t1 - left join t_st_model t2 on t2.id = t1.model_id - where t2.model_code = #{modelCode} and t1.is_write = '1' - order by t1.sort - </select> - -</mapper> \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/StModelParamDao.xml b/iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/StModelParamDao.xml deleted file mode 100644 index d35774d..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/StModelParamDao.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?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="com.iailab.module.mcs.dao.StModelParamDao"> - <select id="getAll" resultType="com.iailab.module.mcs.dto.StModelParamDTO"> - select * from t_st_model_param where model_id = #{modelId} order by param_order,param_port_order - </select> - - <delete id="deleteByModelId"> - delete from t_st_model_param where model_id = #{modelId} - </delete> - - -</mapper> \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/StModelResultDao.xml b/iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/StModelResultDao.xml deleted file mode 100644 index b093fcc..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/StModelResultDao.xml +++ /dev/null @@ -1,70 +0,0 @@ -<?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="com.iailab.module.mcs.dao.StModelResultDao"> - - <resultMap id="StModelResultEntity" type="com.iailab.module.mcs.entity.StModelResultEntity"> - <result property="modelId" column="model_id"/> - <result property="resultKey" column="result_key"/> - <result property="resultValue" column="result_value"/> - <result property="resultTime" column="result_time"/> - </resultMap> - - <resultMap id="StoreDependableAnalysisDTO" type="com.iailab.module.any.dto.AnyStoreReliabilityDTO"> - <result property="dateTime" column="dateTime"/> - <result property="grade" column="grade"/> - <result property="state" column="state"/> - <result property="analysis" column="analysis"/> - </resultMap> - - - <select id="getLastResultByCode" parameterType="map" resultType="com.iailab.module.mcs.dto.StModelResultDTO"> - select t2.result_key resultKey, t2.result_value resultValue, t2.result_time resultTime - from t_st_model t1 - inner join t_st_model_result t2 on t2.model_id = t1.id and t2.result_time = t1.run_time - where t1.model_code = #{modelCode} - </select> - <select id="getResultByCodeDate" parameterType="map" resultType="com.iailab.module.mcs.dto.StModelResultDTO"> - select t2.result_key resultKey, t2.result_value resultValue, t2.result_time resultTime - from t_st_model t1 - inner join t_st_model_result t2 on t2.model_id = t1.id - where t1.model_code = #{modelCode} - and DATE_FORMAT(t2.result_time, '%Y-%m-%d') = #{resultTime} - </select> - - <select id="getResultList" parameterType="map" resultMap="StModelResultEntity"> - SELECT - b.model_id, - b.result_key, - b.result_value, - b.result_time - FROM - t_st_model_result b - left JOIN t_st_model a ON a.id = b.model_id - WHERE - b.result_key not in ('status', 'tips') - <if test="modelId != null and modelId != ''"> - AND b.model_id = #{modelId} - </if> - <if test="modelCode != null and modelCode != ''"> - AND a.model_code = #{modelCode} - </if> - AND result_time BETWEEN #{startDate} AND #{endDate} - ORDER BY - b.result_time ${sortType} - </select> - - <delete id="cleanModelResult" parameterType="map"> - delete - from t_st_model_result - where result_time between #{startdate} and #{enddate} - </delete> - - <insert id="insertList" parameterType="list"> - INSERT INTO `t_st_model_result` (id, `model_id`, `line_index`, `result_key`, `result_value`, `result_time`) - VALUES - <foreach item="item" collection="list" separator=","> - (#{item.id},#{item.modelId},#{item.lineIndex},#{item.resultKey},#{item.resultValue},#{item.resultTime}) - </foreach> - </insert> -</mapper> \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/StModelRunlogDao.xml b/iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/StModelRunlogDao.xml deleted file mode 100644 index 3e88ad7..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/StModelRunlogDao.xml +++ /dev/null @@ -1,47 +0,0 @@ -<?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="com.iailab.module.mcs.dao.StModelRunlogDao"> - <select id="getLastLog" parameterType="map" resultType="com.iailab.module.mcs.dto.StModelRunlogDTO"> - select * - from t_st_model_runlog - where run_type = #{runType} - order by run_time desc - limit #{limit} - </select> - <delete id="cleanRunlogTask" parameterType="map"> - delete - from t_st_model_runlog - where run_time between #{startdate} and #{enddate} - </delete> - <select id="queryList" resultType="com.iailab.module.mcs.dto.StModelRunlogDTO" parameterType="map"> - SELECT a.model_code,a.model_name,b.* FROM t_st_model a,t_st_model_runlog b - where a.id = b.modelid - <if test="params.modelCode != null and params.modelCode != ''"> - and a.model_code LIKE concat(concat("%",#{params.modelCode}),"%") - </if> - <if test="params.modelName != null and params.modelName != ''"> - and a.model_name LIKE concat(concat("%",#{params.modelName}),"%") - </if> - <if test="params.startTime != null and params.startTime != ''"> - and b.run_time >= #{params.startTime} - </if> - <if test="params.endTime != null and params.endTime != ''"> - and b.run_time <= #{params.endTime} - </if> - order by b.run_time desc - </select> - <select id="listAll" resultType="com.iailab.module.mcs.dto.StModelRunlogDTO" parameterType="map"> - SELECT a.model_code,a.model_name,b.* FROM t_st_model a,t_st_model_runlog b - where a.id = b.modelid - <if test="modelCode != null and modelCode != ''"> - and a.model_code LIKE concat(concat("%",#{modelCode}),"%") - </if> - <if test="modelName != null and modelName != ''"> - and a.model_name LIKE concat(concat("%",#{modelName}),"%") - </if> - order by b.run_time desc - </select> - - -</mapper> \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/StModelSettingDao.xml b/iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/StModelSettingDao.xml deleted file mode 100644 index a3c2a55..0000000 --- a/iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/StModelSettingDao.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?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="com.iailab.module.mcs.dao.StModelSettingDao"> - <select id="getAll" resultType="com.iailab.module.mcs.dto.StModelSettingDTO"> - select * from t_st_model_setting where model_id = #{modelId} - order by setting_key - </select> - <delete id="deleteByModelId"> - delete from t_st_model_setting where model_id = #{modelId} - </delete> - - -</mapper> \ No newline at end of file -- Gitblit v1.9.3