Browse Source

提交代码

JX.Li 1 năm trước cách đây
mục cha
commit
3be0cf34bc
23 tập tin đã thay đổi với 1434 bổ sung0 xóa
  1. 113 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/controller/GValveWellInspectionController.java
  2. 113 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/controller/GValveWellPositionController.java
  3. 55 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/domain/GValveWellInspection.java
  4. 42 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/domain/GValveWellInspectionPhoto.java
  5. 57 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/domain/GValveWellPosition.java
  6. 88 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/domain/bo/GValveWellInspectionBo.java
  7. 72 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/domain/bo/GValveWellInspectionPhotoBo.java
  8. 92 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/domain/bo/GValveWellPositionBo.java
  9. 46 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/domain/vo/GValveWellInspectionPhotoVo.java
  10. 65 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/domain/vo/GValveWellInspectionVo.java
  11. 70 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/domain/vo/GValveWellPositionVo.java
  12. 16 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/mapper/GValveWellInspectionMapper.java
  13. 18 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/mapper/GValveWellInspectionPhotoMapper.java
  14. 16 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/mapper/GValveWellPositionMapper.java
  15. 59 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/service/IGValveWellInspectionPhotoService.java
  16. 56 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/service/IGValveWellInspectionService.java
  17. 56 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/service/IGValveWellPositionService.java
  18. 92 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/service/impl/GValveWellInspectionPhotoServiceImpl.java
  19. 142 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/service/impl/GValveWellInspectionServiceImpl.java
  20. 91 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/service/impl/GValveWellPositionServiceImpl.java
  21. 27 0
      ruoyi-gas/src/main/resources/mapper/GValveWellInspectionMapper.xml
  22. 26 0
      ruoyi-gas/src/main/resources/mapper/GValveWellInspectionPhotoMapper.xml
  23. 22 0
      ruoyi-gas/src/main/resources/mapper/GValveWellPositionMapper.xml

+ 113 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/controller/GValveWellInspectionController.java

@@ -0,0 +1,113 @@
+package com.ruoyi.gas.controller;
+
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.annotation.RepeatSubmit;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.core.validate.AddGroup;
+import com.ruoyi.common.core.validate.EditGroup;
+import com.ruoyi.common.core.validate.QueryGroup;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.gas.domain.bo.GValveWellInspectionBo;
+import com.ruoyi.gas.domain.vo.GValveWellInspectionVo;
+import com.ruoyi.gas.service.IGValveWellInspectionService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 阀井巡查Controller
+ *
+ * @author ruoyi
+ * @date 2024-03-18
+ */
+@Validated
+@Api(value = "阀井巡查控制器", tags = {"阀井巡查管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/gas/valveWellInspection")
+public class GValveWellInspectionController extends BaseController {
+
+    private final IGValveWellInspectionService iGValveWellInspectionService;
+
+    /**
+     * 查询阀井巡查列表
+     */
+    @ApiOperation("查询阀井巡查列表")
+    @PreAuthorize("@ss.hasPermi('gas:valveWellInspection:list')")
+    @GetMapping("/list")
+    public TableDataInfo<GValveWellInspectionVo> list(@Validated(QueryGroup.class) GValveWellInspectionBo bo) {
+        return iGValveWellInspectionService.queryPageList(bo);
+    }
+
+    /**
+     * 导出阀井巡查列表
+     */
+    @ApiOperation("导出阀井巡查列表")
+    @PreAuthorize("@ss.hasPermi('gas:valveWellInspection:export')")
+    @Log(title = "阀井巡查", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public void export(@Validated GValveWellInspectionBo bo, HttpServletResponse response) {
+        List<GValveWellInspectionVo> list = iGValveWellInspectionService.queryList(bo);
+        ExcelUtil.exportExcel(list, "阀井巡查", GValveWellInspectionVo.class, response);
+    }
+
+    /**
+     * 获取阀井巡查详细信息
+     */
+    @ApiOperation("获取阀井巡查详细信息")
+    @PreAuthorize("@ss.hasPermi('gas:valveWellInspection:query')")
+    @GetMapping("/{id}")
+    public AjaxResult<GValveWellInspectionVo> getInfo(@NotNull(message = "主键不能为空")
+                                                  @PathVariable("id") Long id) {
+        return AjaxResult.success(iGValveWellInspectionService.queryById(id));
+    }
+
+    /**
+     * 新增阀井巡查
+     */
+    @ApiOperation("新增阀井巡查")
+    @PreAuthorize("@ss.hasPermi('gas:valveWellInspection:add')")
+    @Log(title = "阀井巡查", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping()
+    public AjaxResult<Void> add(@Validated(AddGroup.class) @RequestBody GValveWellInspectionBo bo) {
+        return toAjax(iGValveWellInspectionService.insertByBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 修改阀井巡查
+     */
+    @ApiOperation("修改阀井巡查")
+    @PreAuthorize("@ss.hasPermi('gas:valveWellInspection:edit')")
+    @Log(title = "阀井巡查", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping()
+    public AjaxResult<Void> edit(@Validated(EditGroup.class) @RequestBody GValveWellInspectionBo bo) {
+        return toAjax(iGValveWellInspectionService.updateByBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 删除阀井巡查
+     */
+    @ApiOperation("删除阀井巡查")
+    @PreAuthorize("@ss.hasPermi('gas:valveWellInspection:remove')")
+    @Log(title = "阀井巡查" , businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult<Void> remove(@NotEmpty(message = "主键不能为空")
+                                       @PathVariable Long[] ids) {
+        return toAjax(iGValveWellInspectionService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0);
+    }
+}

+ 113 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/controller/GValveWellPositionController.java

@@ -0,0 +1,113 @@
+package com.ruoyi.gas.controller;
+
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.annotation.RepeatSubmit;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.core.validate.AddGroup;
+import com.ruoyi.common.core.validate.EditGroup;
+import com.ruoyi.common.core.validate.QueryGroup;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.gas.domain.bo.GValveWellPositionBo;
+import com.ruoyi.gas.domain.vo.GValveWellPositionVo;
+import com.ruoyi.gas.service.IGValveWellPositionService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 阀井位置Controller
+ *
+ * @author ruoyi
+ * @date 2024-03-18
+ */
+@Validated
+@Api(value = "阀井位置控制器", tags = {"阀井位置管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/gas/valveWellPosition")
+public class GValveWellPositionController extends BaseController {
+
+    private final IGValveWellPositionService iGValveWellPositionService;
+
+    /**
+     * 查询阀井位置列表
+     */
+    @ApiOperation("查询阀井位置列表")
+    @PreAuthorize("@ss.hasPermi('gas:valveWellPosition:list')")
+    @GetMapping("/list")
+    public TableDataInfo<GValveWellPositionVo> list(@Validated(QueryGroup.class) GValveWellPositionBo bo) {
+        return iGValveWellPositionService.queryPageList(bo);
+    }
+
+    /**
+     * 导出阀井位置列表
+     */
+    @ApiOperation("导出阀井位置列表")
+    @PreAuthorize("@ss.hasPermi('gas:valveWellPosition:export')")
+    @Log(title = "阀井位置", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public void export(@Validated GValveWellPositionBo bo, HttpServletResponse response) {
+        List<GValveWellPositionVo> list = iGValveWellPositionService.queryList(bo);
+        ExcelUtil.exportExcel(list, "阀井位置", GValveWellPositionVo.class, response);
+    }
+
+    /**
+     * 获取阀井位置详细信息
+     */
+    @ApiOperation("获取阀井位置详细信息")
+    @PreAuthorize("@ss.hasPermi('gas:valveWellPosition:query')")
+    @GetMapping("/{id}")
+    public AjaxResult<GValveWellPositionVo> getInfo(@NotNull(message = "主键不能为空")
+                                                  @PathVariable("id") Long id) {
+        return AjaxResult.success(iGValveWellPositionService.queryById(id));
+    }
+
+    /**
+     * 新增阀井位置
+     */
+    @ApiOperation("新增阀井位置")
+    @PreAuthorize("@ss.hasPermi('gas:valveWellPosition:add')")
+    @Log(title = "阀井位置", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping()
+    public AjaxResult<Void> add(@Validated(AddGroup.class) @RequestBody GValveWellPositionBo bo) {
+        return toAjax(iGValveWellPositionService.insertByBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 修改阀井位置
+     */
+    @ApiOperation("修改阀井位置")
+    @PreAuthorize("@ss.hasPermi('gas:valveWellPosition:edit')")
+    @Log(title = "阀井位置", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping()
+    public AjaxResult<Void> edit(@Validated(EditGroup.class) @RequestBody GValveWellPositionBo bo) {
+        return toAjax(iGValveWellPositionService.updateByBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 删除阀井位置
+     */
+    @ApiOperation("删除阀井位置")
+    @PreAuthorize("@ss.hasPermi('gas:valveWellPosition:remove')")
+    @Log(title = "阀井位置" , businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult<Void> remove(@NotEmpty(message = "主键不能为空")
+                                       @PathVariable Long[] ids) {
+        return toAjax(iGValveWellPositionService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0);
+    }
+}

+ 55 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/domain/GValveWellInspection.java

@@ -0,0 +1,55 @@
+package com.ruoyi.gas.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import java.io.Serializable;
+import java.util.Date;
+import java.math.BigDecimal;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 阀井巡查对象 g_valve_well_inspection
+ *
+ * @author ruoyi
+ * @date 2024-03-18
+ */
+@Data
+@Accessors(chain = true)
+@TableName("g_valve_well_inspection")
+public class GValveWellInspection extends BaseEntity {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 
+     */
+    @TableId(value = "id")
+    private Long id;
+    /**
+     * 位置id
+     */
+    private Long positionId;
+    /**
+     * 发现问题
+     */
+    private String discoverProblems;
+    /**
+     * 发现时间
+     */
+    private Date discoverTime;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 删除标志
+     */
+    @TableLogic
+    private String delFlag;
+
+}

+ 42 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/domain/GValveWellInspectionPhoto.java

@@ -0,0 +1,42 @@
+package com.ruoyi.gas.domain;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.common.core.domain.BaseEntity;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * 阀井巡查照片对象 g_valve_well_inspection_photo
+ *
+ * @author ruoyi
+ * @date 2024-03-18
+ */
+@Data
+@Accessors(chain = true)
+@TableName("g_valve_well_inspection_photo")
+public class GValveWellInspectionPhoto extends BaseEntity {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id")
+    private Long id;
+    /**
+     * 抢险维修id
+     */
+    private Long parentId;
+    /**
+     * 照片
+     */
+    private String picUrl;
+    /**
+     * 删除标志
+     */
+    @TableLogic
+    private String delFlag;
+
+}

+ 57 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/domain/GValveWellPosition.java

@@ -0,0 +1,57 @@
+package com.ruoyi.gas.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import java.io.Serializable;
+import java.util.Date;
+import java.math.BigDecimal;
+
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 阀井位置对象 g_valve_well_position
+ *
+ * @author ruoyi
+ * @date 2024-03-18
+ */
+@Data
+@Accessors(chain = true)
+@TableName("g_valve_well_position")
+public class GValveWellPosition extends BaseEntity {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 
+     */
+    @TableId(value = "id")
+    private Long id;
+    /**
+     * 阀井名称
+     */
+    private String valveWellName;
+    /**
+     * 位置
+     */
+    private String position;
+    /**
+     * 经度
+     */
+    private String longitude;
+    /**
+     * 纬度
+     */
+    private String latitude;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 删除标志
+     */
+    @TableLogic
+    private String delFlag;
+
+}

+ 88 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/domain/bo/GValveWellInspectionBo.java

@@ -0,0 +1,88 @@
+package com.ruoyi.gas.domain.bo;
+
+import com.ruoyi.common.core.domain.BaseEntity;
+import com.ruoyi.common.core.validate.AddGroup;
+import com.ruoyi.common.core.validate.EditGroup;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 阀井巡查业务对象 g_valve_well_inspection
+ *
+ * @author ruoyi
+ * @date 2024-03-18
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("阀井巡查业务对象")
+public class GValveWellInspectionBo extends BaseEntity {
+    
+    private List<String> photoList;
+    /**
+     * 
+     */
+    @ApiModelProperty(value = "", required = true)
+    @NotNull(message = "不能为空", groups = { EditGroup.class })
+    private Long id;
+
+    /**
+     * 位置id
+     */
+    @ApiModelProperty(value = "位置id", required = true)
+    @NotNull(message = "位置id不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long positionId;
+
+    /**
+     * 发现问题
+     */
+    @ApiModelProperty(value = "发现问题", required = true)
+    @NotBlank(message = "发现问题不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String discoverProblems;
+
+    /**
+     * 发现时间
+     */
+    @ApiModelProperty(value = "发现时间", required = true)
+    @NotNull(message = "发现时间不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date discoverTime;
+
+    /**
+     * 备注
+     */
+    @ApiModelProperty(value = "备注", required = true)
+    private String remark;
+
+
+    /**
+     * 分页大小
+     */
+    @ApiModelProperty("分页大小")
+    private Integer pageSize;
+
+    /**
+     * 当前页数
+     */
+    @ApiModelProperty("当前页数")
+    private Integer pageNum;
+
+    /**
+     * 排序列
+     */
+    @ApiModelProperty("排序列")
+    private String orderByColumn;
+
+    /**
+     * 排序的方向desc或者asc
+     */
+    @ApiModelProperty(value = "排序的方向", example = "asc,desc")
+    private String isAsc;
+
+}

+ 72 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/domain/bo/GValveWellInspectionPhotoBo.java

@@ -0,0 +1,72 @@
+package com.ruoyi.gas.domain.bo;
+
+import com.ruoyi.common.core.domain.BaseEntity;
+import com.ruoyi.common.core.validate.AddGroup;
+import com.ruoyi.common.core.validate.EditGroup;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * 阀井巡查照片业务对象 g_valve_well_inspection_photo
+ *
+ * @author ruoyi
+ * @date 2024-03-18
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("阀井巡查照片业务对象")
+public class GValveWellInspectionPhotoBo extends BaseEntity {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id", required = true)
+    @NotNull(message = "主键id不能为空", groups = { EditGroup.class })
+    private Long id;
+
+    /**
+     * 抢险维修id
+     */
+    @ApiModelProperty(value = "抢险维修id", required = true)
+    @NotNull(message = "抢险维修id不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long parentId;
+
+    /**
+     * 照片
+     */
+    @ApiModelProperty(value = "照片", required = true)
+    @NotBlank(message = "照片不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String picUrl;
+
+
+    /**
+     * 分页大小
+     */
+    @ApiModelProperty("分页大小")
+    private Integer pageSize;
+
+    /**
+     * 当前页数
+     */
+    @ApiModelProperty("当前页数")
+    private Integer pageNum;
+
+    /**
+     * 排序列
+     */
+    @ApiModelProperty("排序列")
+    private String orderByColumn;
+
+    /**
+     * 排序的方向desc或者asc
+     */
+    @ApiModelProperty(value = "排序的方向", example = "asc,desc")
+    private String isAsc;
+
+}

+ 92 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/domain/bo/GValveWellPositionBo.java

@@ -0,0 +1,92 @@
+package com.ruoyi.gas.domain.bo;
+
+import com.ruoyi.common.core.domain.BaseEntity;
+import com.ruoyi.common.core.validate.AddGroup;
+import com.ruoyi.common.core.validate.EditGroup;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * 阀井位置业务对象 g_valve_well_position
+ *
+ * @author ruoyi
+ * @date 2024-03-18
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("阀井位置业务对象")
+public class GValveWellPositionBo extends BaseEntity {
+
+    /**
+     * 
+     */
+    @ApiModelProperty(value = "", required = true)
+    @NotNull(message = "不能为空", groups = { EditGroup.class })
+    private Long id;
+
+    /**
+     * 阀井名称
+     */
+    @ApiModelProperty(value = "阀井名称", required = true)
+    @NotBlank(message = "阀井名称不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String valveWellName;
+
+    /**
+     * 位置
+     */
+    @ApiModelProperty(value = "位置", required = true)
+    @NotBlank(message = "位置不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String position;
+
+    /**
+     * 经度
+     */
+    @ApiModelProperty(value = "经度", required = true)
+    @NotBlank(message = "经度不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String longitude;
+
+    /**
+     * 纬度
+     */
+    @ApiModelProperty(value = "纬度", required = true)
+    @NotBlank(message = "纬度不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String latitude;
+
+    /**
+     * 备注
+     */
+    @ApiModelProperty(value = "备注", required = true)
+    private String remark;
+
+
+    /**
+     * 分页大小
+     */
+    @ApiModelProperty("分页大小")
+    private Integer pageSize;
+
+    /**
+     * 当前页数
+     */
+    @ApiModelProperty("当前页数")
+    private Integer pageNum;
+
+    /**
+     * 排序列
+     */
+    @ApiModelProperty("排序列")
+    private String orderByColumn;
+
+    /**
+     * 排序的方向desc或者asc
+     */
+    @ApiModelProperty(value = "排序的方向", example = "asc,desc")
+    private String isAsc;
+
+}

+ 46 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/domain/vo/GValveWellInspectionPhotoVo.java

@@ -0,0 +1,46 @@
+package com.ruoyi.gas.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+
+/**
+ * 阀井巡查照片视图对象 g_valve_well_inspection_photo
+ *
+ * @author ruoyi
+ * @date 2024-03-18
+ */
+@Data
+@ApiModel("阀井巡查照片视图对象")
+@ExcelIgnoreUnannotated
+public class GValveWellInspectionPhotoVo {
+
+	private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+	@ExcelProperty(value = "主键id")
+	@ApiModelProperty("主键id")
+	private Long id;
+
+    /**
+     * 抢险维修id
+     */
+	@ExcelProperty(value = "抢险维修id")
+	@ApiModelProperty("抢险维修id")
+	private Long parentId;
+
+    /**
+     * 照片
+     */
+	@ExcelProperty(value = "照片")
+	@ApiModelProperty("照片")
+	private String picUrl;
+
+
+}

+ 65 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/domain/vo/GValveWellInspectionVo.java

@@ -0,0 +1,65 @@
+package com.ruoyi.gas.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.ruoyi.gas.domain.GValveWellPosition;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+
+/**
+ * 阀井巡查视图对象 g_valve_well_inspection
+ *
+ * @author ruoyi
+ * @date 2024-03-18
+ */
+@Data
+@ApiModel("阀井巡查视图对象")
+@ExcelIgnoreUnannotated
+public class GValveWellInspectionVo {
+
+	private static final long serialVersionUID = 1L;
+
+	private List<String> photoList;
+	GValveWellPosition position;
+    /**
+     * 
+     */
+	@ExcelProperty(value = "")
+	@ApiModelProperty("")
+	private Long id;
+
+    /**
+     * 位置id
+     */
+	@ExcelProperty(value = "位置id")
+	@ApiModelProperty("位置id")
+	private Long positionId;
+
+    /**
+     * 发现问题
+     */
+	@ExcelProperty(value = "发现问题")
+	@ApiModelProperty("发现问题")
+	private String discoverProblems;
+
+    /**
+     * 发现时间
+     */
+	@ExcelProperty(value = "发现时间")
+	@ApiModelProperty("发现时间")
+	private Date discoverTime;
+
+    /**
+     * 备注
+     */
+	@ExcelProperty(value = "备注")
+	@ApiModelProperty("备注")
+	private String remark;
+
+
+}

+ 70 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/domain/vo/GValveWellPositionVo.java

@@ -0,0 +1,70 @@
+package com.ruoyi.gas.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.ruoyi.common.annotation.ExcelDictFormat;
+import com.ruoyi.common.convert.ExcelDictConvert;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.util.Date;
+
+
+
+/**
+ * 阀井位置视图对象 g_valve_well_position
+ *
+ * @author ruoyi
+ * @date 2024-03-18
+ */
+@Data
+@ApiModel("阀井位置视图对象")
+@ExcelIgnoreUnannotated
+public class GValveWellPositionVo {
+
+	private static final long serialVersionUID = 1L;
+
+    /**
+     * 
+     */
+	@ExcelProperty(value = "")
+	@ApiModelProperty("")
+	private Long id;
+
+    /**
+     * 阀井名称
+     */
+	@ExcelProperty(value = "阀井名称")
+	@ApiModelProperty("阀井名称")
+	private String valveWellName;
+
+    /**
+     * 位置
+     */
+	@ExcelProperty(value = "位置")
+	@ApiModelProperty("位置")
+	private String position;
+
+    /**
+     * 经度
+     */
+	@ExcelProperty(value = "经度")
+	@ApiModelProperty("经度")
+	private String longitude;
+
+    /**
+     * 纬度
+     */
+	@ExcelProperty(value = "纬度")
+	@ApiModelProperty("纬度")
+	private String latitude;
+
+    /**
+     * 备注
+     */
+	@ExcelProperty(value = "备注")
+	@ApiModelProperty("备注")
+	private String remark;
+
+
+}

+ 16 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/mapper/GValveWellInspectionMapper.java

@@ -0,0 +1,16 @@
+package com.ruoyi.gas.mapper;
+
+import com.ruoyi.gas.domain.GValveWellInspection;
+import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus;
+
+import java.util.List;
+
+/**
+ * 阀井巡查Mapper接口
+ *
+ * @author ruoyi
+ * @date 2024-03-18
+ */
+public interface GValveWellInspectionMapper extends BaseMapperPlus<GValveWellInspection> {
+    List<String> getPhoto(Long id);
+}

+ 18 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/mapper/GValveWellInspectionPhotoMapper.java

@@ -0,0 +1,18 @@
+package com.ruoyi.gas.mapper;
+
+import com.ruoyi.gas.domain.GValveWellInspectionPhoto;
+import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 阀井巡查照片Mapper接口
+ *
+ * @author ruoyi
+ * @date 2024-03-18
+ */
+public interface GValveWellInspectionPhotoMapper extends BaseMapperPlus<GValveWellInspectionPhoto> {
+    int deleteByUrl(@Param("parentId") Long parentId, @Param("list") List<String> list);
+
+}

+ 16 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/mapper/GValveWellPositionMapper.java

@@ -0,0 +1,16 @@
+package com.ruoyi.gas.mapper;
+
+import com.ruoyi.gas.domain.GValveWellPosition;
+import com.ruoyi.common.core.mybatisplus.core.BaseMapperPlus;
+
+import java.util.List;
+
+/**
+ * 阀井位置Mapper接口
+ *
+ * @author ruoyi
+ * @date 2024-03-18
+ */
+public interface GValveWellPositionMapper extends BaseMapperPlus<GValveWellPosition> {
+
+}

+ 59 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/service/IGValveWellInspectionPhotoService.java

@@ -0,0 +1,59 @@
+package com.ruoyi.gas.service;
+
+import com.ruoyi.gas.domain.GValveWellInspectionPhoto;
+import com.ruoyi.gas.domain.vo.GValveWellInspectionPhotoVo;
+import com.ruoyi.gas.domain.bo.GValveWellInspectionPhotoBo;
+import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 阀井巡查照片Service接口
+ *
+ * @author ruoyi
+ * @date 2024-03-18
+ */
+public interface IGValveWellInspectionPhotoService extends IServicePlus<GValveWellInspectionPhoto, GValveWellInspectionPhotoVo> {
+
+	void deleteByUrl(Long parentId, List<String> list);
+
+	/**
+	 * 查询单个
+	 * @return
+	 */
+	GValveWellInspectionPhotoVo queryById(Long id);
+
+	/**
+	 * 查询列表
+	 */
+    TableDataInfo<GValveWellInspectionPhotoVo> queryPageList(GValveWellInspectionPhotoBo bo);
+
+	/**
+	 * 查询列表
+	 */
+	List<GValveWellInspectionPhotoVo> queryList(GValveWellInspectionPhotoBo bo);
+
+	/**
+	 * 根据新增业务对象插入阀井巡查照片
+	 * @param bo 阀井巡查照片新增业务对象
+	 * @return
+	 */
+	Boolean insertByBo(GValveWellInspectionPhotoBo bo);
+
+	/**
+	 * 根据编辑业务对象修改阀井巡查照片
+	 * @param bo 阀井巡查照片编辑业务对象
+	 * @return
+	 */
+	Boolean updateByBo(GValveWellInspectionPhotoBo bo);
+
+	/**
+	 * 校验并删除数据
+	 * @param ids 主键集合
+	 * @param isValid 是否校验,true-删除前校验,false-不校验
+	 * @return
+	 */
+	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 56 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/service/IGValveWellInspectionService.java

@@ -0,0 +1,56 @@
+package com.ruoyi.gas.service;
+
+import com.ruoyi.gas.domain.GValveWellInspection;
+import com.ruoyi.gas.domain.vo.GValveWellInspectionVo;
+import com.ruoyi.gas.domain.bo.GValveWellInspectionBo;
+import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 阀井巡查Service接口
+ *
+ * @author ruoyi
+ * @date 2024-03-18
+ */
+public interface IGValveWellInspectionService extends IServicePlus<GValveWellInspection, GValveWellInspectionVo> {
+	/**
+	 * 查询单个
+	 * @return
+	 */
+	GValveWellInspectionVo queryById(Long id);
+
+	/**
+	 * 查询列表
+	 */
+    TableDataInfo<GValveWellInspectionVo> queryPageList(GValveWellInspectionBo bo);
+
+	/**
+	 * 查询列表
+	 */
+	List<GValveWellInspectionVo> queryList(GValveWellInspectionBo bo);
+
+	/**
+	 * 根据新增业务对象插入阀井巡查
+	 * @param bo 阀井巡查新增业务对象
+	 * @return
+	 */
+	Boolean insertByBo(GValveWellInspectionBo bo);
+
+	/**
+	 * 根据编辑业务对象修改阀井巡查
+	 * @param bo 阀井巡查编辑业务对象
+	 * @return
+	 */
+	Boolean updateByBo(GValveWellInspectionBo bo);
+
+	/**
+	 * 校验并删除数据
+	 * @param ids 主键集合
+	 * @param isValid 是否校验,true-删除前校验,false-不校验
+	 * @return
+	 */
+	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 56 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/service/IGValveWellPositionService.java

@@ -0,0 +1,56 @@
+package com.ruoyi.gas.service;
+
+import com.ruoyi.gas.domain.GValveWellPosition;
+import com.ruoyi.gas.domain.vo.GValveWellPositionVo;
+import com.ruoyi.gas.domain.bo.GValveWellPositionBo;
+import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 阀井位置Service接口
+ *
+ * @author ruoyi
+ * @date 2024-03-18
+ */
+public interface IGValveWellPositionService extends IServicePlus<GValveWellPosition, GValveWellPositionVo> {
+	/**
+	 * 查询单个
+	 * @return
+	 */
+	GValveWellPositionVo queryById(Long id);
+
+	/**
+	 * 查询列表
+	 */
+    TableDataInfo<GValveWellPositionVo> queryPageList(GValveWellPositionBo bo);
+
+	/**
+	 * 查询列表
+	 */
+	List<GValveWellPositionVo> queryList(GValveWellPositionBo bo);
+
+	/**
+	 * 根据新增业务对象插入阀井位置
+	 * @param bo 阀井位置新增业务对象
+	 * @return
+	 */
+	Boolean insertByBo(GValveWellPositionBo bo);
+
+	/**
+	 * 根据编辑业务对象修改阀井位置
+	 * @param bo 阀井位置编辑业务对象
+	 * @return
+	 */
+	Boolean updateByBo(GValveWellPositionBo bo);
+
+	/**
+	 * 校验并删除数据
+	 * @param ids 主键集合
+	 * @param isValid 是否校验,true-删除前校验,false-不校验
+	 * @return
+	 */
+	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 92 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/service/impl/GValveWellInspectionPhotoServiceImpl.java

@@ -0,0 +1,92 @@
+package com.ruoyi.gas.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.PageUtils;
+import com.ruoyi.common.core.page.PagePlus;
+import com.ruoyi.common.core.page.TableDataInfo;
+import org.springframework.stereotype.Service;
+import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.gas.domain.bo.GValveWellInspectionPhotoBo;
+import com.ruoyi.gas.domain.vo.GValveWellInspectionPhotoVo;
+import com.ruoyi.gas.domain.GValveWellInspectionPhoto;
+import com.ruoyi.gas.mapper.GValveWellInspectionPhotoMapper;
+import com.ruoyi.gas.service.IGValveWellInspectionPhotoService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 阀井巡查照片Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2024-03-18
+ */
+@Service
+public class GValveWellInspectionPhotoServiceImpl extends ServicePlusImpl<GValveWellInspectionPhotoMapper, GValveWellInspectionPhoto, GValveWellInspectionPhotoVo> implements IGValveWellInspectionPhotoService {
+
+    @Override
+    public GValveWellInspectionPhotoVo queryById(Long id){
+        return getVoById(id);
+    }
+    @Override
+    public void deleteByUrl(Long parentId, List<String> list) {
+        baseMapper.deleteByUrl(parentId,list);
+    }
+    @Override
+    public TableDataInfo<GValveWellInspectionPhotoVo> queryPageList(GValveWellInspectionPhotoBo bo) {
+        PagePlus<GValveWellInspectionPhoto, GValveWellInspectionPhotoVo> result = pageVo(PageUtils.buildPagePlus(), buildQueryWrapper(bo));
+        return PageUtils.buildDataInfo(result);
+    }
+
+    @Override
+    public List<GValveWellInspectionPhotoVo> queryList(GValveWellInspectionPhotoBo bo) {
+        return listVo(buildQueryWrapper(bo));
+    }
+
+    private LambdaQueryWrapper<GValveWellInspectionPhoto> buildQueryWrapper(GValveWellInspectionPhotoBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<GValveWellInspectionPhoto> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getParentId() != null, GValveWellInspectionPhoto::getParentId, bo.getParentId());
+        lqw.eq(StringUtils.isNotBlank(bo.getPicUrl()), GValveWellInspectionPhoto::getPicUrl, bo.getPicUrl());
+        return lqw;
+    }
+
+    @Override
+    public Boolean insertByBo(GValveWellInspectionPhotoBo bo) {
+        GValveWellInspectionPhoto add = BeanUtil.toBean(bo, GValveWellInspectionPhoto.class);
+        validEntityBeforeSave(add);
+        boolean flag = save(add);
+        if (flag) {
+            bo.setId(add.getId());
+        }
+        return flag;
+    }
+
+    @Override
+    public Boolean updateByBo(GValveWellInspectionPhotoBo bo) {
+        GValveWellInspectionPhoto update = BeanUtil.toBean(bo, GValveWellInspectionPhoto.class);
+        validEntityBeforeSave(update);
+        return updateById(update);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(GValveWellInspectionPhoto entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return removeByIds(ids);
+    }
+}

+ 142 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/service/impl/GValveWellInspectionServiceImpl.java

@@ -0,0 +1,142 @@
+package com.ruoyi.gas.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
+import com.ruoyi.common.core.page.PagePlus;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.utils.PageUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.gas.domain.GValveWellInspection;
+import com.ruoyi.gas.domain.bo.GValveWellInspectionBo;
+import com.ruoyi.gas.domain.bo.GValveWellInspectionPhotoBo;
+import com.ruoyi.gas.domain.vo.GValveWellInspectionVo;
+import com.ruoyi.gas.mapper.GValveWellInspectionMapper;
+import com.ruoyi.gas.mapper.GValveWellPositionMapper;
+import com.ruoyi.gas.service.IGValveWellInspectionPhotoService;
+import com.ruoyi.gas.service.IGValveWellInspectionService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * 阀井巡查Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2024-03-18
+ */
+@Service
+@RequiredArgsConstructor
+public class GValveWellInspectionServiceImpl extends ServicePlusImpl<GValveWellInspectionMapper, GValveWellInspection, GValveWellInspectionVo> implements IGValveWellInspectionService {
+
+    private final GValveWellPositionMapper  positionMapper;
+
+    @Override
+    public GValveWellInspectionVo queryById(Long id){
+        GValveWellInspectionVo voById = getVoById(id);
+        voById.setPhotoList(baseMapper.getPhoto(voById.getId()));
+        voById.setPosition(positionMapper.selectById(voById.getPositionId()));
+        return voById;
+    }
+
+    @Override
+    public TableDataInfo<GValveWellInspectionVo> queryPageList(GValveWellInspectionBo bo) {
+        PagePlus<GValveWellInspection, GValveWellInspectionVo> result = pageVo(PageUtils.buildPagePlus(), buildQueryWrapper(bo));
+        TableDataInfo<GValveWellInspectionVo> tableDataInfo = PageUtils.buildDataInfo(result);
+        tableDataInfo.getRows().forEach(item -> {
+            item.setPhotoList(baseMapper.getPhoto(item.getId()));
+            item.setPosition(positionMapper.selectById(item.getPositionId()));
+        });
+        return tableDataInfo;
+    }
+
+    @Override
+    public List<GValveWellInspectionVo> queryList(GValveWellInspectionBo bo) {
+        return listVo(buildQueryWrapper(bo));
+    }
+
+    private LambdaQueryWrapper<GValveWellInspection> buildQueryWrapper(GValveWellInspectionBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<GValveWellInspection> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getPositionId() != null, GValveWellInspection::getPositionId, bo.getPositionId());
+        lqw.eq(StringUtils.isNotBlank(bo.getDiscoverProblems()), GValveWellInspection::getDiscoverProblems, bo.getDiscoverProblems());
+        lqw.eq(bo.getDiscoverTime() != null, GValveWellInspection::getDiscoverTime, bo.getDiscoverTime());
+        return lqw;
+    }
+    @Autowired
+    private IGValveWellInspectionPhotoService service;
+    @Override
+    public Boolean insertByBo(GValveWellInspectionBo bo) {
+        GValveWellInspection add = BeanUtil.toBean(bo, GValveWellInspection.class);
+        validEntityBeforeSave(add);
+        boolean flag = save(add);
+        if (flag) {
+            bo.setId(add.getId());
+            //添加照片
+            List<String> piclist = bo.getPhotoList();
+            if (piclist != null) {
+                for (int i = 0; i < bo.getPhotoList().size(); i++) {
+                    GValveWellInspectionPhotoBo photo = new GValveWellInspectionPhotoBo();
+                    photo.setParentId(bo.getId());
+                    photo.setPicUrl(bo.getPhotoList().get(i));
+                    service.insertByBo(photo);
+                }
+            }
+        }
+        return flag;
+    }
+
+    @Override
+    public Boolean updateByBo(GValveWellInspectionBo bo) {
+        GValveWellInspection update = BeanUtil.toBean(bo, GValveWellInspection.class);
+        validEntityBeforeSave(update);
+        List<String> piclist = bo.getPhotoList();
+        if (piclist != null) {
+            //原有的照片
+            List<String> photolist = baseMapper.getPhoto(bo.getId());
+            //原有的照片不在新传的照片里
+            List<String> dellist = photolist.stream().filter(i -> !piclist.contains(i)).collect(Collectors.toList());
+            //删除照片
+            if (dellist.size() > 0) {
+                service.deleteByUrl(bo.getId(), dellist);
+            }
+            //新传的照片不在原有的照片里
+            List<String> inslist = piclist.stream().filter(i -> !photolist.contains(i)).collect(Collectors.toList());
+            if (inslist.size() > 0) {
+                for (int i = 0; i < inslist.size(); i++) {
+                    if (StringUtils.isNotEmpty(inslist.get(i))) {
+                        //添加照片
+                        GValveWellInspectionPhotoBo photo = new GValveWellInspectionPhotoBo();
+                        photo.setParentId(bo.getId());
+                        photo.setPicUrl(inslist.get(i));
+                        service.insertByBo(photo);
+                    }
+                }
+            }
+        }
+        return updateById(update);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(GValveWellInspection entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return removeByIds(ids);
+    }
+}

+ 91 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/service/impl/GValveWellPositionServiceImpl.java

@@ -0,0 +1,91 @@
+package com.ruoyi.gas.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.PageUtils;
+import com.ruoyi.common.core.page.PagePlus;
+import com.ruoyi.common.core.page.TableDataInfo;
+import org.springframework.stereotype.Service;
+import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.gas.domain.bo.GValveWellPositionBo;
+import com.ruoyi.gas.domain.vo.GValveWellPositionVo;
+import com.ruoyi.gas.domain.GValveWellPosition;
+import com.ruoyi.gas.mapper.GValveWellPositionMapper;
+import com.ruoyi.gas.service.IGValveWellPositionService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 阀井位置Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2024-03-18
+ */
+@Service
+public class GValveWellPositionServiceImpl extends ServicePlusImpl<GValveWellPositionMapper, GValveWellPosition, GValveWellPositionVo> implements IGValveWellPositionService {
+
+    @Override
+    public GValveWellPositionVo queryById(Long id){
+        return getVoById(id);
+    }
+
+    @Override
+    public TableDataInfo<GValveWellPositionVo> queryPageList(GValveWellPositionBo bo) {
+        PagePlus<GValveWellPosition, GValveWellPositionVo> result = pageVo(PageUtils.buildPagePlus(), buildQueryWrapper(bo));
+        return PageUtils.buildDataInfo(result);
+    }
+
+    @Override
+    public List<GValveWellPositionVo> queryList(GValveWellPositionBo bo) {
+        return listVo(buildQueryWrapper(bo));
+    }
+
+    private LambdaQueryWrapper<GValveWellPosition> buildQueryWrapper(GValveWellPositionBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<GValveWellPosition> lqw = Wrappers.lambdaQuery();
+        lqw.like(StringUtils.isNotBlank(bo.getValveWellName()), GValveWellPosition::getValveWellName, bo.getValveWellName());
+        lqw.eq(StringUtils.isNotBlank(bo.getPosition()), GValveWellPosition::getPosition, bo.getPosition());
+        lqw.eq(StringUtils.isNotBlank(bo.getLongitude()), GValveWellPosition::getLongitude, bo.getLongitude());
+        lqw.eq(StringUtils.isNotBlank(bo.getLatitude()), GValveWellPosition::getLatitude, bo.getLatitude());
+        return lqw;
+    }
+
+    @Override
+    public Boolean insertByBo(GValveWellPositionBo bo) {
+        GValveWellPosition add = BeanUtil.toBean(bo, GValveWellPosition.class);
+        validEntityBeforeSave(add);
+        boolean flag = save(add);
+        if (flag) {
+            bo.setId(add.getId());
+        }
+        return flag;
+    }
+
+    @Override
+    public Boolean updateByBo(GValveWellPositionBo bo) {
+        GValveWellPosition update = BeanUtil.toBean(bo, GValveWellPosition.class);
+        validEntityBeforeSave(update);
+        return updateById(update);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(GValveWellPosition entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return removeByIds(ids);
+    }
+}

+ 27 - 0
ruoyi-gas/src/main/resources/mapper/GValveWellInspectionMapper.xml

@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.gas.mapper.GValveWellInspectionMapper">
+
+    <resultMap type="com.ruoyi.gas.domain.GValveWellInspection" id="GValveWellInspectionResult">
+        <result property="id" column="id"/>
+        <result property="positionId" column="position_id"/>
+        <result property="discoverProblems" column="discover_problems"/>
+        <result property="discoverTime" column="discover_time"/>
+        <result property="remark" column="remark"/>
+        <result property="delFlag" column="del_flag"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+    </resultMap>
+
+    <select id="getPhoto" resultType="java.lang.String">
+        select pic_url AS picUrl
+        from g_valve_well_inspection_photo
+        where parent_id = #{id}
+          and del_flag = '0'
+    </select>
+
+</mapper>

+ 26 - 0
ruoyi-gas/src/main/resources/mapper/GValveWellInspectionPhotoMapper.xml

@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.gas.mapper.GValveWellInspectionPhotoMapper">
+
+    <resultMap type="com.ruoyi.gas.domain.GValveWellInspectionPhoto" id="GValveWellInspectionPhotoResult">
+        <result property="id" column="id"/>
+        <result property="parentId" column="parent_id"/>
+        <result property="picUrl" column="pic_url"/>
+        <result property="delFlag" column="del_flag"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+    </resultMap>
+
+    <delete id="deleteByUrl" parameterType="String">
+        delete from g_road_section_inspection_photo where parent_id = #{parentId}
+        and pic_url in
+        <foreach item="item" index="index" collection="list" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+    </delete>
+
+</mapper>

+ 22 - 0
ruoyi-gas/src/main/resources/mapper/GValveWellPositionMapper.xml

@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.gas.mapper.GValveWellPositionMapper">
+
+    <resultMap type="com.ruoyi.gas.domain.GValveWellPosition" id="GValveWellPositionResult">
+        <result property="id" column="id"/>
+        <result property="valveWellName" column="valve_well_name"/>
+        <result property="position" column="position"/>
+        <result property="longitude" column="longitude"/>
+        <result property="latitude" column="latitude"/>
+        <result property="remark" column="remark"/>
+        <result property="delFlag" column="del_flag"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+    </resultMap>
+
+
+</mapper>