Procházet zdrojové kódy

pms 数字油藏代码初始化

zhangcl před 2 týdny
rodič
revize
a7d7e21171
18 změnil soubory, kde provedl 1496 přidání a 0 odebrání
  1. 6 0
      yudao-module-pms/yudao-module-pms-api/src/main/java/cn/iocoder/yudao/module/pms/enums/ErrorCodeConstant.java
  2. 93 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/laswell/LasWellController.java
  3. 83 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/laswell/vo/LasWellPageReqVO.java
  4. 100 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/laswell/vo/LasWellRespVO.java
  5. 73 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/laswell/vo/LasWellSaveReqVO.java
  6. 102 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/laswelldata/LasWellDataController.java
  7. 85 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/laswelldata/vo/LasWellDataPageReqVO.java
  8. 104 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/laswelldata/vo/LasWellDataRespVO.java
  9. 75 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/laswelldata/vo/LasWellDataSaveReqVO.java
  10. 92 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/laswelldata/vo/LasWellDataSetRespVO.java
  11. 109 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/dataobject/laswell/LasWellDO.java
  12. 112 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/dataobject/laswelldata/LasWellDataDO.java
  13. 43 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/laswell/LasWellMapper.java
  14. 44 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/laswelldata/LasWellDataMapper.java
  15. 55 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/laswell/LasWellService.java
  16. 71 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/laswell/LasWellServiceImpl.java
  17. 62 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/laswelldata/LasWellDataService.java
  18. 187 0
      yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/laswelldata/LasWellDataServiceImpl.java

+ 6 - 0
yudao-module-pms/yudao-module-pms-api/src/main/java/cn/iocoder/yudao/module/pms/enums/ErrorCodeConstant.java

@@ -118,4 +118,10 @@ public interface ErrorCodeConstant{
     ErrorCode IOT_RY_HI_DAILY_REPORT_NOT_EXISTS = new ErrorCode(400, "瑞鹰历史日报不存在");
     ErrorCode IOT_RY_IMPROVE_DAILY_REPORT_DETAIL_NOT_EXISTS = new ErrorCode(500, "瑞鹰设备整改日报明细(生产动态拆分)不存在");
     ErrorCode IOT_FIVE_DAILY_REPORT_NOT_EXISTS = new ErrorCode(600, "5#国日报不存在");
+
+    /***
+     * 数字油藏
+     */
+    ErrorCode LAS_WELL_NOT_EXISTS = new ErrorCode(1000, "数字油藏LAS数据文件-井信息不存在");
+    ErrorCode LAS_WELL_DATA_NOT_EXISTS = new ErrorCode(1001, "数字油藏LAS数据文件-测井数据不存在");
 }

+ 93 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/laswell/LasWellController.java

@@ -0,0 +1,93 @@
+package cn.iocoder.yudao.module.pms.controller.admin.laswell;
+
+import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
+import cn.iocoder.yudao.framework.common.pojo.CommonResult;
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
+import cn.iocoder.yudao.module.pms.controller.admin.laswell.vo.LasWellPageReqVO;
+import cn.iocoder.yudao.module.pms.controller.admin.laswell.vo.LasWellRespVO;
+import cn.iocoder.yudao.module.pms.controller.admin.laswell.vo.LasWellSaveReqVO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.laswell.LasWellDO;
+import cn.iocoder.yudao.module.pms.service.laswell.LasWellService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+import java.io.IOException;
+import java.util.List;
+
+import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
+import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
+
+@Tag(name = "管理后台 - 数字油藏LAS数据文件-井信息")
+@RestController
+@RequestMapping("/pms/las-well")
+@Validated
+public class LasWellController {
+
+    @Resource
+    private LasWellService lasWellService;
+
+    @PostMapping("/create")
+    @Operation(summary = "创建数字油藏LAS数据文件-井信息")
+    @PreAuthorize("@ss.hasPermission('pms:las-well:create')")
+    public CommonResult<Long> createLasWell(@Valid @RequestBody LasWellSaveReqVO createReqVO) {
+        return success(lasWellService.createLasWell(createReqVO));
+    }
+
+    @PutMapping("/update")
+    @Operation(summary = "更新数字油藏LAS数据文件-井信息")
+    @PreAuthorize("@ss.hasPermission('pms:las-well:update')")
+    public CommonResult<Boolean> updateLasWell(@Valid @RequestBody LasWellSaveReqVO updateReqVO) {
+        lasWellService.updateLasWell(updateReqVO);
+        return success(true);
+    }
+
+    @DeleteMapping("/delete")
+    @Operation(summary = "删除数字油藏LAS数据文件-井信息")
+    @Parameter(name = "id", description = "编号", required = true)
+    @PreAuthorize("@ss.hasPermission('pms:las-well:delete')")
+    public CommonResult<Boolean> deleteLasWell(@RequestParam("id") Long id) {
+        lasWellService.deleteLasWell(id);
+        return success(true);
+    }
+
+    @GetMapping("/get")
+    @Operation(summary = "获得数字油藏LAS数据文件-井信息")
+    @Parameter(name = "id", description = "编号", required = true, example = "1024")
+    @PreAuthorize("@ss.hasPermission('pms:las-well:query')")
+    public CommonResult<LasWellRespVO> getLasWell(@RequestParam("id") Long id) {
+        LasWellDO lasWell = lasWellService.getLasWell(id);
+        return success(BeanUtils.toBean(lasWell, LasWellRespVO.class));
+    }
+
+    @GetMapping("/page")
+    @Operation(summary = "获得数字油藏LAS数据文件-井信息分页")
+    @PreAuthorize("@ss.hasPermission('pms:las-well:query')")
+    public CommonResult<PageResult<LasWellRespVO>> getLasWellPage(@Valid LasWellPageReqVO pageReqVO) {
+        PageResult<LasWellDO> pageResult = lasWellService.getLasWellPage(pageReqVO);
+        return success(BeanUtils.toBean(pageResult, LasWellRespVO.class));
+    }
+
+    @GetMapping("/export-excel")
+    @Operation(summary = "导出数字油藏LAS数据文件-井信息 Excel")
+    @PreAuthorize("@ss.hasPermission('pms:las-well:export')")
+    @ApiAccessLog(operateType = EXPORT)
+    public void exportLasWellExcel(@Valid LasWellPageReqVO pageReqVO,
+              HttpServletResponse response) throws IOException {
+        pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+        List<LasWellDO> list = lasWellService.getLasWellPage(pageReqVO).getList();
+        // 导出 Excel
+        ExcelUtils.write(response, "数字油藏LAS数据文件-井信息.xls", "数据", LasWellRespVO.class,
+                        BeanUtils.toBean(list, LasWellRespVO.class));
+    }
+
+}

+ 83 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/laswell/vo/LasWellPageReqVO.java

@@ -0,0 +1,83 @@
+package cn.iocoder.yudao.module.pms.controller.admin.laswell.vo;
+
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "管理后台 - 数字油藏LAS数据文件-井信息分页 Request VO")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class LasWellPageReqVO extends PageParam {
+
+    @Schema(description = "部门id", example = "18875")
+    private Long deptId;
+
+    @Schema(description = "起始深度:测井数据记录的起始深度,单位为米(M)")
+    private BigDecimal strt;
+
+    @Schema(description = "终止深度:测井数据记录的结束深度。")
+    private BigDecimal stop;
+
+    @Schema(description = "采样步长:数据点之间的深度间隔,这里是0.1米,即每10厘米记录一个数据点。")
+    private BigDecimal step;
+
+    @Schema(description = "进行测井作业的公司名称")
+    private String comp;
+
+    @Schema(description = "该数据所属的油井名称")
+    private String well;
+
+    @Schema(description = "该井所属的油田名称")
+    private String fld;
+
+    @Schema(description = "井的详细位置描述")
+    private String loc;
+
+    @Schema(description = "井所在的行政区域(县)")
+    private String cnty;
+
+    @Schema(description = "井所在的行政区域(州/省)")
+    private String stat;
+
+    @Schema(description = "井所在的国家")
+    private String ctry;
+
+    @Schema(description = "进行测井作业的日期")
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    private LocalDateTime[] workDate;
+
+    @Schema(description = "用于在全球范围内唯一标识这口井的编码")
+    private String uwi;
+
+    @Schema(description = "井口在地图上的X坐标(投影坐标)")
+    private BigDecimal xcoord;
+
+    @Schema(description = "井口在地图上的Y坐标(投影坐标)")
+    private BigDecimal ycoord;
+
+    @Schema(description = "井口的地理经度(WGS84坐标系)")
+    private BigDecimal lon;
+
+    @Schema(description = "井口的地理纬度(WGS84坐标系)")
+    private BigDecimal lat;
+
+    @Schema(description = "井口(或补心海拔KB)的海拔高度,单位为米")
+    private BigDecimal elev;
+
+    @Schema(description = "海拔类型:KB 表示这是补心海拔(Kelly Bushing),即钻井平台转盘面的海拔", example = "1")
+    private String elevType;
+
+    @Schema(description = "创建时间")
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    private LocalDateTime[] createTime;
+
+}

+ 100 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/laswell/vo/LasWellRespVO.java

@@ -0,0 +1,100 @@
+package cn.iocoder.yudao.module.pms.controller.admin.laswell.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+@Schema(description = "管理后台 - 数字油藏LAS数据文件-井信息 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class LasWellRespVO {
+
+    @Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "4203")
+    @ExcelProperty("主键id")
+    private Long id;
+
+    @Schema(description = "部门id", example = "18875")
+    @ExcelProperty("部门id")
+    private Long deptId;
+
+    @Schema(description = "起始深度:测井数据记录的起始深度,单位为米(M)")
+    @ExcelProperty("起始深度:测井数据记录的起始深度,单位为米(M)")
+    private BigDecimal strt;
+
+    @Schema(description = "终止深度:测井数据记录的结束深度。")
+    @ExcelProperty("终止深度:测井数据记录的结束深度。")
+    private BigDecimal stop;
+
+    @Schema(description = "采样步长:数据点之间的深度间隔,这里是0.1米,即每10厘米记录一个数据点。")
+    @ExcelProperty("采样步长:数据点之间的深度间隔,这里是0.1米,即每10厘米记录一个数据点。")
+    private BigDecimal step;
+
+    @Schema(description = "进行测井作业的公司名称")
+    @ExcelProperty("进行测井作业的公司名称")
+    private String comp;
+
+    @Schema(description = "该数据所属的油井名称")
+    @ExcelProperty("该数据所属的油井名称")
+    private String well;
+
+    @Schema(description = "该井所属的油田名称")
+    @ExcelProperty("该井所属的油田名称")
+    private String fld;
+
+    @Schema(description = "井的详细位置描述")
+    @ExcelProperty("井的详细位置描述")
+    private String loc;
+
+    @Schema(description = "井所在的行政区域(县)")
+    @ExcelProperty("井所在的行政区域(县)")
+    private String cnty;
+
+    @Schema(description = "井所在的行政区域(州/省)")
+    @ExcelProperty("井所在的行政区域(州/省)")
+    private String stat;
+
+    @Schema(description = "井所在的国家")
+    @ExcelProperty("井所在的国家")
+    private String ctry;
+
+    @Schema(description = "进行测井作业的日期")
+    @ExcelProperty("进行测井作业的日期")
+    private LocalDateTime workDate;
+
+    @Schema(description = "用于在全球范围内唯一标识这口井的编码")
+    @ExcelProperty("用于在全球范围内唯一标识这口井的编码")
+    private String uwi;
+
+    @Schema(description = "井口在地图上的X坐标(投影坐标)")
+    @ExcelProperty("井口在地图上的X坐标(投影坐标)")
+    private BigDecimal xcoord;
+
+    @Schema(description = "井口在地图上的Y坐标(投影坐标)")
+    @ExcelProperty("井口在地图上的Y坐标(投影坐标)")
+    private BigDecimal ycoord;
+
+    @Schema(description = "井口的地理经度(WGS84坐标系)")
+    @ExcelProperty("井口的地理经度(WGS84坐标系)")
+    private BigDecimal lon;
+
+    @Schema(description = "井口的地理纬度(WGS84坐标系)")
+    @ExcelProperty("井口的地理纬度(WGS84坐标系)")
+    private BigDecimal lat;
+
+    @Schema(description = "井口(或补心海拔KB)的海拔高度,单位为米")
+    @ExcelProperty("井口(或补心海拔KB)的海拔高度,单位为米")
+    private BigDecimal elev;
+
+    @Schema(description = "海拔类型:KB 表示这是补心海拔(Kelly Bushing),即钻井平台转盘面的海拔", example = "1")
+    @ExcelProperty("海拔类型:KB 表示这是补心海拔(Kelly Bushing),即钻井平台转盘面的海拔")
+    private String elevType;
+
+    @Schema(description = "创建时间")
+    @ExcelProperty("创建时间")
+    private LocalDateTime createTime;
+
+}

+ 73 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/laswell/vo/LasWellSaveReqVO.java

@@ -0,0 +1,73 @@
+package cn.iocoder.yudao.module.pms.controller.admin.laswell.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+@Schema(description = "管理后台 - 数字油藏LAS数据文件-井信息新增/修改 Request VO")
+@Data
+public class LasWellSaveReqVO {
+
+    @Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "4203")
+    private Long id;
+
+    @Schema(description = "部门id", example = "18875")
+    private Long deptId;
+
+    @Schema(description = "起始深度:测井数据记录的起始深度,单位为米(M)")
+    private BigDecimal strt;
+
+    @Schema(description = "终止深度:测井数据记录的结束深度。")
+    private BigDecimal stop;
+
+    @Schema(description = "采样步长:数据点之间的深度间隔,这里是0.1米,即每10厘米记录一个数据点。")
+    private BigDecimal step;
+
+    @Schema(description = "进行测井作业的公司名称")
+    private String comp;
+
+    @Schema(description = "该数据所属的油井名称")
+    private String well;
+
+    @Schema(description = "该井所属的油田名称")
+    private String fld;
+
+    @Schema(description = "井的详细位置描述")
+    private String loc;
+
+    @Schema(description = "井所在的行政区域(县)")
+    private String cnty;
+
+    @Schema(description = "井所在的行政区域(州/省)")
+    private String stat;
+
+    @Schema(description = "井所在的国家")
+    private String ctry;
+
+    @Schema(description = "进行测井作业的日期")
+    private LocalDateTime workDate;
+
+    @Schema(description = "用于在全球范围内唯一标识这口井的编码")
+    private String uwi;
+
+    @Schema(description = "井口在地图上的X坐标(投影坐标)")
+    private BigDecimal xcoord;
+
+    @Schema(description = "井口在地图上的Y坐标(投影坐标)")
+    private BigDecimal ycoord;
+
+    @Schema(description = "井口的地理经度(WGS84坐标系)")
+    private BigDecimal lon;
+
+    @Schema(description = "井口的地理纬度(WGS84坐标系)")
+    private BigDecimal lat;
+
+    @Schema(description = "井口(或补心海拔KB)的海拔高度,单位为米")
+    private BigDecimal elev;
+
+    @Schema(description = "海拔类型:KB 表示这是补心海拔(Kelly Bushing),即钻井平台转盘面的海拔", example = "1")
+    private String elevType;
+
+}

+ 102 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/laswelldata/LasWellDataController.java

@@ -0,0 +1,102 @@
+package cn.iocoder.yudao.module.pms.controller.admin.laswelldata;
+
+import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
+import cn.iocoder.yudao.framework.common.pojo.CommonResult;
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
+import cn.iocoder.yudao.module.pms.controller.admin.laswelldata.vo.LasWellDataPageReqVO;
+import cn.iocoder.yudao.module.pms.controller.admin.laswelldata.vo.LasWellDataRespVO;
+import cn.iocoder.yudao.module.pms.controller.admin.laswelldata.vo.LasWellDataSaveReqVO;
+import cn.iocoder.yudao.module.pms.controller.admin.laswelldata.vo.LasWellDataSetRespVO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.laswelldata.LasWellDataDO;
+import cn.iocoder.yudao.module.pms.service.laswelldata.LasWellDataService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+import java.io.IOException;
+import java.util.List;
+
+import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
+import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
+
+@Tag(name = "管理后台 - 数字油藏LAS数据文件-测井数据")
+@RestController
+@RequestMapping("/pms/las-well-data")
+@Validated
+public class LasWellDataController {
+
+    @Resource
+    private LasWellDataService lasWellDataService;
+
+    @PostMapping("/create")
+    @Operation(summary = "创建数字油藏LAS数据文件-测井数据")
+    @PreAuthorize("@ss.hasPermission('pms:las-well-data:create')")
+    public CommonResult<Long> createLasWellData(@Valid @RequestBody LasWellDataSaveReqVO createReqVO) {
+        return success(lasWellDataService.createLasWellData(createReqVO));
+    }
+
+    @PutMapping("/update")
+    @Operation(summary = "更新数字油藏LAS数据文件-测井数据")
+    @PreAuthorize("@ss.hasPermission('pms:las-well-data:update')")
+    public CommonResult<Boolean> updateLasWellData(@Valid @RequestBody LasWellDataSaveReqVO updateReqVO) {
+        lasWellDataService.updateLasWellData(updateReqVO);
+        return success(true);
+    }
+
+    @DeleteMapping("/delete")
+    @Operation(summary = "删除数字油藏LAS数据文件-测井数据")
+    @Parameter(name = "id", description = "编号", required = true)
+    @PreAuthorize("@ss.hasPermission('pms:las-well-data:delete')")
+    public CommonResult<Boolean> deleteLasWellData(@RequestParam("id") Long id) {
+        lasWellDataService.deleteLasWellData(id);
+        return success(true);
+    }
+
+    @GetMapping("/get")
+    @Operation(summary = "获得数字油藏LAS数据文件-测井数据")
+    @Parameter(name = "id", description = "编号", required = true, example = "1024")
+    @PreAuthorize("@ss.hasPermission('pms:las-well-data:query')")
+    public CommonResult<LasWellDataRespVO> getLasWellData(@RequestParam("id") Long id) {
+        LasWellDataDO lasWellData = lasWellDataService.getLasWellData(id);
+        return success(BeanUtils.toBean(lasWellData, LasWellDataRespVO.class));
+    }
+
+    @GetMapping("/page")
+    @Operation(summary = "获得数字油藏LAS数据文件-测井数据分页")
+    @PreAuthorize("@ss.hasPermission('pms:las-well-data:query')")
+    public CommonResult<PageResult<LasWellDataRespVO>> getLasWellDataPage(@Valid LasWellDataPageReqVO pageReqVO) {
+        PageResult<LasWellDataDO> pageResult = lasWellDataService.getLasWellDataPage(pageReqVO);
+        return success(BeanUtils.toBean(pageResult, LasWellDataRespVO.class));
+    }
+
+    @GetMapping("/wellLogDataset")
+    @Operation(summary = "获得数字油藏LAS数据文件-各项测井数据集合")
+    @PreAuthorize("@ss.hasPermission('pms:las-well-data:query')")
+    public CommonResult<LasWellDataSetRespVO> wellLogDataset(@Valid LasWellDataPageReqVO pageReqVO) {
+        LasWellDataSetRespVO dataSet = lasWellDataService.wellLogDataset(pageReqVO);
+        return success(dataSet);
+    }
+
+    @GetMapping("/export-excel")
+    @Operation(summary = "导出数字油藏LAS数据文件-测井数据 Excel")
+    @PreAuthorize("@ss.hasPermission('pms:las-well-data:export')")
+    @ApiAccessLog(operateType = EXPORT)
+    public void exportLasWellDataExcel(@Valid LasWellDataPageReqVO pageReqVO,
+              HttpServletResponse response) throws IOException {
+        pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+        List<LasWellDataDO> list = lasWellDataService.getLasWellDataPage(pageReqVO).getList();
+        // 导出 Excel
+        ExcelUtils.write(response, "数字油藏LAS数据文件-测井数据.xls", "数据", LasWellDataRespVO.class,
+                        BeanUtils.toBean(list, LasWellDataRespVO.class));
+    }
+
+}

+ 85 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/laswelldata/vo/LasWellDataPageReqVO.java

@@ -0,0 +1,85 @@
+package cn.iocoder.yudao.module.pms.controller.admin.laswelldata.vo;
+
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "管理后台 - 数字油藏LAS数据文件-测井数据分页 Request VO")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class LasWellDataPageReqVO extends PageParam {
+
+    @Schema(description = "部门id", example = "14875")
+    private Long deptId;
+
+    @Schema(description = "井id", example = "13819")
+    private Long wellId;
+
+    @Schema(description = "M测量深度:这是每条记录的索引,表示数据点在地下的垂直深度")
+    private BigDecimal depth;
+
+    @Schema(description = "mm井径:测量井眼直径的大小,单位毫米。用于判断井眼是否坍塌或扩大")
+    private BigDecimal cali;
+
+    @Schema(description = "计算伽马:通常是由能谱测井计算出的无铀伽马(或与总伽马GR相关),用于更准确地评估粘土含量")
+    private BigDecimal cgr;
+
+    @Schema(description = "深感应电阻率:一种测量地层电阻率的曲线,探测深度较大,反映原状地层的电阻率")
+    private BigDecimal cild;
+
+    @Schema(description = "us/m声波时差:声波在地层中传播1米所需的时间,单位微秒/米。是计算地层孔隙度的关键曲线")
+    private BigDecimal dt;
+
+    @Schema(description = "API自然伽马:测量地层中天然放射性元素(如铀、钍、钾)的含量,单位API。是划分岩性(如泥岩、砂岩)最基础的曲线。")
+    private BigDecimal gr;
+
+    @Schema(description = "侵入带电阻率:测量钻井液滤液侵入地层的电阻率,单位欧姆·米")
+    private BigDecimal minv;
+
+    @Schema(description = "微电阻率(或正态化):通常指一种浅探测电阻率,用于识别薄层或估算冲洗带电阻率")
+    private BigDecimal mnor;
+
+    @Schema(description = "mD渗透率:表示岩石允许流体通过的能力,单位毫达西。这是衡量储层产能的核心参数之一")
+    private BigDecimal perm;
+
+    @Schema(description = "有效孔隙度:指岩石中相互连通的孔隙体积占岩石总体积的百分比,是计算储量的关键参数")
+    private BigDecimal pora;
+
+    @Schema(description = "总孔隙度:指岩石中所有孔隙(包括连通的与孤立的)体积占总岩石体积的百分比")
+    private BigDecimal pord;
+
+    @Schema(description = "中子孔隙度:由中子测井测量得到的孔隙度,对岩性和流体敏感,常与密度孔隙度(PORD)结合使用")
+    private BigDecimal porn;
+
+    @Schema(description = "ohm.m浅电阻率:一种探测深度很浅的电阻率曲线,通常用于校正侵入影响或识别泥饼")
+    private BigDecimal r25;
+
+    @Schema(description = "g/cm3体积密度:岩石的总体密度,单位克/立方厘米。是计算孔隙度和识别岩性的重要曲线")
+    private BigDecimal rhob;
+
+    @Schema(description = "ohm.m冲洗带电阻率:测量井壁附近被钻井液滤液完全冲洗地带的电阻率")
+    private BigDecimal rxo;
+
+    @Schema(description = "mV自然电位:测量井内自然电场产生的电位差,单位毫伏。主要用于划分渗透层(如砂岩)和估算地层水电阻率")
+    private BigDecimal sp;
+
+    @Schema(description = "v/v_decimal含水饱和度:表示孔隙空间中被水占据的比例,是评价含油性的最核心参数")
+    private BigDecimal sw;
+
+    @Schema(description = "冲洗带含水饱和度:表示冲洗带(靠近井壁)中含水饱和度,用于估算可动流体体积")
+    private BigDecimal sxo;
+
+    @Schema(description = "创建时间")
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    private LocalDateTime[] createTime;
+
+}

+ 104 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/laswelldata/vo/LasWellDataRespVO.java

@@ -0,0 +1,104 @@
+package cn.iocoder.yudao.module.pms.controller.admin.laswelldata.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+@Schema(description = "管理后台 - 数字油藏LAS数据文件-测井数据 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class LasWellDataRespVO {
+
+    @Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "2656")
+    @ExcelProperty("主键id")
+    private Long id;
+
+    @Schema(description = "部门id", example = "14875")
+    @ExcelProperty("部门id")
+    private Long deptId;
+
+    @Schema(description = "井id", example = "13819")
+    @ExcelProperty("井id")
+    private Long wellId;
+
+    @Schema(description = "M测量深度:这是每条记录的索引,表示数据点在地下的垂直深度")
+    @ExcelProperty("M测量深度:这是每条记录的索引,表示数据点在地下的垂直深度")
+    private BigDecimal depth;
+
+    @Schema(description = "mm井径:测量井眼直径的大小,单位毫米。用于判断井眼是否坍塌或扩大")
+    @ExcelProperty("mm井径:测量井眼直径的大小,单位毫米。用于判断井眼是否坍塌或扩大")
+    private BigDecimal cali;
+
+    @Schema(description = "计算伽马:通常是由能谱测井计算出的无铀伽马(或与总伽马GR相关),用于更准确地评估粘土含量")
+    @ExcelProperty("计算伽马:通常是由能谱测井计算出的无铀伽马(或与总伽马GR相关),用于更准确地评估粘土含量")
+    private BigDecimal cgr;
+
+    @Schema(description = "深感应电阻率:一种测量地层电阻率的曲线,探测深度较大,反映原状地层的电阻率")
+    @ExcelProperty("深感应电阻率:一种测量地层电阻率的曲线,探测深度较大,反映原状地层的电阻率")
+    private BigDecimal cild;
+
+    @Schema(description = "us/m声波时差:声波在地层中传播1米所需的时间,单位微秒/米。是计算地层孔隙度的关键曲线")
+    @ExcelProperty("us/m声波时差:声波在地层中传播1米所需的时间,单位微秒/米。是计算地层孔隙度的关键曲线")
+    private BigDecimal dt;
+
+    @Schema(description = "API自然伽马:测量地层中天然放射性元素(如铀、钍、钾)的含量,单位API。是划分岩性(如泥岩、砂岩)最基础的曲线。")
+    @ExcelProperty("API自然伽马:测量地层中天然放射性元素(如铀、钍、钾)的含量,单位API。是划分岩性(如泥岩、砂岩)最基础的曲线。")
+    private BigDecimal gr;
+
+    @Schema(description = "侵入带电阻率:测量钻井液滤液侵入地层的电阻率,单位欧姆·米")
+    @ExcelProperty("侵入带电阻率:测量钻井液滤液侵入地层的电阻率,单位欧姆·米")
+    private BigDecimal minv;
+
+    @Schema(description = "微电阻率(或正态化):通常指一种浅探测电阻率,用于识别薄层或估算冲洗带电阻率")
+    @ExcelProperty("微电阻率(或正态化):通常指一种浅探测电阻率,用于识别薄层或估算冲洗带电阻率")
+    private BigDecimal mnor;
+
+    @Schema(description = "mD渗透率:表示岩石允许流体通过的能力,单位毫达西。这是衡量储层产能的核心参数之一")
+    @ExcelProperty("mD渗透率:表示岩石允许流体通过的能力,单位毫达西。这是衡量储层产能的核心参数之一")
+    private BigDecimal perm;
+
+    @Schema(description = "有效孔隙度:指岩石中相互连通的孔隙体积占岩石总体积的百分比,是计算储量的关键参数")
+    @ExcelProperty("有效孔隙度:指岩石中相互连通的孔隙体积占岩石总体积的百分比,是计算储量的关键参数")
+    private BigDecimal pora;
+
+    @Schema(description = "总孔隙度:指岩石中所有孔隙(包括连通的与孤立的)体积占总岩石体积的百分比")
+    @ExcelProperty("总孔隙度:指岩石中所有孔隙(包括连通的与孤立的)体积占总岩石体积的百分比")
+    private BigDecimal pord;
+
+    @Schema(description = "中子孔隙度:由中子测井测量得到的孔隙度,对岩性和流体敏感,常与密度孔隙度(PORD)结合使用")
+    @ExcelProperty("中子孔隙度:由中子测井测量得到的孔隙度,对岩性和流体敏感,常与密度孔隙度(PORD)结合使用")
+    private BigDecimal porn;
+
+    @Schema(description = "ohm.m浅电阻率:一种探测深度很浅的电阻率曲线,通常用于校正侵入影响或识别泥饼")
+    @ExcelProperty("ohm.m浅电阻率:一种探测深度很浅的电阻率曲线,通常用于校正侵入影响或识别泥饼")
+    private BigDecimal r25;
+
+    @Schema(description = "g/cm3体积密度:岩石的总体密度,单位克/立方厘米。是计算孔隙度和识别岩性的重要曲线")
+    @ExcelProperty("g/cm3体积密度:岩石的总体密度,单位克/立方厘米。是计算孔隙度和识别岩性的重要曲线")
+    private BigDecimal rhob;
+
+    @Schema(description = "ohm.m冲洗带电阻率:测量井壁附近被钻井液滤液完全冲洗地带的电阻率")
+    @ExcelProperty("ohm.m冲洗带电阻率:测量井壁附近被钻井液滤液完全冲洗地带的电阻率")
+    private BigDecimal rxo;
+
+    @Schema(description = "mV自然电位:测量井内自然电场产生的电位差,单位毫伏。主要用于划分渗透层(如砂岩)和估算地层水电阻率")
+    @ExcelProperty("mV自然电位:测量井内自然电场产生的电位差,单位毫伏。主要用于划分渗透层(如砂岩)和估算地层水电阻率")
+    private BigDecimal sp;
+
+    @Schema(description = "v/v_decimal含水饱和度:表示孔隙空间中被水占据的比例,是评价含油性的最核心参数")
+    @ExcelProperty("v/v_decimal含水饱和度:表示孔隙空间中被水占据的比例,是评价含油性的最核心参数")
+    private BigDecimal sw;
+
+    @Schema(description = "冲洗带含水饱和度:表示冲洗带(靠近井壁)中含水饱和度,用于估算可动流体体积")
+    @ExcelProperty("冲洗带含水饱和度:表示冲洗带(靠近井壁)中含水饱和度,用于估算可动流体体积")
+    private BigDecimal sxo;
+
+    @Schema(description = "创建时间")
+    @ExcelProperty("创建时间")
+    private LocalDateTime createTime;
+
+}

+ 75 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/laswelldata/vo/LasWellDataSaveReqVO.java

@@ -0,0 +1,75 @@
+package cn.iocoder.yudao.module.pms.controller.admin.laswelldata.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Schema(description = "管理后台 - 数字油藏LAS数据文件-测井数据新增/修改 Request VO")
+@Data
+public class LasWellDataSaveReqVO {
+
+    @Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "2656")
+    private Long id;
+
+    @Schema(description = "部门id", example = "14875")
+    private Long deptId;
+
+    @Schema(description = "井id", example = "13819")
+    private Long wellId;
+
+    @Schema(description = "M测量深度:这是每条记录的索引,表示数据点在地下的垂直深度")
+    private BigDecimal depth;
+
+    @Schema(description = "mm井径:测量井眼直径的大小,单位毫米。用于判断井眼是否坍塌或扩大")
+    private BigDecimal cali;
+
+    @Schema(description = "计算伽马:通常是由能谱测井计算出的无铀伽马(或与总伽马GR相关),用于更准确地评估粘土含量")
+    private BigDecimal cgr;
+
+    @Schema(description = "深感应电阻率:一种测量地层电阻率的曲线,探测深度较大,反映原状地层的电阻率")
+    private BigDecimal cild;
+
+    @Schema(description = "us/m声波时差:声波在地层中传播1米所需的时间,单位微秒/米。是计算地层孔隙度的关键曲线")
+    private BigDecimal dt;
+
+    @Schema(description = "API自然伽马:测量地层中天然放射性元素(如铀、钍、钾)的含量,单位API。是划分岩性(如泥岩、砂岩)最基础的曲线。")
+    private BigDecimal gr;
+
+    @Schema(description = "侵入带电阻率:测量钻井液滤液侵入地层的电阻率,单位欧姆·米")
+    private BigDecimal minv;
+
+    @Schema(description = "微电阻率(或正态化):通常指一种浅探测电阻率,用于识别薄层或估算冲洗带电阻率")
+    private BigDecimal mnor;
+
+    @Schema(description = "mD渗透率:表示岩石允许流体通过的能力,单位毫达西。这是衡量储层产能的核心参数之一")
+    private BigDecimal perm;
+
+    @Schema(description = "有效孔隙度:指岩石中相互连通的孔隙体积占岩石总体积的百分比,是计算储量的关键参数")
+    private BigDecimal pora;
+
+    @Schema(description = "总孔隙度:指岩石中所有孔隙(包括连通的与孤立的)体积占总岩石体积的百分比")
+    private BigDecimal pord;
+
+    @Schema(description = "中子孔隙度:由中子测井测量得到的孔隙度,对岩性和流体敏感,常与密度孔隙度(PORD)结合使用")
+    private BigDecimal porn;
+
+    @Schema(description = "ohm.m浅电阻率:一种探测深度很浅的电阻率曲线,通常用于校正侵入影响或识别泥饼")
+    private BigDecimal r25;
+
+    @Schema(description = "g/cm3体积密度:岩石的总体密度,单位克/立方厘米。是计算孔隙度和识别岩性的重要曲线")
+    private BigDecimal rhob;
+
+    @Schema(description = "ohm.m冲洗带电阻率:测量井壁附近被钻井液滤液完全冲洗地带的电阻率")
+    private BigDecimal rxo;
+
+    @Schema(description = "mV自然电位:测量井内自然电场产生的电位差,单位毫伏。主要用于划分渗透层(如砂岩)和估算地层水电阻率")
+    private BigDecimal sp;
+
+    @Schema(description = "v/v_decimal含水饱和度:表示孔隙空间中被水占据的比例,是评价含油性的最核心参数")
+    private BigDecimal sw;
+
+    @Schema(description = "冲洗带含水饱和度:表示冲洗带(靠近井壁)中含水饱和度,用于估算可动流体体积")
+    private BigDecimal sxo;
+
+}

+ 92 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/laswelldata/vo/LasWellDataSetRespVO.java

@@ -0,0 +1,92 @@
+package cn.iocoder.yudao.module.pms.controller.admin.laswelldata.vo;
+
+import cn.iocoder.yudao.module.pms.controller.admin.laswell.vo.LasWellRespVO;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Schema(description = "管理后台 - 数字油藏LAS数据文件-测井数据 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class LasWellDataSetRespVO {
+
+    @Schema(description = "井基础信息", requiredMode = Schema.RequiredMode.REQUIRED, example = "2656")
+    @ExcelProperty("井基础信息")
+    private LasWellRespVO wellInfo;
+
+    @Schema(description = "井深集合 由浅入深", requiredMode = Schema.RequiredMode.REQUIRED, example = "2656")
+    @ExcelProperty("井深")
+    private List<BigDecimal> depths;
+
+    @Schema(description = "井径集合 跟随井深变化", requiredMode = Schema.RequiredMode.REQUIRED, example = "2656")
+    @ExcelProperty("井径")
+    private List<BigDecimal> calis;
+
+    @Schema(description = "计算伽马集合 跟随井深变化", requiredMode = Schema.RequiredMode.REQUIRED, example = "2656")
+    @ExcelProperty("计算伽马")
+    private List<BigDecimal> cgrs;
+
+    @Schema(description = "深感应电阻率集合 跟随井深变化", requiredMode = Schema.RequiredMode.REQUIRED, example = "2656")
+    @ExcelProperty("深感应电阻率")
+    private List<BigDecimal> cilds;
+
+    @Schema(description = "us/m声波时差 跟随井深变化", requiredMode = Schema.RequiredMode.REQUIRED, example = "2656")
+    @ExcelProperty("声波时差")
+    private List<BigDecimal> dts;
+
+    @Schema(description = "API自然伽马 跟随井深变化", requiredMode = Schema.RequiredMode.REQUIRED, example = "2656")
+    @ExcelProperty("自然伽马")
+    private List<BigDecimal> grs;
+
+    @Schema(description = "侵入带电阻率 跟随井深变化", requiredMode = Schema.RequiredMode.REQUIRED, example = "2656")
+    @ExcelProperty("侵入带电阻率")
+    private List<BigDecimal> minvs;
+
+    @Schema(description = "微电阻率(或正态化) 跟随井深变化", requiredMode = Schema.RequiredMode.REQUIRED, example = "2656")
+    @ExcelProperty("微电阻率(或正态化)")
+    private List<BigDecimal> mnors;
+
+    @Schema(description = "mD渗透率 跟随井深变化", requiredMode = Schema.RequiredMode.REQUIRED, example = "2656")
+    @ExcelProperty("渗透率(或正态化)")
+    private List<BigDecimal> perms;
+
+    @Schema(description = "有效孔隙度 跟随井深变化", requiredMode = Schema.RequiredMode.REQUIRED, example = "2656")
+    @ExcelProperty("有效孔隙度")
+    private List<BigDecimal> poras;
+
+    @Schema(description = "总孔隙度 跟随井深变化", requiredMode = Schema.RequiredMode.REQUIRED, example = "2656")
+    @ExcelProperty("总孔隙度")
+    private List<BigDecimal> pords;
+
+    @Schema(description = "中子孔隙度 跟随井深变化", requiredMode = Schema.RequiredMode.REQUIRED, example = "2656")
+    @ExcelProperty("中子孔隙度")
+    private List<BigDecimal> porns;
+
+    @Schema(description = "ohm.m浅电阻率 跟随井深变化", requiredMode = Schema.RequiredMode.REQUIRED, example = "2656")
+    @ExcelProperty("浅电阻率")
+    private List<BigDecimal> r25s;
+
+    @Schema(description = "g/cm3体积密度 跟随井深变化", requiredMode = Schema.RequiredMode.REQUIRED, example = "2656")
+    @ExcelProperty("体积密度")
+    private List<BigDecimal> rhobs;
+
+    @Schema(description = "ohm.m冲洗带电阻率 跟随井深变化", requiredMode = Schema.RequiredMode.REQUIRED, example = "2656")
+    @ExcelProperty("冲洗带电阻率")
+    private List<BigDecimal> rxos;
+
+    @Schema(description = "mV自然电位 跟随井深变化", requiredMode = Schema.RequiredMode.REQUIRED, example = "2656")
+    @ExcelProperty("自然电位")
+    private List<BigDecimal> sps;
+
+    @Schema(description = "v/v_decimal含水饱和度 跟随井深变化", requiredMode = Schema.RequiredMode.REQUIRED, example = "2656")
+    @ExcelProperty("含水饱和度")
+    private List<BigDecimal> sws;
+
+    @Schema(description = "冲洗带含水饱和度 跟随井深变化", requiredMode = Schema.RequiredMode.REQUIRED, example = "2656")
+    @ExcelProperty("冲洗带含水饱和度")
+    private List<BigDecimal> sxos;
+}

+ 109 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/dataobject/laswell/LasWellDO.java

@@ -0,0 +1,109 @@
+package cn.iocoder.yudao.module.pms.dal.dataobject.laswell;
+
+import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+import com.baomidou.mybatisplus.annotation.KeySequence;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.*;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * 数字油藏LAS数据文件-井信息 DO
+ *
+ * @author ruiqi
+ */
+@TableName("yc_las_well")
+@KeySequence("yc_las_well_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class LasWellDO extends BaseDO {
+
+    /**
+     * 主键id
+     */
+    @TableId
+    private Long id;
+    /**
+     * 部门id
+     */
+    private Long deptId;
+    /**
+     * 起始深度:测井数据记录的起始深度,单位为米(M)
+     */
+    private BigDecimal strt;
+    /**
+     * 终止深度:测井数据记录的结束深度。
+     */
+    private BigDecimal stop;
+    /**
+     * 采样步长:数据点之间的深度间隔,这里是0.1米,即每10厘米记录一个数据点。
+     */
+    private BigDecimal step;
+    /**
+     * 进行测井作业的公司名称
+     */
+    private String comp;
+    /**
+     * 该数据所属的油井名称
+     */
+    private String well;
+    /**
+     * 该井所属的油田名称
+     */
+    private String fld;
+    /**
+     * 井的详细位置描述
+     */
+    private String loc;
+    /**
+     * 井所在的行政区域(县)
+     */
+    private String cnty;
+    /**
+     * 井所在的行政区域(州/省)
+     */
+    private String stat;
+    /**
+     * 井所在的国家
+     */
+    private String ctry;
+    /**
+     * 进行测井作业的日期
+     */
+    private LocalDateTime workDate;
+    /**
+     * 用于在全球范围内唯一标识这口井的编码
+     */
+    private String uwi;
+    /**
+     * 井口在地图上的X坐标(投影坐标)
+     */
+    private BigDecimal xcoord;
+    /**
+     * 井口在地图上的Y坐标(投影坐标)
+     */
+    private BigDecimal ycoord;
+    /**
+     * 井口的地理经度(WGS84坐标系)
+     */
+    private BigDecimal lon;
+    /**
+     * 井口的地理纬度(WGS84坐标系)
+     */
+    private BigDecimal lat;
+    /**
+     * 井口(或补心海拔KB)的海拔高度,单位为米
+     */
+    private BigDecimal elev;
+    /**
+     * 海拔类型:KB 表示这是补心海拔(Kelly Bushing),即钻井平台转盘面的海拔
+     */
+    private String elevType;
+
+}

+ 112 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/dataobject/laswelldata/LasWellDataDO.java

@@ -0,0 +1,112 @@
+package cn.iocoder.yudao.module.pms.dal.dataobject.laswelldata;
+
+import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+import com.baomidou.mybatisplus.annotation.KeySequence;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.*;
+
+import java.math.BigDecimal;
+
+/**
+ * 数字油藏LAS数据文件-测井数据 DO
+ *
+ * @author ruiqi
+ */
+@TableName("yc_las_well_data")
+@KeySequence("yc_las_well_data_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class LasWellDataDO extends BaseDO {
+
+    /**
+     * 主键id
+     */
+    @TableId
+    private Long id;
+    /**
+     * 部门id
+     */
+    private Long deptId;
+    /**
+     * 井id
+     */
+    private Long wellId;
+    /**
+     * M测量深度:这是每条记录的索引,表示数据点在地下的垂直深度
+     */
+    private BigDecimal depth;
+    /**
+     * mm井径:测量井眼直径的大小,单位毫米。用于判断井眼是否坍塌或扩大
+     */
+    private BigDecimal cali;
+    /**
+     * 计算伽马:通常是由能谱测井计算出的无铀伽马(或与总伽马GR相关),用于更准确地评估粘土含量
+     */
+    private BigDecimal cgr;
+    /**
+     * 深感应电阻率:一种测量地层电阻率的曲线,探测深度较大,反映原状地层的电阻率
+     */
+    private BigDecimal cild;
+    /**
+     * us/m声波时差:声波在地层中传播1米所需的时间,单位微秒/米。是计算地层孔隙度的关键曲线
+     */
+    private BigDecimal dt;
+    /**
+     * API自然伽马:测量地层中天然放射性元素(如铀、钍、钾)的含量,单位API。是划分岩性(如泥岩、砂岩)最基础的曲线。
+     */
+    private BigDecimal gr;
+    /**
+     * 侵入带电阻率:测量钻井液滤液侵入地层的电阻率,单位欧姆·米
+     */
+    private BigDecimal minv;
+    /**
+     * 微电阻率(或正态化):通常指一种浅探测电阻率,用于识别薄层或估算冲洗带电阻率
+     */
+    private BigDecimal mnor;
+    /**
+     * mD渗透率:表示岩石允许流体通过的能力,单位毫达西。这是衡量储层产能的核心参数之一
+     */
+    private BigDecimal perm;
+    /**
+     * 有效孔隙度:指岩石中相互连通的孔隙体积占岩石总体积的百分比,是计算储量的关键参数
+     */
+    private BigDecimal pora;
+    /**
+     * 总孔隙度:指岩石中所有孔隙(包括连通的与孤立的)体积占总岩石体积的百分比
+     */
+    private BigDecimal pord;
+    /**
+     * 中子孔隙度:由中子测井测量得到的孔隙度,对岩性和流体敏感,常与密度孔隙度(PORD)结合使用
+     */
+    private BigDecimal porn;
+    /**
+     * ohm.m浅电阻率:一种探测深度很浅的电阻率曲线,通常用于校正侵入影响或识别泥饼
+     */
+    private BigDecimal r25;
+    /**
+     * g/cm3体积密度:岩石的总体密度,单位克/立方厘米。是计算孔隙度和识别岩性的重要曲线
+     */
+    private BigDecimal rhob;
+    /**
+     * ohm.m冲洗带电阻率:测量井壁附近被钻井液滤液完全冲洗地带的电阻率
+     */
+    private BigDecimal rxo;
+    /**
+     * mV自然电位:测量井内自然电场产生的电位差,单位毫伏。主要用于划分渗透层(如砂岩)和估算地层水电阻率
+     */
+    private BigDecimal sp;
+    /**
+     * v/v_decimal含水饱和度:表示孔隙空间中被水占据的比例,是评价含油性的最核心参数
+     */
+    private BigDecimal sw;
+    /**
+     * 冲洗带含水饱和度:表示冲洗带(靠近井壁)中含水饱和度,用于估算可动流体体积
+     */
+    private BigDecimal sxo;
+
+}

+ 43 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/laswell/LasWellMapper.java

@@ -0,0 +1,43 @@
+package cn.iocoder.yudao.module.pms.dal.mysql.laswell;
+
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
+import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.iocoder.yudao.module.pms.controller.admin.laswell.vo.LasWellPageReqVO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.laswell.LasWellDO;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 数字油藏LAS数据文件-井信息 Mapper
+ *
+ * @author ruiqi
+ */
+@Mapper
+public interface LasWellMapper extends BaseMapperX<LasWellDO> {
+
+    default PageResult<LasWellDO> selectPage(LasWellPageReqVO reqVO) {
+        return selectPage(reqVO, new LambdaQueryWrapperX<LasWellDO>()
+                .eqIfPresent(LasWellDO::getDeptId, reqVO.getDeptId())
+                .eqIfPresent(LasWellDO::getStrt, reqVO.getStrt())
+                .eqIfPresent(LasWellDO::getStop, reqVO.getStop())
+                .eqIfPresent(LasWellDO::getStep, reqVO.getStep())
+                .eqIfPresent(LasWellDO::getComp, reqVO.getComp())
+                .eqIfPresent(LasWellDO::getWell, reqVO.getWell())
+                .eqIfPresent(LasWellDO::getFld, reqVO.getFld())
+                .eqIfPresent(LasWellDO::getLoc, reqVO.getLoc())
+                .eqIfPresent(LasWellDO::getCnty, reqVO.getCnty())
+                .eqIfPresent(LasWellDO::getStat, reqVO.getStat())
+                .eqIfPresent(LasWellDO::getCtry, reqVO.getCtry())
+                .betweenIfPresent(LasWellDO::getWorkDate, reqVO.getWorkDate())
+                .eqIfPresent(LasWellDO::getUwi, reqVO.getUwi())
+                .eqIfPresent(LasWellDO::getXcoord, reqVO.getXcoord())
+                .eqIfPresent(LasWellDO::getYcoord, reqVO.getYcoord())
+                .eqIfPresent(LasWellDO::getLon, reqVO.getLon())
+                .eqIfPresent(LasWellDO::getLat, reqVO.getLat())
+                .eqIfPresent(LasWellDO::getElev, reqVO.getElev())
+                .eqIfPresent(LasWellDO::getElevType, reqVO.getElevType())
+                .betweenIfPresent(LasWellDO::getCreateTime, reqVO.getCreateTime())
+                .orderByDesc(LasWellDO::getId));
+    }
+
+}

+ 44 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/laswelldata/LasWellDataMapper.java

@@ -0,0 +1,44 @@
+package cn.iocoder.yudao.module.pms.dal.mysql.laswelldata;
+
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
+import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.iocoder.yudao.module.pms.controller.admin.laswelldata.vo.LasWellDataPageReqVO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.laswelldata.LasWellDataDO;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 数字油藏LAS数据文件-测井数据 Mapper
+ *
+ * @author ruiqi
+ */
+@Mapper
+public interface LasWellDataMapper extends BaseMapperX<LasWellDataDO> {
+
+    default PageResult<LasWellDataDO> selectPage(LasWellDataPageReqVO reqVO) {
+        return selectPage(reqVO, new LambdaQueryWrapperX<LasWellDataDO>()
+                .eqIfPresent(LasWellDataDO::getDeptId, reqVO.getDeptId())
+                .eqIfPresent(LasWellDataDO::getWellId, reqVO.getWellId())
+                .eqIfPresent(LasWellDataDO::getDepth, reqVO.getDepth())
+                .eqIfPresent(LasWellDataDO::getCali, reqVO.getCali())
+                .eqIfPresent(LasWellDataDO::getCgr, reqVO.getCgr())
+                .eqIfPresent(LasWellDataDO::getCild, reqVO.getCild())
+                .eqIfPresent(LasWellDataDO::getDt, reqVO.getDt())
+                .eqIfPresent(LasWellDataDO::getGr, reqVO.getGr())
+                .eqIfPresent(LasWellDataDO::getMinv, reqVO.getMinv())
+                .eqIfPresent(LasWellDataDO::getMnor, reqVO.getMnor())
+                .eqIfPresent(LasWellDataDO::getPerm, reqVO.getPerm())
+                .eqIfPresent(LasWellDataDO::getPora, reqVO.getPora())
+                .eqIfPresent(LasWellDataDO::getPord, reqVO.getPord())
+                .eqIfPresent(LasWellDataDO::getPorn, reqVO.getPorn())
+                .eqIfPresent(LasWellDataDO::getR25, reqVO.getR25())
+                .eqIfPresent(LasWellDataDO::getRhob, reqVO.getRhob())
+                .eqIfPresent(LasWellDataDO::getRxo, reqVO.getRxo())
+                .eqIfPresent(LasWellDataDO::getSp, reqVO.getSp())
+                .eqIfPresent(LasWellDataDO::getSw, reqVO.getSw())
+                .eqIfPresent(LasWellDataDO::getSxo, reqVO.getSxo())
+                .betweenIfPresent(LasWellDataDO::getCreateTime, reqVO.getCreateTime())
+                .orderByAsc(LasWellDataDO::getId));
+    }
+
+}

+ 55 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/laswell/LasWellService.java

@@ -0,0 +1,55 @@
+package cn.iocoder.yudao.module.pms.service.laswell;
+
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.module.pms.controller.admin.laswell.vo.LasWellPageReqVO;
+import cn.iocoder.yudao.module.pms.controller.admin.laswell.vo.LasWellSaveReqVO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.laswell.LasWellDO;
+
+import javax.validation.Valid;
+
+/**
+ * 数字油藏LAS数据文件-井信息 Service 接口
+ *
+ * @author ruiqi
+ */
+public interface LasWellService {
+
+    /**
+     * 创建数字油藏LAS数据文件-井信息
+     *
+     * @param createReqVO 创建信息
+     * @return 编号
+     */
+    Long createLasWell(@Valid LasWellSaveReqVO createReqVO);
+
+    /**
+     * 更新数字油藏LAS数据文件-井信息
+     *
+     * @param updateReqVO 更新信息
+     */
+    void updateLasWell(@Valid LasWellSaveReqVO updateReqVO);
+
+    /**
+     * 删除数字油藏LAS数据文件-井信息
+     *
+     * @param id 编号
+     */
+    void deleteLasWell(Long id);
+
+    /**
+     * 获得数字油藏LAS数据文件-井信息
+     *
+     * @param id 编号
+     * @return 数字油藏LAS数据文件-井信息
+     */
+    LasWellDO getLasWell(Long id);
+
+    /**
+     * 获得数字油藏LAS数据文件-井信息分页
+     *
+     * @param pageReqVO 分页查询
+     * @return 数字油藏LAS数据文件-井信息分页
+     */
+    PageResult<LasWellDO> getLasWellPage(LasWellPageReqVO pageReqVO);
+
+}

+ 71 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/laswell/LasWellServiceImpl.java

@@ -0,0 +1,71 @@
+package cn.iocoder.yudao.module.pms.service.laswell;
+
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.module.pms.controller.admin.laswell.vo.LasWellPageReqVO;
+import cn.iocoder.yudao.module.pms.controller.admin.laswell.vo.LasWellSaveReqVO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.laswell.LasWellDO;
+import cn.iocoder.yudao.module.pms.dal.mysql.laswell.LasWellMapper;
+import org.springframework.stereotype.Service;
+import org.springframework.validation.annotation.Validated;
+
+import javax.annotation.Resource;
+
+import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.iocoder.yudao.module.pms.enums.ErrorCodeConstant.LAS_WELL_NOT_EXISTS;
+
+/**
+ * 数字油藏LAS数据文件-井信息 Service 实现类
+ *
+ * @author ruiqi
+ */
+@Service
+@Validated
+public class LasWellServiceImpl implements LasWellService {
+
+    @Resource
+    private LasWellMapper lasWellMapper;
+
+    @Override
+    public Long createLasWell(LasWellSaveReqVO createReqVO) {
+        // 插入
+        LasWellDO lasWell = BeanUtils.toBean(createReqVO, LasWellDO.class);
+        lasWellMapper.insert(lasWell);
+        // 返回
+        return lasWell.getId();
+    }
+
+    @Override
+    public void updateLasWell(LasWellSaveReqVO updateReqVO) {
+        // 校验存在
+        validateLasWellExists(updateReqVO.getId());
+        // 更新
+        LasWellDO updateObj = BeanUtils.toBean(updateReqVO, LasWellDO.class);
+        lasWellMapper.updateById(updateObj);
+    }
+
+    @Override
+    public void deleteLasWell(Long id) {
+        // 校验存在
+        validateLasWellExists(id);
+        // 删除
+        lasWellMapper.deleteById(id);
+    }
+
+    private void validateLasWellExists(Long id) {
+        if (lasWellMapper.selectById(id) == null) {
+            throw exception(LAS_WELL_NOT_EXISTS);
+        }
+    }
+
+    @Override
+    public LasWellDO getLasWell(Long id) {
+        return lasWellMapper.selectById(id);
+    }
+
+    @Override
+    public PageResult<LasWellDO> getLasWellPage(LasWellPageReqVO pageReqVO) {
+        return lasWellMapper.selectPage(pageReqVO);
+    }
+
+}

+ 62 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/laswelldata/LasWellDataService.java

@@ -0,0 +1,62 @@
+package cn.iocoder.yudao.module.pms.service.laswelldata;
+
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.module.pms.controller.admin.laswelldata.vo.LasWellDataPageReqVO;
+import cn.iocoder.yudao.module.pms.controller.admin.laswelldata.vo.LasWellDataSaveReqVO;
+import cn.iocoder.yudao.module.pms.controller.admin.laswelldata.vo.LasWellDataSetRespVO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.laswelldata.LasWellDataDO;
+
+import javax.validation.Valid;
+
+/**
+ * 数字油藏LAS数据文件-测井数据 Service 接口
+ *
+ * @author ruiqi
+ */
+public interface LasWellDataService {
+
+    /**
+     * 创建数字油藏LAS数据文件-测井数据
+     *
+     * @param createReqVO 创建信息
+     * @return 编号
+     */
+    Long createLasWellData(@Valid LasWellDataSaveReqVO createReqVO);
+
+    /**
+     * 更新数字油藏LAS数据文件-测井数据
+     *
+     * @param updateReqVO 更新信息
+     */
+    void updateLasWellData(@Valid LasWellDataSaveReqVO updateReqVO);
+
+    /**
+     * 删除数字油藏LAS数据文件-测井数据
+     *
+     * @param id 编号
+     */
+    void deleteLasWellData(Long id);
+
+    /**
+     * 获得数字油藏LAS数据文件-测井数据
+     *
+     * @param id 编号
+     * @return 数字油藏LAS数据文件-测井数据
+     */
+    LasWellDataDO getLasWellData(Long id);
+
+    /**
+     * 获得数字油藏LAS数据文件-测井数据分页
+     *
+     * @param pageReqVO 分页查询
+     * @return 数字油藏LAS数据文件-测井数据分页
+     */
+    PageResult<LasWellDataDO> getLasWellDataPage(LasWellDataPageReqVO pageReqVO);
+
+    /**
+     * 查询井及相关的各项测井数据集合
+     * @param pageReqVO
+     * @return
+     */
+    LasWellDataSetRespVO wellLogDataset(LasWellDataPageReqVO pageReqVO);
+}

+ 187 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/laswelldata/LasWellDataServiceImpl.java

@@ -0,0 +1,187 @@
+package cn.iocoder.yudao.module.pms.service.laswelldata;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.ObjUtil;
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.module.pms.controller.admin.laswell.vo.LasWellRespVO;
+import cn.iocoder.yudao.module.pms.controller.admin.laswelldata.vo.LasWellDataPageReqVO;
+import cn.iocoder.yudao.module.pms.controller.admin.laswelldata.vo.LasWellDataSaveReqVO;
+import cn.iocoder.yudao.module.pms.controller.admin.laswelldata.vo.LasWellDataSetRespVO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.laswell.LasWellDO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.laswelldata.LasWellDataDO;
+import cn.iocoder.yudao.module.pms.dal.mysql.laswell.LasWellMapper;
+import cn.iocoder.yudao.module.pms.dal.mysql.laswelldata.LasWellDataMapper;
+import org.springframework.stereotype.Service;
+import org.springframework.validation.annotation.Validated;
+
+import javax.annotation.Resource;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.iocoder.yudao.module.pms.enums.ErrorCodeConstant.LAS_WELL_DATA_NOT_EXISTS;
+
+/**
+ * 数字油藏LAS数据文件-测井数据 Service 实现类
+ *
+ * @author ruiqi
+ */
+@Service
+@Validated
+public class LasWellDataServiceImpl implements LasWellDataService {
+
+    @Resource
+    private LasWellDataMapper lasWellDataMapper;
+    @Resource
+    private LasWellMapper lasWellMapper;
+
+    @Override
+    public Long createLasWellData(LasWellDataSaveReqVO createReqVO) {
+        // 插入
+        LasWellDataDO lasWellData = BeanUtils.toBean(createReqVO, LasWellDataDO.class);
+        lasWellDataMapper.insert(lasWellData);
+        // 返回
+        return lasWellData.getId();
+    }
+
+    @Override
+    public void updateLasWellData(LasWellDataSaveReqVO updateReqVO) {
+        // 校验存在
+        validateLasWellDataExists(updateReqVO.getId());
+        // 更新
+        LasWellDataDO updateObj = BeanUtils.toBean(updateReqVO, LasWellDataDO.class);
+        lasWellDataMapper.updateById(updateObj);
+    }
+
+    @Override
+    public void deleteLasWellData(Long id) {
+        // 校验存在
+        validateLasWellDataExists(id);
+        // 删除
+        lasWellDataMapper.deleteById(id);
+    }
+
+    private void validateLasWellDataExists(Long id) {
+        if (lasWellDataMapper.selectById(id) == null) {
+            throw exception(LAS_WELL_DATA_NOT_EXISTS);
+        }
+    }
+
+    @Override
+    public LasWellDataDO getLasWellData(Long id) {
+        return lasWellDataMapper.selectById(id);
+    }
+
+    @Override
+    public PageResult<LasWellDataDO> getLasWellDataPage(LasWellDataPageReqVO pageReqVO) {
+        return lasWellDataMapper.selectPage(pageReqVO);
+    }
+
+    @Override
+    public LasWellDataSetRespVO wellLogDataset(LasWellDataPageReqVO pageReqVO) {
+        Long wellId = pageReqVO.getWellId();
+        if (ObjUtil.isEmpty(wellId)) {
+            throw exception(LAS_WELL_DATA_NOT_EXISTS);
+        }
+        LasWellDataSetRespVO result = new LasWellDataSetRespVO();
+        // 查询油藏井基础信息
+        LasWellDO well = lasWellMapper.selectById(wellId);
+        if (ObjUtil.isEmpty(well)) {
+            throw exception(LAS_WELL_DATA_NOT_EXISTS);
+        }
+        LasWellRespVO wellResp = BeanUtils.toBean(well, LasWellRespVO.class);
+        result.setWellInfo(wellResp);
+        // 查询井的所有测井数据集合
+        pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+        PageResult<LasWellDataDO> pageData = lasWellDataMapper.selectPage(pageReqVO);
+        List<LasWellDataDO> wellData = pageData.getList();
+        // 井深集合
+        List<BigDecimal> depths = new ArrayList<>();
+        // 井径集合
+        List<BigDecimal> calis = new ArrayList<>();
+        // 计算伽马集合
+        List<BigDecimal> cgrs = new ArrayList<>();
+        // 深感应电阻率集合
+        List<BigDecimal> cilds = new ArrayList<>();
+        // us/m声波时差集合
+        List<BigDecimal> dts = new ArrayList<>();
+        // API自然伽马集合
+        List<BigDecimal> grs = new ArrayList<>();
+        // 侵入带电阻率集合
+        List<BigDecimal> minvs = new ArrayList<>();
+        // 微电阻率集合
+        List<BigDecimal> mnors = new ArrayList<>();
+        // 渗透率集合
+        List<BigDecimal> perms = new ArrayList<>();
+        // 有效孔隙度集合
+        List<BigDecimal> poras = new ArrayList<>();
+        // 总孔隙度集合
+        List<BigDecimal> pords = new ArrayList<>();
+        /**
+         *
+         */
+        // 中子孔隙度集合
+        List<BigDecimal> porns = new ArrayList<>();
+        // ohm.m浅电阻率集合
+        List<BigDecimal> r25s = new ArrayList<>();
+        // g/cm3体积密度集合
+        List<BigDecimal> rhobs = new ArrayList<>();
+        // ohm.m冲洗带电阻率集合
+        List<BigDecimal> rxos = new ArrayList<>();
+        // mV自然电位集合
+        List<BigDecimal> sps = new ArrayList<>();
+        // 含水饱和度集合
+        List<BigDecimal> sws = new ArrayList<>();
+        // 冲洗带含水饱和度集合
+        List<BigDecimal> sxos = new ArrayList<>();
+
+        if (CollUtil.isNotEmpty(wellData)) {
+            wellData.forEach(logData -> {
+                // 数据按照id升序排列 即井深由浅入深排列
+                depths.add(logData.getDepth());
+                calis.add(logData.getCali());
+                cgrs.add(logData.getCgr());
+                cilds.add(logData.getCild());
+                dts.add(logData.getDt());
+                grs.add(logData.getGr());
+                minvs.add(logData.getMinv());
+                mnors.add(logData.getMnor());
+                perms.add(logData.getPerm());
+                poras.add(logData.getPora());
+                pords.add(logData.getPord());
+                porns.add(logData.getPorn());
+                r25s.add(logData.getR25());
+                rhobs.add(logData.getRhob());
+                rxos.add(logData.getRxo());
+                sps.add(logData.getSp());
+                sws.add(logData.getSw());
+                sxos.add(logData.getSxo());
+
+            });
+            result.setDepths(depths);
+            result.setCalis(calis);
+            result.setCgrs(cgrs);
+            result.setCilds(cilds);
+            result.setDts(dts);
+            result.setGrs(grs);
+            result.setMinvs(minvs);
+            result.setMnors(mnors);
+            result.setPerms(perms);
+            result.setPoras(poras);
+            result.setPords(pords);
+            result.setPorns(porns);
+            result.setR25s(r25s);
+            result.setRhobs(rhobs);
+            result.setRxos(rxos);
+            result.setSps(sps);
+            result.setSws(sws);
+            result.setSxos(sxos);
+        }
+        return result;
+    }
+
+}