1.施工信息问题修复
This commit is contained in:
parent
8cba5fe502
commit
3dd13474b6
|
@ -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<LocalDateTime> {
|
||||
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);
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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<String> defectTypeList;
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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", "布层破损"),
|
||||
|
|
|
@ -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<TConstructionEntity> {
|
|||
/**
|
||||
* 功能描述:新增施工信息
|
||||
*
|
||||
* @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);
|
||||
|
||||
/**
|
||||
* 功能描述:删除施工信息
|
||||
|
|
|
@ -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<TConstructionMapper, T
|
|||
/**
|
||||
* 功能描述:新增施工信息
|
||||
*
|
||||
* @param tConstruction 施工信息
|
||||
* @param req 施工信息
|
||||
* @author huise23
|
||||
* @date 2025/04/11 23:17
|
||||
**/
|
||||
@Override
|
||||
public void saveData(TConstructionEntity tConstruction) {
|
||||
// todo 校验
|
||||
save(tConstruction);
|
||||
public void saveData(TConstructionReq req) {
|
||||
save(BeanUtil.copyProperties(req, TConstructionEntity.class));
|
||||
}
|
||||
|
||||
/**
|
||||
* 功能描述:更新施工信息
|
||||
*
|
||||
* @param tConstruction 施工信息
|
||||
* @param req 施工信息
|
||||
* @author huise23
|
||||
* @date 2025/04/11 23:17
|
||||
**/
|
||||
@Override
|
||||
public void updateData(TConstructionEntity tConstruction) {
|
||||
// todo 校验
|
||||
updateById(tConstruction);
|
||||
public void updateData(TConstructionReq req) {
|
||||
updateById(BeanUtil.copyProperties(req, TConstructionEntity.class));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
package com.dite.znpt.util;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author Bear.G
|
||||
* @date 2025/5/19/周一 15:09
|
||||
|
@ -11,4 +9,5 @@ import lombok.Data;
|
|||
public interface ValidationGroup {
|
||||
interface Insert {} // 增
|
||||
interface Update {} // 改
|
||||
interface Request {} // 其他类型
|
||||
}
|
||||
|
|
|
@ -2,19 +2,25 @@ package com.dite.znpt.web.controller;
|
|||
|
||||
|
||||
import com.dite.znpt.constant.Constants;
|
||||
import com.dite.znpt.domain.PageResult;
|
||||
import com.dite.znpt.domain.Result;
|
||||
import com.dite.znpt.domain.entity.DefectEntity;
|
||||
import com.dite.znpt.domain.vo.DefectListReq;
|
||||
import com.dite.znpt.domain.vo.DefectMarkReq;
|
||||
import com.dite.znpt.domain.vo.DefectReq;
|
||||
import com.dite.znpt.domain.vo.DefectResp;
|
||||
import com.dite.znpt.domain.entity.DefectEntity;
|
||||
import com.dite.znpt.service.DefectService;
|
||||
import com.dite.znpt.domain.Result;
|
||||
import com.dite.znpt.domain.PageResult;
|
||||
import com.dite.znpt.service.impl.MultiModelYoloService;
|
||||
import com.dite.znpt.util.ValidationGroup;
|
||||
import com.pig4cloud.plugin.excel.annotation.RequestExcel;
|
||||
import com.pig4cloud.plugin.excel.annotation.ResponseExcel;
|
||||
import com.pig4cloud.plugin.excel.vo.ErrorMessage;
|
||||
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.BindingResult;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
@ -30,6 +36,8 @@ import java.util.List;
|
|||
public class DefectController {
|
||||
@Resource
|
||||
private DefectService defectService;
|
||||
@Autowired
|
||||
private MultiModelYoloService multiModelYoloService;
|
||||
|
||||
@ApiOperation(value = "分页查询缺陷记录列表", httpMethod = "GET")
|
||||
@GetMapping("/page")
|
||||
|
@ -87,5 +95,18 @@ public class DefectController {
|
|||
}
|
||||
return Result.okM("导入"+dataList.size()+"条数据");
|
||||
}
|
||||
|
||||
@ApiOperation(value = "单图自动标注缺陷", httpMethod = "POST")
|
||||
@PostMapping("/run")
|
||||
public ResponseEntity<String> 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());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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<String> 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());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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<Object> add(@RequestBody TConstructionEntity tConstruction) {
|
||||
tConstructionService.saveData(tConstruction);
|
||||
public Result<Object> add(@RequestBody TConstructionReq tConstructionReq) {
|
||||
tConstructionService.saveData(tConstructionReq);
|
||||
return Result.ok();
|
||||
}
|
||||
|
||||
@ApiOperation(value = "修改施工信息", httpMethod = "PUT")
|
||||
@PutMapping
|
||||
public Result<Object> edit(@RequestBody TConstructionEntity tConstruction) {
|
||||
tConstructionService.updateData(tConstruction);
|
||||
public Result<Object> edit(@RequestBody TConstructionReq tConstructionReq) {
|
||||
tConstructionService.updateData(tConstructionReq);
|
||||
return Result.ok();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue