Browse Source

update

master
yeguang 20 hours ago
parent
commit
1fbd51551d
  1. 2
      src/main/java/com/jiagutech/dto/request/CreateRecordRequest.java
  2. 2
      src/main/java/com/jiagutech/dto/request/UserRequest.java
  3. 10
      src/main/java/com/jiagutech/entity/RecordContentEntity.java
  4. 2
      src/main/java/com/jiagutech/entity/RecordEntity.java
  5. 3
      src/main/java/com/jiagutech/entity/UserEntity.java
  6. 2
      src/main/java/com/jiagutech/record/RecordTaskHandler.java
  7. 50
      src/main/java/com/jiagutech/record/RecordTaskProcessor.java
  8. 1
      src/main/java/com/jiagutech/service/UserServiceImpl.java
  9. 1
      src/main/java/com/jiagutech/utils/RecognitionUtil.java
  10. 1
      src/main/resources/application.yml
  11. 5
      src/main/resources/mapper/RecordContentMapper.xml
  12. 1
      src/main/resources/mapper/RecordMapper.xml

2
src/main/java/com/jiagutech/dto/request/CreateRecordRequest.java

@ -34,5 +34,7 @@ public class CreateRecordRequest {
@NotBlank(message = "任务名称不能为空")
private String taskName;
private Integer category;
}

2
src/main/java/com/jiagutech/dto/request/UserRequest.java

@ -28,7 +28,7 @@ public class UserRequest {
/**
* 手机号码
*/
@Pattern(regexp = "^1[34578]\\d{9}$", message = "手机号码格式不正确")
@Pattern(regexp = "^1[345789]\\d{9}$", message = "手机号码格式不正确")
private String phone;

10
src/main/java/com/jiagutech/entity/RecordContentEntity.java

@ -32,6 +32,16 @@ public class RecordContentEntity {
private Integer handleNum;
private Integer beakNum;
private Integer category;
private Float bodyLength;
private Integer branchNum; //分支数
private Integer rapeNum; //角果数
private Float rapeLength;//角果长度值
//比例尺类型 ,1=统一/2=自用/3=延用/0=无
private Integer scaleType;
//比例

2
src/main/java/com/jiagutech/entity/RecordEntity.java

@ -20,6 +20,8 @@ public class RecordEntity {
private Long userId;
private Integer category;
private Integer imageNum;
private LocalDateTime createTime;

3
src/main/java/com/jiagutech/entity/UserEntity.java

@ -1,5 +1,6 @@
package com.jiagutech.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@ -11,7 +12,7 @@ import java.time.LocalDateTime;
@TableName("siliqua_user")
@Accessors(chain = true)
public class UserEntity {
@TableId
@TableId(type = IdType.AUTO)
private Long id;
private String phone;

2
src/main/java/com/jiagutech/record/RecordTaskHandler.java

@ -74,6 +74,7 @@ public class RecordTaskHandler {
}
this.recordTask = new RecordTask()
.setType(request.getCategory())
.setFiles(files)
.setModelName(request.getModelName())
.setIou(request.getIou())
@ -89,6 +90,7 @@ public class RecordTaskHandler {
@Data
@Accessors(chain = true)
public static class RecordTask {
private int type;
private String taskId;
private File[] files;
private String modelName;

50
src/main/java/com/jiagutech/record/RecordTaskProcessor.java

@ -16,6 +16,8 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.io.File;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDateTime;
import java.util.List;
@ -36,6 +38,7 @@ public class RecordTaskProcessor {
log.info("开始处理任务:{}", recordTask.getTaskId());
float progress = 5f;
RecordEntity recordEntity = new RecordEntity().setName(recordTask.getTaskName())
.setCategory(recordTask.getType())
.setImageNum(recordTask.getFiles().length)
.setUserId(recordTask.getLoginUser().getUserId())
.setCreateTime(LocalDateTime.now())
@ -45,6 +48,35 @@ public class RecordTaskProcessor {
for (File file : recordTask.getFiles()) {
log.info("调用模型进行分析,file:{}", file.getName());
List<ModelPredictResponse> predict = modelClient.predict(file, recordTask.getModelName(), recordTask.getIou(), recordTask.getConf());
RecordContentEntity recordContentEntity;
if (recordTask.getType() == 2) {
int branchNum=0;
int rapeNum=0;
float totalLength=0;
float bodyLength = 0;
for (ModelPredictResponse item : predict) {
switch (item.getClassify()) {
case 0:
rapeNum++;
totalLength+=RecognitionUtil.getMaxLength(item.getPoints());
case 2:
branchNum++;
break;
case 3:
bodyLength=RecognitionUtil.getMaxLength(item.getPoints());
default:
}
}
BigDecimal b = new BigDecimal(totalLength/rapeNum);
float avgLength = b.setScale(2, RoundingMode.HALF_UP).floatValue();
recordContentEntity = new RecordContentEntity()
.setRecognitionData(predict)
.setBranchNum(branchNum)
.setBodyLength(bodyLength)
.setSiliquaNum(rapeNum).setCategory(2)
.setRapeLength(avgLength);
} else {
int handleNum = 0;
int rapeNum = 0;
int beakNum = 0;
@ -62,6 +94,15 @@ public class RecordTaskProcessor {
}
}
progress += (float) (100 / recordTask.getFiles().length - 10);
recordContentEntity = new RecordContentEntity()
.setCategory(1)
.setRecognitionData(predict)
.setHandleNum(handleNum)
.setBeakNum(beakNum)
.setSiliquaNum(rapeNum);
}
recordTask.setProgress(progress);
// if (!CollectionUtils.isEmpty(predict)) {
String imageUrl;
@ -75,15 +116,10 @@ public class RecordTaskProcessor {
} finally {
file.deleteOnExit();
}
RecordContentEntity recordContentEntity = new RecordContentEntity()
.setRecordId(recordEntity.getId()).setImageUrl(imageUrl)
.setRecognitionData(predict)
recordContentEntity.setRecordId(recordEntity.getId()).setImageUrl(imageUrl)
.setImageName(file.getName())
.setConf(recordTask.getConf())
.setIou(recordTask.getIou())
.setHandleNum(handleNum)
.setBeakNum(beakNum)
.setSiliquaNum(rapeNum);
.setIou(recordTask.getIou());
recordContentMapper.insert(recordContentEntity);
log.info("保存处理结果,file:{}", file.getName());
progress += 3f;

1
src/main/java/com/jiagutech/service/UserServiceImpl.java

@ -67,6 +67,7 @@ public class UserServiceImpl implements UserService {
.setUnitName(user.getUnitName())
.setPhone(user.getPhone())
.setRole(1)
.setId(null)
.setPassword(BCrypt.hashpw(user.getPassword()));
QueryWrapper<UserEntity> wrapper = Wrappers.query();
wrapper.eq("phone", user.getPhone());

1
src/main/java/com/jiagutech/utils/RecognitionUtil.java

@ -22,4 +22,5 @@ public class RecognitionUtil {
}
}

1
src/main/resources/application.yml

@ -54,6 +54,7 @@ mybatis-plus:
global-config:
db-config:
update-strategy: not_null
id-type: auto
sa-token:

5
src/main/resources/mapper/RecordContentMapper.xml

@ -12,6 +12,11 @@
<result column="siliqua_num" property="siliquaNum"/>
<result column="handle_num" property="handleNum"/>
<result column="beak_num" property="beakNum"/>
<result column="body_length" property="bodyLength"/>
<result column="rape_length" property="rapeLength"/>
<result column="branch_num" property="branchNum"/>
<result column="rape_num" property="rapeNum"/>
<result column="category" property="category"/>
<result column="scale_type" property="scaleType"/>
<result column="scale" property="scale" javaType="com.jiagutech.dto.Scale"
typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>

1
src/main/resources/mapper/RecordMapper.xml

@ -19,6 +19,7 @@
r.user_id,
r.image_num as imageNum,
r.create_time as createTime,
r.category,
u.real_name as userName,
u.unit_name as unitName,
u.phone

Loading…
Cancel
Save