diff --git a/core/pom.xml b/core/pom.xml
index 93340d9..cba752e 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -134,6 +134,12 @@
fastjson
1.2.83
+
+
+ com.drewnoakes
+ metadata-extractor
+ 2.15.0
+
diff --git a/core/src/main/java/com/dite/znpt/domain/entity/ImageEntity.java b/core/src/main/java/com/dite/znpt/domain/entity/ImageEntity.java
index 267a7ea..7d966f7 100644
--- a/core/src/main/java/com/dite/znpt/domain/entity/ImageEntity.java
+++ b/core/src/main/java/com/dite/znpt/domain/entity/ImageEntity.java
@@ -1,77 +1,71 @@
package com.dite.znpt.domain.entity;
-import java.time.LocalDateTime;
-import java.io.Serializable;
-
-import com.baomidou.mybatisplus.annotation.*;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
import com.dite.znpt.domain.AuditableEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
-import com.alibaba.excel.annotation.ExcelProperty;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.time.LocalDateTime;
/**
- * @author huise23
- * @date 2025/04/24 13:44
- * @Description: 图像信息表实体类
+ * @author Bear.G
+ * @date 2025/4/24/周四 13:15
+ * @description
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("image")
@ApiModel(value="ImageEntity对象", description="图像信息表")
-public class ImageEntity extends AuditableEntity implements Serializable {
+public class ImageEntity extends AuditableEntity implements Serializable {
- private static final long serialVersionUID = -60463872766900490L;
+ @Serial
+ private static final long serialVersionUID = -7702927820673158420L;
- @ExcelProperty("图像id")
@ApiModelProperty("图像id")
- @TableId(value = "image_id", type = IdType.ASSIGN_UUID)
- private Long imageId;
+ @TableId(value = "part_id", type = IdType.ASSIGN_UUID)
+ private String imageId;
- @ExcelProperty("部件id")
@ApiModelProperty("部件id")
@TableField("part_id")
- private Long partId;
+ private String partId;
+
+ @ApiModelProperty("项目id")
+ @TableField("project_id")
+ private String projectId;
- @ExcelProperty("机组id")
@ApiModelProperty("机组id")
@TableField("turbine_id")
- private Long turbineId;
+ private String turbineId;
- @ExcelProperty("项目id")
- @ApiModelProperty("项目id")
- @TableField("project")
- private Long project;
-
- @ExcelProperty("图像名称")
@ApiModelProperty("图像名称")
@TableField("image_name")
private String imageName;
- @ExcelProperty("图像尺寸")
@ApiModelProperty("图像尺寸")
@TableField("image_size")
private String imageSize;
- @ExcelProperty("焦距")
@ApiModelProperty("焦距")
@TableField("focal_distance")
private String focalDistance;
- @ExcelProperty("拍摄时间")
@ApiModelProperty("拍摄时间")
@TableField("shooting_time")
private LocalDateTime shootingTime;
- @ExcelProperty("相机制造商")
@ApiModelProperty("相机制造商")
@TableField("camera_manufacturer")
private String cameraManufacturer;
- @ExcelProperty("相机型号")
@ApiModelProperty("相机型号")
@TableField("camera_model")
private String cameraModel;
-}
+}
diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ImageListReq.java b/core/src/main/java/com/dite/znpt/domain/vo/ImageListReq.java
index 5153dfc..c0b8473 100644
--- a/core/src/main/java/com/dite/znpt/domain/vo/ImageListReq.java
+++ b/core/src/main/java/com/dite/znpt/domain/vo/ImageListReq.java
@@ -1,55 +1,19 @@
package com.dite.znpt.domain.vo;
-import java.time.LocalDateTime;
-import java.io.Serializable;
-
import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import java.io.Serial;
+import java.io.Serializable;
+
/**
- * @author huise23
- * @date 2025/04/24 13:44
- * @Description: 图像信息请求实体
+ * @author Bear.G
+ * @date 2025/4/24/周四 14:18
+ * @description
*/
@Data
-@ApiModel("图像信息列表请求实体")
+@ApiModel("图像信息列表查询实体")
public class ImageListReq implements Serializable {
-
- private static final long serialVersionUID = 734848078850759056L;
-
- @ApiModelProperty("查询关键字")
- private String keyword;
-
- @ApiModelProperty("图像信息Id")
- private Long imageId;
-
- @ApiModelProperty("部件id")
- private Long partId;
-
- @ApiModelProperty("机组id")
- private Long turbineId;
-
- @ApiModelProperty("项目id")
- private Long project;
-
- @ApiModelProperty("图像名称")
- private String imageName;
-
- @ApiModelProperty("图像尺寸")
- private String imageSize;
-
- @ApiModelProperty("焦距")
- private String focalDistance;
-
- @ApiModelProperty("拍摄时间")
- private LocalDateTime shootingTime;
-
- @ApiModelProperty("相机制造商")
- private String cameraManufacturer;
-
- @ApiModelProperty("相机型号")
- private String cameraModel;
-
+ @Serial
+ private static final long serialVersionUID = 671014582625089979L;
}
-
diff --git a/core/src/main/java/com/dite/znpt/domain/vo/ImageResp.java b/core/src/main/java/com/dite/znpt/domain/vo/ImageResp.java
index 1421a4e..cce541b 100644
--- a/core/src/main/java/com/dite/znpt/domain/vo/ImageResp.java
+++ b/core/src/main/java/com/dite/znpt/domain/vo/ImageResp.java
@@ -1,19 +1,19 @@
package com.dite.znpt.domain.vo;
-import java.time.LocalDateTime;
import io.swagger.annotations.ApiModel;
import lombok.Data;
-import lombok.EqualsAndHashCode;
-import com.dite.znpt.domain.entity.ImageEntity;
+
+import java.io.Serial;
+import java.io.Serializable;
/**
- * @author huise23
- * @date 2025/04/24 13:44
- * @Description: 图像信息响应实体
+ * @author Bear.G
+ * @date 2025/4/24/周四 14:16
+ * @description
*/
@Data
-@EqualsAndHashCode(callSuper = true)
@ApiModel("图像信息响应实体")
-public class ImageResp extends ImageEntity {
+public class ImageResp implements Serializable {
+ @Serial
+ private static final long serialVersionUID = -5215414858454232077L;
}
-
diff --git a/core/src/main/java/com/dite/znpt/mapper/ImageMapper.java b/core/src/main/java/com/dite/znpt/mapper/ImageMapper.java
index d689388..14ec3d4 100644
--- a/core/src/main/java/com/dite/znpt/mapper/ImageMapper.java
+++ b/core/src/main/java/com/dite/znpt/mapper/ImageMapper.java
@@ -4,16 +4,16 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dite.znpt.domain.entity.ImageEntity;
import com.dite.znpt.domain.vo.ImageListReq;
import com.dite.znpt.domain.vo.ImageResp;
-import org.apache.ibatis.annotations.Param;
+import com.dite.znpt.domain.vo.PartListReq;
+import com.dite.znpt.domain.vo.PartResp;
import java.util.List;
/**
- * @author huise23
- * @date 2025/04/24 13:44
- * @Description: 图像信息表数据库访问层
+ * @author Bear.G
+ * @date 2025/4/24/周四 13:17
+ * @description
*/
public interface ImageMapper extends BaseMapper {
- List queryBySelective(ImageListReq imageReq);
+ List queryBySelective(ImageListReq req);
}
-
diff --git a/core/src/main/java/com/dite/znpt/service/ImageService.java b/core/src/main/java/com/dite/znpt/service/ImageService.java
index 598be9a..b956e32 100644
--- a/core/src/main/java/com/dite/znpt/service/ImageService.java
+++ b/core/src/main/java/com/dite/znpt/service/ImageService.java
@@ -8,57 +8,11 @@ import com.dite.znpt.domain.vo.ImageResp;
import java.util.List;
/**
- * @author huise23
- * @date 2025/04/24 13:44
- * @Description: 图像信息表服务接口
+ * @author Bear.G
+ * @date 2025/4/24/周四 13:14
+ * @description
*/
public interface ImageService extends IService {
- /**
- * 功能描述:查询图像信息列表
- *
- * @param imageReq 图像信息
- * @return {@link List }<{@link ImageEntity }>
- * @author huise23
- * @date 2025/04/24 13:44
- **/
- List selectList(ImageListReq imageReq);
-
- /**
- * 功能描述:查询单条图像信息
- *
- * @param imageId 图像信息Id
- * @return {@link ImageResp }
- * @author huise23
- * @date 2025/04/24 13:44
- **/
- ImageResp selectById(Long imageId);
-
- /**
- * 功能描述:新增图像信息
- *
- * @param image 图像信息
- * @author huise23
- * @date 2025/04/24 13:44
- **/
- void saveData(ImageEntity image);
-
- /**
- * 功能描述:更新图像信息
- *
- * @param image 图像信息
- * @author huise23
- * @date 2025/04/24 13:44
- **/
- void updateData(ImageEntity image);
-
- /**
- * 功能描述:删除图像信息
- *
- * @param imageId 图像信息Id
- * @author huise23
- * @date 2025/04/24 13:44
- **/
- void deleteById(Long imageId);
+ List selectList(ImageListReq req);
}
-
diff --git a/core/src/main/java/com/dite/znpt/service/impl/ImageServiceImpl.java b/core/src/main/java/com/dite/znpt/service/impl/ImageServiceImpl.java
index c409253..0e06c94 100644
--- a/core/src/main/java/com/dite/znpt/service/impl/ImageServiceImpl.java
+++ b/core/src/main/java/com/dite/znpt/service/impl/ImageServiceImpl.java
@@ -4,96 +4,25 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dite.znpt.domain.entity.ImageEntity;
import com.dite.znpt.domain.vo.ImageListReq;
import com.dite.znpt.domain.vo.ImageResp;
-import com.dite.znpt.service.ImageService;
import com.dite.znpt.mapper.ImageMapper;
-import org.springframework.stereotype.Service;
-import cn.hutool.core.collection.CollUtil;
-import lombok.RequiredArgsConstructor;
+import com.dite.znpt.service.ImageService;
import com.dite.znpt.util.PageUtil;
import java.util.List;
/**
- * @author huise23
- * @date 2025/04/24 13:44
- * @Description: 图像信息表服务实现类
+ * @author Bear.G
+ * @date 2025/4/24/周四 13:23
+ * @description
*/
-@Service
-@RequiredArgsConstructor
public class ImageServiceImpl extends ServiceImpl implements ImageService {
-
- /**
- * 功能描述:查询图像信息列表
- *
- * @param imageReq 图像信息信息
- * @return {@link List }<{@link ImageResp }>
- * @author huise23
- * @date 2025/04/24 13:44
- **/
@Override
- public List selectList(ImageListReq imageReq) {
+ public List selectList(ImageListReq req) {
PageUtil.startPage();
- List imageList= this.baseMapper.queryBySelective(imageReq);
+ List imageList= this.baseMapper.queryBySelective(req);
imageList.forEach(resp -> {
-
+
});
return imageList;
}
-
- /**
- * 功能描述:查询单条图像信息
- *
- * @param imageId 图像信息Id
- * @return {@link ImageResp }
- * @author huise23
- * @date 2025/04/24 13:44
- **/
- @Override
- public ImageResp selectById(Long imageId) {
- ImageListReq imageReq = new ImageListReq();
- imageReq.setImageId(imageId);
-
- List list = selectList(imageReq);
- return list.isEmpty() ? CollUtil.getFirst(list) : new ImageResp();
- }
-
- /**
- * 功能描述:新增图像信息
- *
- * @param image 图像信息
- * @author huise23
- * @date 2025/04/24 13:44
- **/
- @Override
- public void saveData(ImageEntity image) {
-// todo 校验
- save(image);
- }
-
- /**
- * 功能描述:更新图像信息
- *
- * @param image 图像信息
- * @author huise23
- * @date 2025/04/24 13:44
- **/
- @Override
- public void updateData(ImageEntity image) {
-// todo 校验
- updateById(image);
- }
-
- /**
- * 功能描述:删除图像信息
- *
- * @param imageId 图像信息Id
- * @author huise23
- * @date 2025/04/24 13:44
- **/
- @Override
- public void deleteById(Long imageId) {
-// todo 校验
- removeById(imageId);
- }
-
}
diff --git a/core/src/main/java/com/dite/znpt/util/EXIFUtil.java b/core/src/main/java/com/dite/znpt/util/EXIFUtil.java
new file mode 100644
index 0000000..136a5a7
--- /dev/null
+++ b/core/src/main/java/com/dite/znpt/util/EXIFUtil.java
@@ -0,0 +1,69 @@
+package com.dite.znpt.util;
+
+import cn.hutool.json.JSONObject;
+import com.drew.imaging.ImageMetadataReader;
+import com.drew.metadata.Directory;
+import com.drew.metadata.Metadata;
+import com.drew.metadata.Tag;
+
+import java.io.File;
+
+/**
+ * @author Bear.G
+ * @date 2025/4/24/周四 14:10
+ * @description
+ */
+public class EXIFUtil {
+
+ public static void main(String[] args) throws Exception {
+ File file = new File("C:\\Users\\Administrator\\Desktop\\水杯.jpg");
+ printImageTags(file);
+ }
+ /**
+ * 读取照片里面的信息
+ */
+ public static JSONObject printImageTags(File file) throws Exception {
+ Metadata metadata = ImageMetadataReader.readMetadata(file);
+ JSONObject jsonObject = new JSONObject();
+ String lat = "";
+ String log = "";
+ for (Directory directory : metadata.getDirectories()) {
+ for (Tag tag : directory.getTags()) {
+ // 标签名
+ String tagName = tag.getTagName();
+ // 标签信息
+ String desc = tag.getDescription();
+ System.out.println(tagName + "=" + desc);
+ switch (tagName) {
+ // 经度
+ case "GPS Longitude":
+ lat = pointToLatlong(desc);
+ jsonObject.put(tagName, lat);
+ break;
+ // 纬度
+ case "GPS Latitude":
+ log = pointToLatlong(desc);
+ jsonObject.put(tagName, log);
+ break;
+ default:
+ jsonObject.put(tagName, desc);
+ break;
+ }
+ }
+ }
+ System.out.println("**********" + jsonObject.toString());
+ return jsonObject;
+ }
+
+ /***
+ * 经纬度坐标格式转换(* °转十进制格式)
+ * @param point
+ */
+ public static String pointToLatlong(String point) {
+ Double du = Double.parseDouble(point.substring(0, point.indexOf("°")).trim());
+ Double fen = Double.parseDouble(point.substring(point.indexOf("°") + 1, point.indexOf("'")).trim());
+ Double miao = Double.parseDouble(point.substring(point.indexOf("'") + 1, point.indexOf("\"")).trim());
+ Double duStr = du + fen / 60 + miao / 60 / 60;
+ return duStr.toString();
+ }
+}
diff --git a/core/src/main/resources/mapper/ImageMapper.xml b/core/src/main/resources/mapper/ImageMapper.xml
index 6f39975..9fba7da 100644
--- a/core/src/main/resources/mapper/ImageMapper.xml
+++ b/core/src/main/resources/mapper/ImageMapper.xml
@@ -1,52 +1,18 @@
-
- a.image_id, a.part_id, a.turbine_id, a.project,
- a.image_name, a.image_size, a.focal_distance, a.shooting_time,
- a.camera_manufacturer, a.camera_model
+ a.image, a.part_id, a.turbine_id, a.project_id, a.image_name, a.image_size, a.focal_distance, a.shooting_time, a.camera_manufacture, a.camera_model
-
-
+
\ No newline at end of file
diff --git a/web/src/main/java/com/dite/znpt/web/controller/ImageController.java b/web/src/main/java/com/dite/znpt/web/controller/ImageController.java
new file mode 100644
index 0000000..f0f1cf8
--- /dev/null
+++ b/web/src/main/java/com/dite/znpt/web/controller/ImageController.java
@@ -0,0 +1,29 @@
+package com.dite.znpt.web.controller;
+
+
+import com.dite.znpt.domain.PageResult;
+import com.dite.znpt.domain.vo.ImageListReq;
+import com.dite.znpt.domain.vo.ImageResp;
+import com.dite.znpt.service.ImageService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.GetMapping;
+
+import javax.annotation.Resource;
+
+/**
+ * @author Bear.G
+ * @date 2025/4/24/周四 12:46
+ * @description
+ */
+public class ImageController {
+
+ @Resource
+ private ImageService imageService;
+
+ @ApiOperation(value = "分页查询图像列表", httpMethod = "GET")
+ @GetMapping("/page")
+ public PageResult list(ImageListReq req) {
+ return PageResult.ok(imageService.selectList(req));
+ }
+
+}
diff --git a/web/src/main/resources/application-dev.yml b/web/src/main/resources/application-dev.yml
index adf1b31..5362495 100644
--- a/web/src/main/resources/application-dev.yml
+++ b/web/src/main/resources/application-dev.yml
@@ -1,7 +1,7 @@
# 开发环境配置
server:
# 服务器的HTTP端口,默认为8080
- port: 8080
+ port: 8888
# 数据源配置
spring:
@@ -10,7 +10,7 @@ spring:
driverClassName: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://39.99.201.243:3306/test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
- password: h67&E98HS8^6
+ password: BUw8YW6%@^8q
druid:
# 初始连接数
initialSize: 5
@@ -59,11 +59,16 @@ spring:
max-wait: 3000
host: 39.99.201.243
port: 6379
- password: yfeng@123
+ password: diTeZn@123
timeout: 3000
# 0 gaea系统,3 gaea-dev/gaea-test系统,4 znpt开发,5 znpt测试 6 znpt生产
database: 4
-
+ # mq 配置
+ rabbitmq:
+ host: 39.99.201.243
+ port: 3389
+ username: dite
+ password: diTezN@123
## MINIO配置
#minio:
# url: http://10.20.32.11:9000
@@ -80,7 +85,7 @@ spring:
sip-config:
name: 信令服务
- ip: 10.17.12.203
+ ip: 192.168.0.207
port: 1074
charset: gb2312
domain: 3402000000
@@ -96,17 +101,17 @@ zlm-config:
# 公网ip
publicHost:
# 接口ip
- apiHost: 10.17.12.203
+ apiHost: 192.168.0.207
# 接口端口
- apiPort: 30186
+ apiPort: 8080
# 密钥
- secretKey: JvVotkdN01y4qZHlrJsdq4gD7n9rK6wV
+ secretKey: 6Q76ivvVOQDsnnfOSKbtVzcYpbgy4n1G
# 流id前缀
streamPrefix:
# rtp ip
rtpHost: 10.17.12.203
# rtp 端口
- rtpPort: 30186
+ rtpPort: 8080
# 动态端口起始值
dynamicPortStart: 30150
# 动态端口结束值