From 3dd13474b6fe501c578845db3651c08c73668162 Mon Sep 17 00:00:00 2001 From: cuizhibin Date: Thu, 3 Jul 2025 16:28:21 +0800 Subject: [PATCH] =?UTF-8?q?1.=E6=96=BD=E5=B7=A5=E4=BF=A1=E6=81=AF=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CustomLocalDateTimeDeserializer.java | 20 +++++++ .../com/dite/znpt/config/JacksonConfig.java | 3 + .../dite/znpt/domain/vo/DefectMarkReq.java | 41 +++++++++++++ .../dite/znpt/domain/vo/TConstructionReq.java | 57 +++++++++++++++++++ .../com/dite/znpt/enums/DefectTypeEnum.java | 2 +- .../znpt/service/TConstructionService.java | 9 +-- .../impl/TConstructionServiceImpl.java | 24 ++++---- .../com/dite/znpt/util/ValidationGroup.java | 3 +- .../znpt/web/controller/DefectController.java | 27 ++++++++- .../web/controller/ModelConfigController.java | 14 ----- .../controller/TConstructionController.java | 21 +++---- 11 files changed, 175 insertions(+), 46 deletions(-) create mode 100644 core/src/main/java/com/dite/znpt/config/CustomLocalDateTimeDeserializer.java create mode 100644 core/src/main/java/com/dite/znpt/domain/vo/DefectMarkReq.java create mode 100644 core/src/main/java/com/dite/znpt/domain/vo/TConstructionReq.java diff --git a/core/src/main/java/com/dite/znpt/config/CustomLocalDateTimeDeserializer.java b/core/src/main/java/com/dite/znpt/config/CustomLocalDateTimeDeserializer.java new file mode 100644 index 0000000..9e3e1e6 --- /dev/null +++ b/core/src/main/java/com/dite/znpt/config/CustomLocalDateTimeDeserializer.java @@ -0,0 +1,20 @@ +package com.dite.znpt.config; + +import cn.hutool.core.date.LocalDateTimeUtil; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; + +import java.io.IOException; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +public class CustomLocalDateTimeDeserializer extends JsonDeserializer { + private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + + @Override + public LocalDateTime deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { + String date = p.getText(); + return LocalDateTimeUtil.parse(date, FORMATTER); + } +} diff --git a/core/src/main/java/com/dite/znpt/config/JacksonConfig.java b/core/src/main/java/com/dite/znpt/config/JacksonConfig.java index 2ac506a..8c7a729 100644 --- a/core/src/main/java/com/dite/znpt/config/JacksonConfig.java +++ b/core/src/main/java/com/dite/znpt/config/JacksonConfig.java @@ -9,6 +9,8 @@ import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder; +import java.time.LocalDateTime; + /** * @date 2022/3/20 10:34 上午 * @description: @@ -25,6 +27,7 @@ public class JacksonConfig { SimpleModule simpleModule = new SimpleModule(); //JSON Long ==> String simpleModule.addSerializer(Long.class, ToStringSerializer.instance); + simpleModule.addDeserializer(LocalDateTime.class, new CustomLocalDateTimeDeserializer()); objectMapper.registerModule(simpleModule); return objectMapper; } diff --git a/core/src/main/java/com/dite/znpt/domain/vo/DefectMarkReq.java b/core/src/main/java/com/dite/znpt/domain/vo/DefectMarkReq.java new file mode 100644 index 0000000..358d979 --- /dev/null +++ b/core/src/main/java/com/dite/znpt/domain/vo/DefectMarkReq.java @@ -0,0 +1,41 @@ +package com.dite.znpt.domain.vo; + +import com.dite.znpt.util.ValidationGroup; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.Max; +import javax.validation.constraints.Min; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serial; +import java.io.Serializable; +import java.util.List; + +@Data +@ApiModel("缺陷记录列表请求实体") +public class DefectMarkReq implements Serializable { + + @Serial + private static final long serialVersionUID = 585419070823466048L; + + @ApiModelProperty("图片id") + private String imageId; + + @ApiModelProperty("图片集id") + private String collectId; + + @NotBlank(groups = {ValidationGroup.Request.class}, message = "模型id不能为空") + @ApiModelProperty("模型id") + private String modelId; + + @NotNull(groups = {ValidationGroup.Request.class}, message = "模型置信度不能为空") + @Min(value = 0, groups = {ValidationGroup.Request.class}, message = "模型置信度只能在0-100之间") + @Max(value = 100, groups = {ValidationGroup.Request.class}, message = "模型置信度只能在0-100之间") + @ApiModelProperty("置信度") + private float confThreshold; + + @ApiModelProperty("缺陷类型") + private List defectTypeList; +} diff --git a/core/src/main/java/com/dite/znpt/domain/vo/TConstructionReq.java b/core/src/main/java/com/dite/znpt/domain/vo/TConstructionReq.java new file mode 100644 index 0000000..04dc591 --- /dev/null +++ b/core/src/main/java/com/dite/znpt/domain/vo/TConstructionReq.java @@ -0,0 +1,57 @@ +package com.dite.znpt.domain.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; +import java.io.Serializable; +import java.time.LocalDateTime; +/** + * @author huise23 + * @date 2025/07/03 16:25 + * @Description: 施工信息表请求类 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="TConstruction请求对象", description="施工信息表") +public class TConstructionReq implements Serializable { + + @Serial + private static final long serialVersionUID = 583631934062856440L; + + @ApiModelProperty("施工id") + private String constructionId; + + @ApiModelProperty("项目id") + private String projectId; + + @ApiModelProperty("机组id") + private String turbineCode; + + @ApiModelProperty("作业开始时间") + private LocalDateTime startTime; + + @ApiModelProperty("作业结束时间") + private LocalDateTime endTime; + + @ApiModelProperty("温度(℃)") + private Double temperature; + + @ApiModelProperty("风速(m/s)") + private Double windSpeed; + + @ApiModelProperty("采集图片数量") + private Integer imageCount; + + @ApiModelProperty("天气id") + private String weatherCode; + + @ApiModelProperty("施工状态") + private String statusId; + + @ApiModelProperty("当前时间") + private LocalDateTime createdAt; +} + diff --git a/core/src/main/java/com/dite/znpt/enums/DefectTypeEnum.java b/core/src/main/java/com/dite/znpt/enums/DefectTypeEnum.java index 4d44f20..68505b5 100644 --- a/core/src/main/java/com/dite/znpt/enums/DefectTypeEnum.java +++ b/core/src/main/java/com/dite/znpt/enums/DefectTypeEnum.java @@ -13,7 +13,7 @@ import java.util.List; */ @Getter public enum DefectTypeEnum { - CRAZE("CRAZE", "合缝开裂"), + CRAZE("BMLW", "合缝开裂"), ABRASION("ABRASION", "合缝磨损"), LEATHER_BREAKAGE("LEATHER_BREAKAGE", "蒙皮破损"), FABRIC_BREAKAGE("FABRIC_BREAKAGE", "布层破损"), diff --git a/core/src/main/java/com/dite/znpt/service/TConstructionService.java b/core/src/main/java/com/dite/znpt/service/TConstructionService.java index 0506feb..18cb3c5 100644 --- a/core/src/main/java/com/dite/znpt/service/TConstructionService.java +++ b/core/src/main/java/com/dite/znpt/service/TConstructionService.java @@ -3,6 +3,7 @@ package com.dite.znpt.service; import com.baomidou.mybatisplus.extension.service.IService; import com.dite.znpt.domain.entity.TConstructionEntity; import com.dite.znpt.domain.vo.TConstructionListReq; +import com.dite.znpt.domain.vo.TConstructionReq; import com.dite.znpt.domain.vo.TConstructionResp; import java.util.List; @@ -37,20 +38,20 @@ public interface TConstructionService extends IService { /** * 功能描述:新增施工信息 * - * @param tConstruction 施工信息 + * @param req 施工信息 * @author huise23 * @date 2025/04/11 23:17 **/ - void saveData(TConstructionEntity tConstruction); + void saveData(TConstructionReq req); /** * 功能描述:更新施工信息 * - * @param tConstruction 施工信息 + * @param req 施工信息 * @author huise23 * @date 2025/04/11 23:17 **/ - void updateData(TConstructionEntity tConstruction); + void updateData(TConstructionReq req); /** * 功能描述:删除施工信息 diff --git a/core/src/main/java/com/dite/znpt/service/impl/TConstructionServiceImpl.java b/core/src/main/java/com/dite/znpt/service/impl/TConstructionServiceImpl.java index 8e8ddfb..603f602 100644 --- a/core/src/main/java/com/dite/znpt/service/impl/TConstructionServiceImpl.java +++ b/core/src/main/java/com/dite/znpt/service/impl/TConstructionServiceImpl.java @@ -1,15 +1,17 @@ package com.dite.znpt.service.impl; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dite.znpt.domain.entity.TConstructionEntity; import com.dite.znpt.domain.vo.TConstructionListReq; +import com.dite.znpt.domain.vo.TConstructionReq; import com.dite.znpt.domain.vo.TConstructionResp; -import com.dite.znpt.service.TConstructionService; import com.dite.znpt.mapper.TConstructionMapper; -import org.springframework.stereotype.Service; -import cn.hutool.core.collection.CollUtil; -import lombok.RequiredArgsConstructor; +import com.dite.znpt.service.TConstructionService; import com.dite.znpt.util.PageUtil; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; import java.util.List; @@ -60,27 +62,25 @@ public class TConstructionServiceImpl extends ServiceImpl runBatch(@Validated(ValidationGroup.Request.class) @RequestBody DefectMarkReq markReq, + @RequestParam("outputDir") String outputDir, + @RequestParam("confThreshold") Float confThreshold) { + try { +// multiModelYoloService.runFolderDetection(modelId, inputDir, outputDir, confThreshold); + return ResponseEntity.ok("批量推理完成"); + } catch (Exception e) { + return ResponseEntity.status(500).body("处理失败:" + e.getMessage()); + } + } } diff --git a/web/src/main/java/com/dite/znpt/web/controller/ModelConfigController.java b/web/src/main/java/com/dite/znpt/web/controller/ModelConfigController.java index 51ceb8a..faa9c64 100644 --- a/web/src/main/java/com/dite/znpt/web/controller/ModelConfigController.java +++ b/web/src/main/java/com/dite/znpt/web/controller/ModelConfigController.java @@ -13,7 +13,6 @@ import com.dite.znpt.util.ValidationGroup; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -66,18 +65,5 @@ public class ModelConfigController { modelConfigService.deleteById(modelId); return Result.ok(); } - - @PostMapping("/run") - public ResponseEntity runBatch(@RequestParam("modelId") String modelId, - @RequestParam("inputDir") String inputDir, - @RequestParam("outputDir") String outputDir, - @RequestParam("confThreshold") Float confThreshold) { - try { - multiModelYoloService.runFolderDetection(modelId, inputDir, outputDir, confThreshold); - return ResponseEntity.ok("批量推理完成"); - } catch (Exception e) { - return ResponseEntity.status(500).body("处理失败:" + e.getMessage()); - } - } } diff --git a/web/src/main/java/com/dite/znpt/web/controller/TConstructionController.java b/web/src/main/java/com/dite/znpt/web/controller/TConstructionController.java index 521eb8f..0be2d88 100644 --- a/web/src/main/java/com/dite/znpt/web/controller/TConstructionController.java +++ b/web/src/main/java/com/dite/znpt/web/controller/TConstructionController.java @@ -2,12 +2,13 @@ package com.dite.znpt.web.controller; import com.dite.znpt.constant.Constants; -import com.dite.znpt.domain.vo.TConstructionListReq; -import com.dite.znpt.domain.vo.TConstructionResp; -import com.dite.znpt.domain.entity.TConstructionEntity; -import com.dite.znpt.service.TConstructionService; -import com.dite.znpt.domain.Result; import com.dite.znpt.domain.PageResult; +import com.dite.znpt.domain.Result; +import com.dite.znpt.domain.entity.TConstructionEntity; +import com.dite.znpt.domain.vo.TConstructionListReq; +import com.dite.znpt.domain.vo.TConstructionReq; +import com.dite.znpt.domain.vo.TConstructionResp; +import com.dite.znpt.service.TConstructionService; import com.pig4cloud.plugin.excel.annotation.RequestExcel; import com.pig4cloud.plugin.excel.annotation.ResponseExcel; import com.pig4cloud.plugin.excel.vo.ErrorMessage; @@ -21,7 +22,7 @@ import java.util.List; /** * @author huise23 - * @date 2025/04/11 23:17 + * @date 2025/07/03 16:25 */ @Api(tags = "施工信息") @RestController @@ -44,15 +45,15 @@ public class TConstructionController { @ApiOperation(value = "新增施工信息", httpMethod = "POST") @PostMapping - public Result add(@RequestBody TConstructionEntity tConstruction) { - tConstructionService.saveData(tConstruction); + public Result add(@RequestBody TConstructionReq tConstructionReq) { + tConstructionService.saveData(tConstructionReq); return Result.ok(); } @ApiOperation(value = "修改施工信息", httpMethod = "PUT") @PutMapping - public Result edit(@RequestBody TConstructionEntity tConstruction) { - tConstructionService.updateData(tConstruction); + public Result edit(@RequestBody TConstructionReq tConstructionReq) { + tConstructionService.updateData(tConstructionReq); return Result.ok(); }