diff --git a/pom.xml b/pom.xml
index f664c0a..57efe41 100644
--- a/pom.xml
+++ b/pom.xml
@@ -28,9 +28,23 @@
1.2.20
3.1.0
6.0.0
+ 1.18.30
+ 1.5.5.Final
+ 1.18.20.0
+ 0.2.0
+
+ org.mapstruct
+ mapstruct
+ ${mapstruct.version}
+
+
+ org.projectlombok
+ lombok
+ ${lombok.version}
+
org.springframework.boot
spring-boot-starter-jdbc
@@ -39,6 +53,10 @@
org.springframework.boot
spring-boot-starter-web
+
+ com.fasterxml.jackson.datatype
+ jackson-datatype-jsr310
+
org.mybatis.spring.boot
mybatis-spring-boot-starter
@@ -204,6 +222,45 @@
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ ${maven-compiler-plugin.version}
+
+
+
+ org.projectlombok
+ lombok
+ ${lombok.version}
+
+
+ org.projectlombok
+ lombok-maven-plugin
+ ${lombok-maven-plugin.version}
+
+
+ org.projectlombok
+ lombok-mapstruct-binding
+ ${lombok-mapstruct-binding.version}
+
+
+ org.mapstruct
+ mapstruct-processor
+ ${mapstruct.version}
+
+
+ org.springframework.boot
+ spring-boot-configuration-processor
+ 3.2.8
+
+
+
+
+ -Amapstruct.unmappedTargetPolicy=IGNORE
+
+
+
+
diff --git a/src/main/java/com/isu/gaswellwatch/config/WebConfig.java b/src/main/java/com/isu/gaswellwatch/config/WebConfig.java
index 765e6be..7d8e1b7 100644
--- a/src/main/java/com/isu/gaswellwatch/config/WebConfig.java
+++ b/src/main/java/com/isu/gaswellwatch/config/WebConfig.java
@@ -3,11 +3,15 @@ package com.isu.gaswellwatch.config;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
+import com.isu.gaswellwatch.utils.LocalDateTimeToStringConverter;
+import com.isu.gaswellwatch.utils.StringToLocalDateTimeConverter;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+import java.time.LocalDateTime;
import java.util.List;
@Configuration
@@ -16,12 +20,14 @@ public class WebConfig implements WebMvcConfigurer {
public void configureMessageConverters(List> converters) {
MappingJackson2HttpMessageConverter jackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();
ObjectMapper objectMapper = new ObjectMapper();
+ objectMapper.registerModule(new JavaTimeModule());
SimpleModule simpleModule = new SimpleModule();
- simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance);
+ simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
+ simpleModule.addSerializer(LocalDateTime.class, LocalDateTimeToStringConverter.INSTANCE);
+ simpleModule.addDeserializer(LocalDateTime.class, StringToLocalDateTimeConverter.INSTANCE);
objectMapper.registerModule(simpleModule);
-
jackson2HttpMessageConverter.setObjectMapper(objectMapper);
converters.addFirst(jackson2HttpMessageConverter);
}
diff --git a/src/main/java/com/isu/gaswellwatch/controller/BlockController.java b/src/main/java/com/isu/gaswellwatch/controller/BlockController.java
new file mode 100644
index 0000000..bb75d7e
--- /dev/null
+++ b/src/main/java/com/isu/gaswellwatch/controller/BlockController.java
@@ -0,0 +1,89 @@
+package com.isu.gaswellwatch.controller;
+
+import java.util.Collection;
+import java.util.List;
+
+import jakarta.servlet.http.HttpServletResponse;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.isu.gaswellwatch.service.BlockService;
+import com.isu.gaswellwatch.entity.Response;
+import com.isu.gaswellwatch.enums.LogType;
+import com.isu.gaswellwatch.dto.BlockCreateRequest;
+import com.isu.gaswellwatch.dto.BlockEditRequest;
+import com.isu.gaswellwatch.vo.BlockPageQuery;
+import com.isu.gaswellwatch.vo.BlockVO;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.isu.gaswellwatch.annotation.OperationLog;
+import jakarta.annotation.Resource;
+import jakarta.validation.Valid;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 区块管理
+ *
+ * @author scwsl
+ * @date 2024-11-17
+ */
+@RestController
+@RequiredArgsConstructor
+@RequestMapping("/blocks")
+public class BlockController {
+
+ private final BlockService blockService;
+
+ /**
+ * 查询区块列表
+ */
+ @GetMapping
+ public Response> page(BlockPageQuery query) {
+ return Response.succeed(blockService.pageForQuery(query));
+ }
+
+ /**
+ * 获取区块详细信息
+ */
+ @GetMapping(value = "/{id}")
+ public Response getInfo(@PathVariable("id") Long id) {
+ return Response.succeed(blockService.selectBlockById(id));
+ }
+
+ /**
+ * 新增区块
+ */
+ @PostMapping
+ @OperationLog(description = "新增区块", type = LogType.ADD)
+ public Response add(@RequestBody @Valid BlockCreateRequest blockCreateRequest) {
+ blockService.insertBlock(blockCreateRequest);
+ return Response.succeed();
+ }
+
+ /**
+ * 修改区块
+ */
+ @PutMapping
+ @OperationLog(description = "修改区块", type = LogType.UPDATE)
+ public Response edit(@RequestBody BlockEditRequest blockEditRequest) {
+ blockService.updateBlock(blockEditRequest);
+ return Response.succeed();
+ }
+
+ /**
+ * 删除区块
+ */
+ @DeleteMapping("/{ids}")
+ @OperationLog(description = "删除区块", type = LogType.DELETE)
+ public Response delete(@PathVariable Collection ids) {
+ blockService.deleteBlockByIds(ids);
+ return Response.succeed();
+ }
+
+}
diff --git a/src/main/java/com/isu/gaswellwatch/controller/GasWellController.java b/src/main/java/com/isu/gaswellwatch/controller/GasWellController.java
new file mode 100644
index 0000000..5f1461b
--- /dev/null
+++ b/src/main/java/com/isu/gaswellwatch/controller/GasWellController.java
@@ -0,0 +1,89 @@
+package com.isu.gaswellwatch.controller;
+
+import java.util.Collection;
+import java.util.List;
+
+import jakarta.servlet.http.HttpServletResponse;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.isu.gaswellwatch.service.GasWellService;
+import com.isu.gaswellwatch.entity.Response;
+import com.isu.gaswellwatch.enums.LogType;
+import com.isu.gaswellwatch.dto.GasWellCreateRequest;
+import com.isu.gaswellwatch.dto.GasWellEditRequest;
+import com.isu.gaswellwatch.vo.GasWellPageQuery;
+import com.isu.gaswellwatch.vo.GasWellVO;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.isu.gaswellwatch.annotation.OperationLog;
+import jakarta.annotation.Resource;
+import jakarta.validation.Valid;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 气井管理
+ *
+ * @author scwsl
+ * @date 2024-11-17
+ */
+@RestController
+@RequiredArgsConstructor
+@RequestMapping("/gaswell")
+public class GasWellController {
+
+ private final GasWellService gasWellService;
+
+ /**
+ * 查询气井列表
+ */
+ @GetMapping
+ public Response> page(GasWellPageQuery query) {
+ return Response.succeed(gasWellService.pageForQuery(query));
+ }
+
+ /**
+ * 获取气井详细信息
+ */
+ @GetMapping(value = "/{id}")
+ public Response getInfo(@PathVariable("id") Long id) {
+ return Response.succeed(gasWellService.selectGasWellById(id));
+ }
+
+ /**
+ * 新增气井
+ */
+ @PostMapping
+ @OperationLog(description = "新增气井", type = LogType.ADD)
+ public Response add(@RequestBody @Valid GasWellCreateRequest gasWellCreateRequest) {
+ gasWellService.insertGasWell(gasWellCreateRequest);
+ return Response.succeed();
+ }
+
+ /**
+ * 修改气井
+ */
+ @PutMapping
+ @OperationLog(description = "修改气井", type = LogType.UPDATE)
+ public Response edit(@RequestBody GasWellEditRequest gasWellEditRequest) {
+ gasWellService.updateGasWell(gasWellEditRequest);
+ return Response.succeed();
+ }
+
+ /**
+ * 删除气井
+ */
+ @DeleteMapping("/{ids}")
+ @OperationLog(description = "删除气井", type = LogType.DELETE)
+ public Response delete(@PathVariable Collection ids) {
+ gasWellService.deleteGasWellByIds(ids);
+ return Response.succeed();
+ }
+
+}
diff --git a/src/main/java/com/isu/gaswellwatch/dao/BlockDao.java b/src/main/java/com/isu/gaswellwatch/dao/BlockDao.java
new file mode 100644
index 0000000..645c016
--- /dev/null
+++ b/src/main/java/com/isu/gaswellwatch/dao/BlockDao.java
@@ -0,0 +1,79 @@
+package com.isu.gaswellwatch.dao;
+
+import java.util.Collection;
+import java.util.List;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.isu.gaswellwatch.vo.BlockVO;
+import com.isu.gaswellwatch.vo.BlockPageQuery;
+import com.isu.gaswellwatch.entity.Block;
+
+/**
+ * 区块Mapper接口
+ *
+ * @author scwsl
+ * @date 2024-11-17
+ */
+@Mapper
+@Repository
+public interface BlockDao extends BaseMapper {
+ /**
+ * 查询区块
+ *
+ * @param id 区块主键
+ * @return 区块
+ */
+ Block selectBlockById(Long id);
+
+ /**
+ * 查询区块列表
+ *
+ * @param block 区块
+ * @return 区块集合
+ */
+ List selectBlockList(Block block);
+
+ /**
+ * 分页查询区块列表
+ *
+ * @param query 查询条件
+ * @return 区块
+ */
+ Page pageForQuery(Page page, @Param("query") BlockPageQuery query);
+
+ /**
+ * 新增区块
+ *
+ * @param block 区块
+ * @return 结果
+ */
+ int insertBlock(Block block);
+
+ /**
+ * 修改区块
+ *
+ * @param block 区块
+ * @return 结果
+ */
+ int updateBlock(Block block);
+
+ /**
+ * 删除区块
+ *
+ * @param id 区块主键
+ * @return 结果
+ */
+ int deleteBlockById(Long id);
+
+ /**
+ * 批量删除区块
+ *
+ * @param ids 需要删除的数据主键集合
+ * @return 结果
+ */
+ int deleteBlockByIds(Collection ids);
+
+}
diff --git a/src/main/java/com/isu/gaswellwatch/dao/GasWellDao.java b/src/main/java/com/isu/gaswellwatch/dao/GasWellDao.java
new file mode 100644
index 0000000..4c2e7bd
--- /dev/null
+++ b/src/main/java/com/isu/gaswellwatch/dao/GasWellDao.java
@@ -0,0 +1,79 @@
+package com.isu.gaswellwatch.dao;
+
+import java.util.Collection;
+import java.util.List;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.isu.gaswellwatch.vo.GasWellVO;
+import com.isu.gaswellwatch.vo.GasWellPageQuery;
+import com.isu.gaswellwatch.entity.GasWell;
+
+/**
+ * 气井Mapper接口
+ *
+ * @author scwsl
+ * @date 2024-11-17
+ */
+@Mapper
+@Repository
+public interface GasWellDao extends BaseMapper {
+ /**
+ * 查询气井
+ *
+ * @param id 气井主键
+ * @return 气井
+ */
+ GasWell selectGasWellById(Long id);
+
+ /**
+ * 查询气井列表
+ *
+ * @param gasWell 气井
+ * @return 气井集合
+ */
+ List selectGasWellList(GasWell gasWell);
+
+ /**
+ * 分页查询气井列表
+ *
+ * @param query 查询条件
+ * @return 气井
+ */
+ Page pageForQuery(Page page, @Param("query") GasWellPageQuery query);
+
+ /**
+ * 新增气井
+ *
+ * @param gasWell 气井
+ * @return 结果
+ */
+ int insertGasWell(GasWell gasWell);
+
+ /**
+ * 修改气井
+ *
+ * @param gasWell 气井
+ * @return 结果
+ */
+ int updateGasWell(GasWell gasWell);
+
+ /**
+ * 删除气井
+ *
+ * @param id 气井主键
+ * @return 结果
+ */
+ int deleteGasWellById(Long id);
+
+ /**
+ * 批量删除气井
+ *
+ * @param ids 需要删除的数据主键集合
+ * @return 结果
+ */
+ int deleteGasWellByIds(Collection ids);
+
+}
diff --git a/src/main/java/com/isu/gaswellwatch/dto/BlockCreateRequest.java b/src/main/java/com/isu/gaswellwatch/dto/BlockCreateRequest.java
new file mode 100644
index 0000000..8438ccd
--- /dev/null
+++ b/src/main/java/com/isu/gaswellwatch/dto/BlockCreateRequest.java
@@ -0,0 +1,41 @@
+package com.isu.gaswellwatch.dto;
+
+import lombok.EqualsAndHashCode;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.SuperBuilder;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import java.io.Serializable;
+import java.io.Serial;
+import java.time.LocalDateTime;
+
+/**
+ * 创建区块对象 blocks
+ *
+ * @author scwsl
+ * @date 2024-11-17
+ */
+@Getter
+@Setter
+@SuperBuilder
+@NoArgsConstructor
+public class BlockCreateRequest implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /** 上级标识 */
+ private Long parentId;
+
+ /** 名称 */
+ private String name;
+
+ /** 描述 */
+ private String details;
+
+
+}
diff --git a/src/main/java/com/isu/gaswellwatch/dto/BlockEditRequest.java b/src/main/java/com/isu/gaswellwatch/dto/BlockEditRequest.java
new file mode 100644
index 0000000..5135950
--- /dev/null
+++ b/src/main/java/com/isu/gaswellwatch/dto/BlockEditRequest.java
@@ -0,0 +1,43 @@
+package com.isu.gaswellwatch.dto;
+
+import lombok.EqualsAndHashCode;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.SuperBuilder;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import java.io.Serializable;
+import java.io.Serial;
+import java.time.LocalDateTime;
+
+/**
+ * 修改区块对象 blocks
+ *
+ * @author scwsl
+ * @date 2024-11-17
+ */
+@Getter
+@Setter
+@SuperBuilder
+@NoArgsConstructor
+public class BlockEditRequest implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /** 主键 */
+ private Long id;
+
+ /** 上级标识 */
+ private Long parentId;
+
+ /** 名称 */
+ private String name;
+
+ /** 描述 */
+ private String details;
+
+}
diff --git a/src/main/java/com/isu/gaswellwatch/dto/GasWellCreateRequest.java b/src/main/java/com/isu/gaswellwatch/dto/GasWellCreateRequest.java
new file mode 100644
index 0000000..ece834e
--- /dev/null
+++ b/src/main/java/com/isu/gaswellwatch/dto/GasWellCreateRequest.java
@@ -0,0 +1,40 @@
+package com.isu.gaswellwatch.dto;
+
+import lombok.EqualsAndHashCode;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.SuperBuilder;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import java.io.Serializable;
+import java.io.Serial;
+import java.time.LocalDateTime;
+
+/**
+ * 创建气井对象 gas_wells
+ *
+ * @author scwsl
+ * @date 2024-11-17
+ */
+@Getter
+@Setter
+@SuperBuilder
+@NoArgsConstructor
+public class GasWellCreateRequest implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /** 关联公司 */
+ private Long companyId;
+
+ /** 气井名称 */
+ private String name;
+
+ /** 描述 */
+ private String details;
+
+}
diff --git a/src/main/java/com/isu/gaswellwatch/dto/GasWellEditRequest.java b/src/main/java/com/isu/gaswellwatch/dto/GasWellEditRequest.java
new file mode 100644
index 0000000..4c9bc59
--- /dev/null
+++ b/src/main/java/com/isu/gaswellwatch/dto/GasWellEditRequest.java
@@ -0,0 +1,43 @@
+package com.isu.gaswellwatch.dto;
+
+import lombok.EqualsAndHashCode;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.SuperBuilder;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import java.io.Serializable;
+import java.io.Serial;
+import java.time.LocalDateTime;
+
+/**
+ * 修改气井对象 gas_wells
+ *
+ * @author scwsl
+ * @date 2024-11-17
+ */
+@Getter
+@Setter
+@SuperBuilder
+@NoArgsConstructor
+public class GasWellEditRequest implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /** 主键 */
+ private Long id;
+
+ /** 关联公司 */
+ private Long companyId;
+
+ /** 气井名称 */
+ private String name;
+
+ /** 描述 */
+ private String details;
+
+}
diff --git a/src/main/java/com/isu/gaswellwatch/entity/Block.java b/src/main/java/com/isu/gaswellwatch/entity/Block.java
new file mode 100644
index 0000000..171f950
--- /dev/null
+++ b/src/main/java/com/isu/gaswellwatch/entity/Block.java
@@ -0,0 +1,54 @@
+package com.isu.gaswellwatch.entity;
+
+import lombok.EqualsAndHashCode;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import lombok.ToString;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import java.time.LocalDateTime;
+
+/**
+ * 区块对象 blocks
+ *
+ * @author scwsl
+ * @date 2024-11-17
+ */
+@Getter
+@Setter
+@NoArgsConstructor
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = true)
+public class Block extends Model {
+
+ private static final long serialVersionUID = 1L;
+
+ /** 主键 */
+ private Long id;
+
+ /** 上级标识 */
+ private Long parentId;
+
+ /** 名称 */
+ private String name;
+
+ /** 描述 */
+ private String details;
+
+ /** 是否已删除 */
+ private Integer deleted;
+
+ /** 创建人 */
+ private Long createBy;
+
+ /** 创建时间 */
+ private LocalDateTime createTime;
+
+ /** 更新人 */
+ private Long updateBy;
+
+ /** 更新时间 */
+ private LocalDateTime updateTime;
+
+
+}
diff --git a/src/main/java/com/isu/gaswellwatch/entity/GasWell.java b/src/main/java/com/isu/gaswellwatch/entity/GasWell.java
new file mode 100644
index 0000000..4d9487e
--- /dev/null
+++ b/src/main/java/com/isu/gaswellwatch/entity/GasWell.java
@@ -0,0 +1,51 @@
+package com.isu.gaswellwatch.entity;
+
+import lombok.EqualsAndHashCode;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import lombok.ToString;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import java.time.LocalDateTime;
+
+/**
+ * 气井对象 gas_wells
+ *
+ * @author scwsl
+ * @date 2024-11-17
+ */
+@Getter
+@Setter
+@NoArgsConstructor
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = true)
+public class GasWell extends Model {
+
+ private static final long serialVersionUID = 1L;
+
+ /** 主键 */
+ private Long id;
+
+ /** 关联公司 */
+ private Long companyId;
+
+ /** 气井名称 */
+ private String name;
+
+ /** 描述 */
+ private String details;
+
+ /** 创建人 */
+ private Long createBy;
+
+ /** 创建时间 */
+ private LocalDateTime createTime;
+
+ /** 更新人 */
+ private Long updateBy;
+
+ /** 更新时间 */
+ private LocalDateTime updateTime;
+
+
+}
diff --git a/src/main/java/com/isu/gaswellwatch/mapper/BlockMapper.java b/src/main/java/com/isu/gaswellwatch/mapper/BlockMapper.java
new file mode 100644
index 0000000..547d390
--- /dev/null
+++ b/src/main/java/com/isu/gaswellwatch/mapper/BlockMapper.java
@@ -0,0 +1,63 @@
+package com.isu.gaswellwatch.mapper;
+
+
+import org.mapstruct.Mapper;
+import org.mapstruct.Mapping;
+import org.mapstruct.MappingTarget;
+
+import com.isu.gaswellwatch.entity.Block;
+import com.isu.gaswellwatch.dto.BlockCreateRequest;
+import com.isu.gaswellwatch.dto.BlockEditRequest;
+import com.isu.gaswellwatch.vo.BlockVO;
+import com.isu.gaswellwatch.vo.UserLoginInfoVO;
+
+import cn.dev33.satoken.stp.StpUtil;
+import com.isu.gaswellwatch.constants.UserConstant;
+
+import java.time.LocalDateTime;
+import java.util.Objects;
+import java.util.List;
+
+/**
+ * 区块Mapper blocks
+ *
+ * @author scwsl
+ * @date 2024-11-17
+ */
+@Mapper
+public interface BlockMapper {
+
+ void create(BlockCreateRequest request, @MappingTarget Block block);
+
+ @Mapping(target = "id", ignore = true)
+ void copyToEntity(BlockEditRequest request, @MappingTarget Block block);
+
+ BlockVO toPageVO(Block entity);
+
+ List toPageVO(List entities);
+
+ default void copy(BlockEditRequest request, Block block) {
+ UserLoginInfoVO userLoginInfoVO = (UserLoginInfoVO) StpUtil.getTokenSession()
+ .get(UserConstant.TOKEN_SESSION);
+ if (Objects.nonNull(userLoginInfoVO) && Objects.nonNull(userLoginInfoVO.getUserVO())) {
+ block.setUpdateBy(block.getCreateBy());
+ }
+ block.setUpdateTime(LocalDateTime.now());
+ copyToEntity(request, block);
+ }
+
+ default Block create(BlockCreateRequest request) {
+ UserLoginInfoVO userLoginInfoVO = (UserLoginInfoVO) StpUtil.getTokenSession()
+ .get(UserConstant.TOKEN_SESSION);
+ Block block =new Block();
+ block.setCreateTime(LocalDateTime.now());
+ block.setUpdateTime(block.getCreateTime());
+ if (Objects.nonNull(userLoginInfoVO) && Objects.nonNull(userLoginInfoVO.getUserVO())) {
+ block.setCreateBy(userLoginInfoVO.getUserVO().getId());
+ block.setUpdateBy(block.getCreateBy());
+ }
+ create(request, block);
+ return block;
+ }
+
+}
diff --git a/src/main/java/com/isu/gaswellwatch/mapper/GasWellMapper.java b/src/main/java/com/isu/gaswellwatch/mapper/GasWellMapper.java
new file mode 100644
index 0000000..8f2fc08
--- /dev/null
+++ b/src/main/java/com/isu/gaswellwatch/mapper/GasWellMapper.java
@@ -0,0 +1,63 @@
+package com.isu.gaswellwatch.mapper;
+
+
+import org.mapstruct.Mapper;
+import org.mapstruct.Mapping;
+import org.mapstruct.MappingTarget;
+
+import com.isu.gaswellwatch.entity.GasWell;
+import com.isu.gaswellwatch.dto.GasWellCreateRequest;
+import com.isu.gaswellwatch.dto.GasWellEditRequest;
+import com.isu.gaswellwatch.vo.GasWellVO;
+import com.isu.gaswellwatch.vo.UserLoginInfoVO;
+
+import cn.dev33.satoken.stp.StpUtil;
+import com.isu.gaswellwatch.constants.UserConstant;
+
+import java.time.LocalDateTime;
+import java.util.Objects;
+import java.util.List;
+
+/**
+ * 气井Mapper gas_wells
+ *
+ * @author scwsl
+ * @date 2024-11-17
+ */
+@Mapper
+public interface GasWellMapper {
+
+ void create(GasWellCreateRequest request, @MappingTarget GasWell gasWell);
+
+ @Mapping(target = "id", ignore = true)
+ void copyToEntity(GasWellEditRequest request, @MappingTarget GasWell gasWell);
+
+ GasWellVO toPageVO(GasWell entity);
+
+ List toPageVO(List entities);
+
+ default void copy(GasWellEditRequest request, GasWell gasWell) {
+ UserLoginInfoVO userLoginInfoVO = (UserLoginInfoVO) StpUtil.getTokenSession()
+ .get(UserConstant.TOKEN_SESSION);
+ if (Objects.nonNull(userLoginInfoVO) && Objects.nonNull(userLoginInfoVO.getUserVO())) {
+ gasWell.setUpdateBy(gasWell.getCreateBy());
+ }
+ gasWell.setUpdateTime(LocalDateTime.now());
+ copyToEntity(request, gasWell);
+ }
+
+ default GasWell create(GasWellCreateRequest request) {
+ UserLoginInfoVO userLoginInfoVO = (UserLoginInfoVO) StpUtil.getTokenSession()
+ .get(UserConstant.TOKEN_SESSION);
+ GasWell gasWell =new GasWell();
+ gasWell.setCreateTime(LocalDateTime.now());
+ gasWell.setUpdateTime(gasWell.getCreateTime());
+ if (Objects.nonNull(userLoginInfoVO) && Objects.nonNull(userLoginInfoVO.getUserVO())) {
+ gasWell.setCreateBy(userLoginInfoVO.getUserVO().getId());
+ gasWell.setUpdateBy(gasWell.getCreateBy());
+ }
+ create(request, gasWell);
+ return gasWell;
+ }
+
+}
diff --git a/src/main/java/com/isu/gaswellwatch/service/BlockService.java b/src/main/java/com/isu/gaswellwatch/service/BlockService.java
new file mode 100644
index 0000000..f79201f
--- /dev/null
+++ b/src/main/java/com/isu/gaswellwatch/service/BlockService.java
@@ -0,0 +1,77 @@
+package com.isu.gaswellwatch.service;
+
+import java.util.List;
+import java.util.Collection;
+
+import com.isu.gaswellwatch.dto.BlockCreateRequest;
+import com.isu.gaswellwatch.dto.BlockEditRequest;
+import com.isu.gaswellwatch.vo.BlockPageQuery;
+import com.isu.gaswellwatch.vo.BlockVO;
+import com.isu.gaswellwatch.entity.Block;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+/**
+ * 区块Service接口
+ *
+ * @author scwsl
+ * @date 2024-11-17
+ */
+public interface BlockService extends IService {
+ /**
+ * 查询区块
+ *
+ * @param id 区块主键
+ * @return 区块
+ */
+ BlockVO selectBlockById(Long id);
+
+ /**
+ * 查询区块列表
+ *
+ * @param block 区块
+ * @return 区块集合
+ */
+ List selectBlockList(Block block);
+
+ /**
+ * 分页查询区块列表
+ *
+ * @param query 查询条件
+ * @return 区块
+ */
+ Page pageForQuery(BlockPageQuery query);
+
+ /**
+ * 新增区块
+ *
+ * @param blockCreateRequest 区块
+ * @return 结果
+ */
+ int insertBlock(BlockCreateRequest blockCreateRequest);
+
+ /**
+ * 修改区块
+ *
+ * @param blockEditRequest 区块
+ * @return 结果
+ */
+ int updateBlock(BlockEditRequest blockEditRequest);
+
+ /**
+ * 删除区块信息
+ *
+ * @param id 区块主键
+ * @return 结果
+ */
+ int deleteBlockById(Long id);
+
+ /**
+ * 批量删除区块
+ *
+ * @param ids 需要删除的区块主键集合
+ * @return 结果
+ */
+ int deleteBlockByIds(Collection ids);
+
+}
diff --git a/src/main/java/com/isu/gaswellwatch/service/GasWellService.java b/src/main/java/com/isu/gaswellwatch/service/GasWellService.java
new file mode 100644
index 0000000..0ecc989
--- /dev/null
+++ b/src/main/java/com/isu/gaswellwatch/service/GasWellService.java
@@ -0,0 +1,77 @@
+package com.isu.gaswellwatch.service;
+
+import java.util.List;
+import java.util.Collection;
+
+import com.isu.gaswellwatch.dto.GasWellCreateRequest;
+import com.isu.gaswellwatch.dto.GasWellEditRequest;
+import com.isu.gaswellwatch.vo.GasWellPageQuery;
+import com.isu.gaswellwatch.vo.GasWellVO;
+import com.isu.gaswellwatch.entity.GasWell;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+/**
+ * 气井Service接口
+ *
+ * @author scwsl
+ * @date 2024-11-17
+ */
+public interface GasWellService extends IService {
+ /**
+ * 查询气井
+ *
+ * @param id 气井主键
+ * @return 气井
+ */
+ GasWellVO selectGasWellById(Long id);
+
+ /**
+ * 查询气井列表
+ *
+ * @param gasWell 气井
+ * @return 气井集合
+ */
+ List selectGasWellList(GasWell gasWell);
+
+ /**
+ * 分页查询气井列表
+ *
+ * @param query 查询条件
+ * @return 气井
+ */
+ Page pageForQuery(GasWellPageQuery query);
+
+ /**
+ * 新增气井
+ *
+ * @param gasWellCreateRequest 气井
+ * @return 结果
+ */
+ int insertGasWell(GasWellCreateRequest gasWellCreateRequest);
+
+ /**
+ * 修改气井
+ *
+ * @param gasWellEditRequest 气井
+ * @return 结果
+ */
+ int updateGasWell(GasWellEditRequest gasWellEditRequest);
+
+ /**
+ * 删除气井信息
+ *
+ * @param id 气井主键
+ * @return 结果
+ */
+ int deleteGasWellById(Long id);
+
+ /**
+ * 批量删除气井
+ *
+ * @param ids 需要删除的气井主键集合
+ * @return 结果
+ */
+ int deleteGasWellByIds(Collection ids);
+
+}
diff --git a/src/main/java/com/isu/gaswellwatch/service/impl/BlockServiceImpl.java b/src/main/java/com/isu/gaswellwatch/service/impl/BlockServiceImpl.java
new file mode 100644
index 0000000..803b53f
--- /dev/null
+++ b/src/main/java/com/isu/gaswellwatch/service/impl/BlockServiceImpl.java
@@ -0,0 +1,117 @@
+package com.isu.gaswellwatch.service.impl;
+
+import java.util.Collection;
+import java.util.List;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.isu.gaswellwatch.dto.BlockCreateRequest;
+import com.isu.gaswellwatch.dto.BlockEditRequest;
+import com.isu.gaswellwatch.vo.BlockPageQuery;
+import com.isu.gaswellwatch.vo.BlockVO;
+import com.isu.gaswellwatch.dao.BlockDao;
+import com.isu.gaswellwatch.entity.Block;
+import com.isu.gaswellwatch.service.BlockService;
+import com.isu.gaswellwatch.mapper.BlockMapper;
+import org.mapstruct.factory.Mappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+/**
+ * 区块Service业务层处理
+ *
+ * @author scwsl
+ * @date 2024-11-17
+ */
+@Service
+@RequiredArgsConstructor
+@Transactional(readOnly = true)
+public class BlockServiceImpl extends ServiceImpl implements BlockService {
+
+ private final BlockDao blockDao;
+ private final BlockMapper blockMapper = Mappers.getMapper(BlockMapper.class);
+
+ /**
+ * 查询区块
+ *
+ * @param id 区块主键
+ * @return 区块
+ */
+ @Override
+ public BlockVO selectBlockById(Long id) {
+ return blockMapper.toPageVO(blockDao.selectBlockById(id));
+ }
+
+ /**
+ * 查询区块列表
+ *
+ * @param block 区块
+ * @return 区块
+ */
+ @Override
+ public List selectBlockList(Block block) {
+ return blockMapper.toPageVO(blockDao.selectBlockList(block));
+ }
+
+ /**
+ * 分页查询区块列表
+ *
+ * @param query 查询条件
+ * @return 区块
+ */
+ @Override
+ public Page pageForQuery(BlockPageQuery query){
+ return blockDao.pageForQuery(new Page<>(query.getCurrentPage(), query.getPageSize()), query);
+ }
+
+ /**
+ * 新增区块
+ *
+ * @param blockCreateRequest 区块
+ * @return 结果
+ */
+ @Override
+ @Transactional(rollbackFor = Throwable.class)
+ public int insertBlock(BlockCreateRequest blockCreateRequest) {
+ return blockDao.insertBlock(blockMapper.create(blockCreateRequest));
+ }
+
+ /**
+ * 修改区块
+ *
+ * @param blockEditRequest 区块
+ * @return 结果
+ */
+ @Override
+ @Transactional(rollbackFor = Throwable.class)
+ public int updateBlock(BlockEditRequest blockEditRequest) {
+ Block block = blockDao.selectBlockById(blockEditRequest.getId());
+ blockMapper.copyToEntity(blockEditRequest, block);
+ return blockDao.updateBlock(block);
+ }
+
+ /**
+ * 删除区块信息
+ *
+ * @param id 区块主键
+ * @return 结果
+ */
+ @Override
+ @Transactional(rollbackFor = Throwable.class)
+ public int deleteBlockById(Long id) {
+ return blockDao.deleteBlockById(id);
+ }
+
+ /**
+ * 批量删除删除区块信息
+ *
+ * @param ids 区块主键
+ * @return 数量
+ */
+ @Override
+ @Transactional(rollbackFor = Throwable.class)
+ public int deleteBlockByIds(Collection ids) {
+ return blockDao.deleteBlockByIds(ids);
+ }
+
+}
diff --git a/src/main/java/com/isu/gaswellwatch/service/impl/GasWellServiceImpl.java b/src/main/java/com/isu/gaswellwatch/service/impl/GasWellServiceImpl.java
new file mode 100644
index 0000000..4b75c80
--- /dev/null
+++ b/src/main/java/com/isu/gaswellwatch/service/impl/GasWellServiceImpl.java
@@ -0,0 +1,117 @@
+package com.isu.gaswellwatch.service.impl;
+
+import java.util.Collection;
+import java.util.List;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.isu.gaswellwatch.dto.GasWellCreateRequest;
+import com.isu.gaswellwatch.dto.GasWellEditRequest;
+import com.isu.gaswellwatch.vo.GasWellPageQuery;
+import com.isu.gaswellwatch.vo.GasWellVO;
+import com.isu.gaswellwatch.dao.GasWellDao;
+import com.isu.gaswellwatch.entity.GasWell;
+import com.isu.gaswellwatch.service.GasWellService;
+import com.isu.gaswellwatch.mapper.GasWellMapper;
+import org.mapstruct.factory.Mappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+/**
+ * 气井Service业务层处理
+ *
+ * @author scwsl
+ * @date 2024-11-17
+ */
+@Service
+@RequiredArgsConstructor
+@Transactional(readOnly = true)
+public class GasWellServiceImpl extends ServiceImpl implements GasWellService {
+
+ private final GasWellDao gasWellDao;
+ private final GasWellMapper gasWellMapper = Mappers.getMapper(GasWellMapper.class);
+
+ /**
+ * 查询气井
+ *
+ * @param id 气井主键
+ * @return 气井
+ */
+ @Override
+ public GasWellVO selectGasWellById(Long id) {
+ return gasWellMapper.toPageVO(gasWellDao.selectGasWellById(id));
+ }
+
+ /**
+ * 查询气井列表
+ *
+ * @param gasWell 气井
+ * @return 气井
+ */
+ @Override
+ public List selectGasWellList(GasWell gasWell) {
+ return gasWellMapper.toPageVO(gasWellDao.selectGasWellList(gasWell));
+ }
+
+ /**
+ * 分页查询气井列表
+ *
+ * @param query 查询条件
+ * @return 气井
+ */
+ @Override
+ public Page pageForQuery(GasWellPageQuery query){
+ return gasWellDao.pageForQuery(new Page<>(query.getCurrentPage(), query.getPageSize()), query);
+ }
+
+ /**
+ * 新增气井
+ *
+ * @param gasWellCreateRequest 气井
+ * @return 结果
+ */
+ @Override
+ @Transactional(rollbackFor = Throwable.class)
+ public int insertGasWell(GasWellCreateRequest gasWellCreateRequest) {
+ return gasWellDao.insertGasWell(gasWellMapper.create(gasWellCreateRequest));
+ }
+
+ /**
+ * 修改气井
+ *
+ * @param gasWellEditRequest 气井
+ * @return 结果
+ */
+ @Override
+ @Transactional(rollbackFor = Throwable.class)
+ public int updateGasWell(GasWellEditRequest gasWellEditRequest) {
+ GasWell gasWell = gasWellDao.selectGasWellById(gasWellEditRequest.getId());
+ gasWellMapper.copyToEntity(gasWellEditRequest, gasWell);
+ return gasWellDao.updateGasWell(gasWell);
+ }
+
+ /**
+ * 删除气井信息
+ *
+ * @param id 气井主键
+ * @return 结果
+ */
+ @Override
+ @Transactional(rollbackFor = Throwable.class)
+ public int deleteGasWellById(Long id) {
+ return gasWellDao.deleteGasWellById(id);
+ }
+
+ /**
+ * 批量删除删除气井信息
+ *
+ * @param ids 气井主键
+ * @return 数量
+ */
+ @Override
+ @Transactional(rollbackFor = Throwable.class)
+ public int deleteGasWellByIds(Collection ids) {
+ return gasWellDao.deleteGasWellByIds(ids);
+ }
+
+}
diff --git a/src/main/java/com/isu/gaswellwatch/utils/LocalDateTimeToStringConverter.java b/src/main/java/com/isu/gaswellwatch/utils/LocalDateTimeToStringConverter.java
new file mode 100644
index 0000000..fe39d59
--- /dev/null
+++ b/src/main/java/com/isu/gaswellwatch/utils/LocalDateTimeToStringConverter.java
@@ -0,0 +1,48 @@
+package com.isu.gaswellwatch.utils;
+
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
+import com.fasterxml.jackson.databind.jsontype.TypeSerializer;
+import org.springframework.core.convert.converter.Converter;
+
+import java.io.IOException;
+import java.time.LocalDateTime;
+import java.util.Objects;
+
+/**
+ * @author 王仕龙
+ * 2024/1/26 16:02
+ */
+public class LocalDateTimeToStringConverter extends JsonSerializer implements Converter {
+
+ public static final LocalDateTimeToStringConverter INSTANCE = new LocalDateTimeToStringConverter();
+
+ @Override
+ public void serialize(LocalDateTime value, JsonGenerator jsonGenerator, SerializerProvider serializers) throws IOException {
+ if (Objects.isNull(value)) {
+ jsonGenerator.writeNull();
+ } else {
+ jsonGenerator.writeString(convert(value));
+ }
+ }
+
+ @Override
+ public void serializeWithType(LocalDateTime value, JsonGenerator gen, SerializerProvider serializers, TypeSerializer typeSer) throws IOException {
+ serialize(value, gen, serializers);
+ }
+
+ @Override
+ public String convert(LocalDateTime source) {
+ if (Objects.isNull(source)) {
+ return null;
+ }
+ return StringToLocalDateTimeConverter.ZH_CN_LOCAL_DATE_TIME.format(source);
+ }
+
+ @Override
+ public Class handledType() {
+ return LocalDateTime.class;
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/isu/gaswellwatch/utils/LocalDateTimeTypeHandler.java b/src/main/java/com/isu/gaswellwatch/utils/LocalDateTimeTypeHandler.java
new file mode 100644
index 0000000..8e712e8
--- /dev/null
+++ b/src/main/java/com/isu/gaswellwatch/utils/LocalDateTimeTypeHandler.java
@@ -0,0 +1,42 @@
+package com.isu.gaswellwatch.utils;
+
+import org.apache.ibatis.type.BaseTypeHandler;
+import org.apache.ibatis.type.JdbcType;
+import org.apache.ibatis.type.MappedJdbcTypes;
+import org.apache.ibatis.type.MappedTypes;
+
+import java.sql.CallableStatement;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.time.LocalDateTime;
+
+/**
+ * @author 王仕龙
+ * 2024/2/1 14:39
+ */
+@MappedTypes(LocalDateTime.class)
+@MappedJdbcTypes({JdbcType.DATE, JdbcType.TIMESTAMP})
+public class LocalDateTimeTypeHandler extends BaseTypeHandler {
+
+ @Override
+ public void setNonNullParameter(PreparedStatement ps, int i, LocalDateTime localDateTime, JdbcType jdbcType) throws SQLException {
+ ps.setObject(i, localDateTime);
+ }
+
+ @Override
+ public LocalDateTime getNullableResult(ResultSet rs, String columnName) throws SQLException {
+ return rs.getObject(columnName, LocalDateTime.class);
+ }
+
+ @Override
+ public LocalDateTime getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
+ return rs.getObject(columnIndex, LocalDateTime.class);
+ }
+
+ @Override
+ public LocalDateTime getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
+ return cs.getObject(columnIndex, LocalDateTime.class);
+ }
+
+}
diff --git a/src/main/java/com/isu/gaswellwatch/utils/StringToLocalDateTimeConverter.java b/src/main/java/com/isu/gaswellwatch/utils/StringToLocalDateTimeConverter.java
new file mode 100644
index 0000000..b4a414f
--- /dev/null
+++ b/src/main/java/com/isu/gaswellwatch/utils/StringToLocalDateTimeConverter.java
@@ -0,0 +1,51 @@
+package com.isu.gaswellwatch.utils;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.JsonDeserializer;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.core.convert.converter.Converter;
+import org.springframework.stereotype.Component;
+
+import java.io.IOException;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+
+/**
+ * @author 王仕龙
+ * 2024/1/26 16:04
+ */
+public class StringToLocalDateTimeConverter extends JsonDeserializer implements Converter {
+
+ public static final StringToLocalDateTimeConverter INSTANCE = new StringToLocalDateTimeConverter();
+ public static final DateTimeFormatter ZH_CN_LOCAL_DATE_TIME = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+
+ @Override
+ public LocalDateTime deserialize(JsonParser jsonParser, DeserializationContext context) throws IOException {
+ return convert(jsonParser.getText());
+ }
+
+ @Override
+ public LocalDateTime convert(String source) {
+ if (StringUtils.isBlank(source)) {
+ return null;
+ }
+ LocalDateTime localDateTime = null;
+ if (source.length() == 10) {
+ localDateTime = LocalDate.parse(source).atStartOfDay();
+ } else {
+ if (source.contains("T")) {
+ localDateTime = LocalDateTime.parse(source, DateTimeFormatter.ISO_LOCAL_DATE_TIME);
+ } else {
+ localDateTime = LocalDateTime.parse(source, ZH_CN_LOCAL_DATE_TIME);
+ }
+ }
+ return localDateTime;
+ }
+
+ @Override
+ public Class handledType() {
+ return LocalDateTime.class;
+ }
+}
diff --git a/src/main/java/com/isu/gaswellwatch/vo/BlockPageQuery.java b/src/main/java/com/isu/gaswellwatch/vo/BlockPageQuery.java
new file mode 100644
index 0000000..b25a24e
--- /dev/null
+++ b/src/main/java/com/isu/gaswellwatch/vo/BlockPageQuery.java
@@ -0,0 +1,36 @@
+package com.isu.gaswellwatch.vo;
+
+import lombok.EqualsAndHashCode;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.SuperBuilder;
+
+import java.io.Serial;
+
+/**
+ * 区块对象 blocks
+ *
+ * @author scwsl
+ * @date 2024-11-17
+ */
+@Getter
+@Setter
+@SuperBuilder
+@NoArgsConstructor
+public class BlockPageQuery extends PageQuery {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /** 上级标识 */
+ private Long parentId;
+
+ /** 名称 */
+ private String name;
+
+ /** 是否已删除 */
+ private Integer deleted;
+
+}
diff --git a/src/main/java/com/isu/gaswellwatch/vo/BlockVO.java b/src/main/java/com/isu/gaswellwatch/vo/BlockVO.java
new file mode 100644
index 0000000..819061d
--- /dev/null
+++ b/src/main/java/com/isu/gaswellwatch/vo/BlockVO.java
@@ -0,0 +1,58 @@
+package com.isu.gaswellwatch.vo;
+
+import lombok.EqualsAndHashCode;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.SuperBuilder;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 区块页面返回对象 blocks
+ *
+ * @author scwsl
+ * @date 2024-11-17
+ */
+@Getter
+@Setter
+@SuperBuilder
+@NoArgsConstructor
+@EqualsAndHashCode
+@ToString(callSuper = true)
+public class BlockVO implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /** 主键 */
+ private Long id;
+
+ /** 上级标识 */
+ private Long parentId;
+
+ /** 名称 */
+ private String name;
+
+ /** 描述 */
+ private String details;
+
+ /** 是否已删除 */
+ private Integer deleted;
+
+ /** 创建人 */
+ private Long createBy;
+
+ /** 创建时间 */
+ private LocalDateTime createTime;
+
+ /** 更新人 */
+ private Long updateBy;
+
+ /** 更新时间 */
+ private LocalDateTime updateTime;
+
+}
diff --git a/src/main/java/com/isu/gaswellwatch/vo/GasWellPageQuery.java b/src/main/java/com/isu/gaswellwatch/vo/GasWellPageQuery.java
new file mode 100644
index 0000000..7af9e19
--- /dev/null
+++ b/src/main/java/com/isu/gaswellwatch/vo/GasWellPageQuery.java
@@ -0,0 +1,33 @@
+package com.isu.gaswellwatch.vo;
+
+import lombok.EqualsAndHashCode;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.SuperBuilder;
+
+import java.io.Serial;
+
+/**
+ * 气井对象 gas_wells
+ *
+ * @author scwsl
+ * @date 2024-11-17
+ */
+@Getter
+@Setter
+@SuperBuilder
+@NoArgsConstructor
+public class GasWellPageQuery extends PageQuery {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /** 关联公司 */
+ private Long companyId;
+
+ /** 气井名称 */
+ private String name;
+
+}
diff --git a/src/main/java/com/isu/gaswellwatch/vo/GasWellVO.java b/src/main/java/com/isu/gaswellwatch/vo/GasWellVO.java
new file mode 100644
index 0000000..05e061f
--- /dev/null
+++ b/src/main/java/com/isu/gaswellwatch/vo/GasWellVO.java
@@ -0,0 +1,55 @@
+package com.isu.gaswellwatch.vo;
+
+import lombok.EqualsAndHashCode;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.SuperBuilder;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 气井页面返回对象 gas_wells
+ *
+ * @author scwsl
+ * @date 2024-11-17
+ */
+@Getter
+@Setter
+@SuperBuilder
+@NoArgsConstructor
+@EqualsAndHashCode
+@ToString(callSuper = true)
+public class GasWellVO implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /** 主键 */
+ private Long id;
+
+ /** 关联公司 */
+ private Long companyId;
+
+ /** 气井名称 */
+ private String name;
+
+ /** 描述 */
+ private String details;
+
+ /** 创建人 */
+ private Long createBy;
+
+ /** 创建时间 */
+ private LocalDateTime createTime;
+
+ /** 更新人 */
+ private Long updateBy;
+
+ /** 更新时间 */
+ private LocalDateTime updateTime;
+
+}
diff --git a/src/main/java/com/isu/gaswellwatch/vo/PageQuery.java b/src/main/java/com/isu/gaswellwatch/vo/PageQuery.java
new file mode 100644
index 0000000..dfc938a
--- /dev/null
+++ b/src/main/java/com/isu/gaswellwatch/vo/PageQuery.java
@@ -0,0 +1,21 @@
+package com.isu.gaswellwatch.vo;
+
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import lombok.experimental.SuperBuilder;
+
+import java.io.Serializable;
+
+/**
+ * @author 王仕龙
+ * 2024/11/15 21:07
+ */
+@Getter
+@Setter
+@SuperBuilder
+@NoArgsConstructor
+public class PageQuery implements Serializable {
+ private Integer currentPage;
+ private Integer pageSize;
+}
diff --git a/src/main/resources/application-dev.yaml b/src/main/resources/application-dev.yaml
index 9bf8405..46a7cdb 100644
--- a/src/main/resources/application-dev.yaml
+++ b/src/main/resources/application-dev.yaml
@@ -3,5 +3,5 @@ spring:
type: com.alibaba.druid.pool.DruidDataSource
url: jdbc:mysql://127.0.0.1:3306/gaswellwatch?characterEncoding=UTF-8&useUnicode=true&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
username: root
- password: QINjie5111.com
+ password: 1qaz@WSX
driver-class-name: com.mysql.cj.jdbc.Driver
\ No newline at end of file
diff --git a/src/main/resources/mapper/BlockMapper.xml b/src/main/resources/mapper/BlockMapper.xml
new file mode 100644
index 0000000..f999a7a
--- /dev/null
+++ b/src/main/resources/mapper/BlockMapper.xml
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select t1.id, t1.parent_id, t1.name, t1.details, t1.deleted, t1.create_by, t1.create_time, t1.update_by, t1.update_time from blocks t1
+
+
+
+
+
+
+
+
+
+ insert into blocks
+
+ parent_id,
+ name,
+ details,
+ deleted,
+ create_by,
+ create_time,
+ update_by,
+ update_time,
+
+
+ #{parentId},
+ #{name},
+ #{details},
+ #{deleted},
+ #{createBy},
+ #{createTime},
+ #{updateBy},
+ #{updateTime},
+
+
+
+
+ update blocks
+
+ parent_id = #{parentId},
+ name = #{name},
+ details = #{details},
+ deleted = #{deleted},
+ create_by = #{createBy},
+ create_time = #{createTime},
+ update_by = #{updateBy},
+ update_time = #{updateTime},
+
+ where id = #{id}
+
+
+
+ delete from blocks where id = #{id}
+
+
+
+ delete from blocks where id in
+
+ #{id}
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/mapper/GasWellMapper.xml b/src/main/resources/mapper/GasWellMapper.xml
new file mode 100644
index 0000000..c50de8a
--- /dev/null
+++ b/src/main/resources/mapper/GasWellMapper.xml
@@ -0,0 +1,101 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select t1.id, t1.company_id, t1.name, t1.details, t1.create_by, t1.create_time, t1.update_by, t1.update_time from gas_wells t1
+
+
+
+
+
+
+
+
+
+ insert into gas_wells
+
+ company_id,
+ name,
+ details,
+ create_by,
+ create_time,
+ update_by,
+ update_time,
+
+
+ #{companyId},
+ #{name},
+ #{details},
+ #{createBy},
+ #{createTime},
+ #{updateBy},
+ #{updateTime},
+
+
+
+
+ update gas_wells
+
+ company_id = #{companyId},
+ name = #{name},
+ details = #{details},
+ create_by = #{createBy},
+ create_time = #{createTime},
+ update_by = #{updateBy},
+ update_time = #{updateTime},
+
+ where id = #{id}
+
+
+
+ delete from gas_wells where id = #{id}
+
+
+
+ delete from gas_wells where id in
+
+ #{id}
+
+
+
\ No newline at end of file