JX.Li 1 år sedan
förälder
incheckning
1fe1bc17a9
16 ändrade filer med 1017 tillägg och 0 borttagningar
  1. 113 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/gas/GRoadSectionInspectionController.java
  2. 80 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/mobile/MRoadSectionInspectionController.java
  3. 59 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/domain/GRoadSectionInspection.java
  4. 45 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/domain/GRoadSectionInspectionPhoto.java
  5. 92 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/domain/bo/GRoadSectionInspectionBo.java
  6. 72 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/domain/bo/GRoadSectionInspectionPhotoBo.java
  7. 49 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/domain/vo/GRoadSectionInspectionPhotoVo.java
  8. 73 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/domain/vo/GRoadSectionInspectionVo.java
  9. 16 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/mapper/GRoadSectionInspectionMapper.java
  10. 18 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/mapper/GRoadSectionInspectionPhotoMapper.java
  11. 59 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/service/IGRoadSectionInspectionPhotoService.java
  12. 56 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/service/IGRoadSectionInspectionService.java
  13. 94 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/service/impl/GRoadSectionInspectionPhotoServiceImpl.java
  14. 136 0
      ruoyi-gas/src/main/java/com/ruoyi/gas/service/impl/GRoadSectionInspectionServiceImpl.java
  15. 29 0
      ruoyi-gas/src/main/resources/mapper/GRoadSectionInspectionMapper.xml
  16. 26 0
      ruoyi-gas/src/main/resources/mapper/GRoadSectionInspectionPhotoMapper.xml

+ 113 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/gas/GRoadSectionInspectionController.java

@@ -0,0 +1,113 @@
+package com.ruoyi.web.controller.gas;
+
+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.GRoadSectionInspectionBo;
+import com.ruoyi.gas.domain.vo.GRoadSectionInspectionVo;
+import com.ruoyi.gas.service.IGRoadSectionInspectionService;
+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-06
+ */
+@Validated
+@Api(value = "路段巡查控制器", tags = {"路段巡查管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/gas/roadSectionInspection")
+public class GRoadSectionInspectionController extends BaseController {
+
+    private final IGRoadSectionInspectionService iGRoadSectionInspectionService;
+
+    /**
+     * 查询路段巡查列表
+     */
+    @ApiOperation("查询路段巡查列表")
+    @PreAuthorize("@ss.hasPermi('gas:roadSectionInspection:list')")
+    @GetMapping("/list")
+    public TableDataInfo<GRoadSectionInspectionVo> list(@Validated(QueryGroup.class) GRoadSectionInspectionBo bo) {
+        return iGRoadSectionInspectionService.queryPageList(bo);
+    }
+
+    /**
+     * 导出路段巡查列表
+     */
+    @ApiOperation("导出路段巡查列表")
+    @PreAuthorize("@ss.hasPermi('gas:roadSectionInspection:export')")
+    @Log(title = "路段巡查", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public void export(@Validated GRoadSectionInspectionBo bo, HttpServletResponse response) {
+        List<GRoadSectionInspectionVo> list = iGRoadSectionInspectionService.queryList(bo);
+        ExcelUtil.exportExcel(list, "路段巡查", GRoadSectionInspectionVo.class, response);
+    }
+
+    /**
+     * 获取路段巡查详细信息
+     */
+    @ApiOperation("获取路段巡查详细信息")
+    @PreAuthorize("@ss.hasPermi('gas:roadSectionInspection:query')")
+    @GetMapping("/{id}")
+    public AjaxResult<GRoadSectionInspectionVo> getInfo(@NotNull(message = "主键不能为空")
+                                                  @PathVariable("id") Long id) {
+        return AjaxResult.success(iGRoadSectionInspectionService.queryById(id));
+    }
+
+    /**
+     * 新增路段巡查
+     */
+    @ApiOperation("新增路段巡查")
+    @PreAuthorize("@ss.hasPermi('gas:roadSectionInspection:add')")
+    @Log(title = "路段巡查", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping()
+    public AjaxResult<Void> add(@Validated(AddGroup.class) @RequestBody GRoadSectionInspectionBo bo) {
+        return toAjax(iGRoadSectionInspectionService.insertByBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 修改路段巡查
+     */
+    @ApiOperation("修改路段巡查")
+    @PreAuthorize("@ss.hasPermi('gas:roadSectionInspection:edit')")
+    @Log(title = "路段巡查", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping()
+    public AjaxResult<Void> edit(@Validated(EditGroup.class) @RequestBody GRoadSectionInspectionBo bo) {
+        return toAjax(iGRoadSectionInspectionService.updateByBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 删除路段巡查
+     */
+    @ApiOperation("删除路段巡查")
+    @PreAuthorize("@ss.hasPermi('gas:roadSectionInspection:remove')")
+    @Log(title = "路段巡查" , businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult<Void> remove(@NotEmpty(message = "主键不能为空")
+                                       @PathVariable Long[] ids) {
+        return toAjax(iGRoadSectionInspectionService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0);
+    }
+}

+ 80 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/mobile/MRoadSectionInspectionController.java

@@ -0,0 +1,80 @@
+package com.ruoyi.web.controller.mobile;
+
+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.gas.domain.bo.GRoadSectionInspectionBo;
+import com.ruoyi.gas.domain.vo.GRoadSectionInspectionVo;
+import com.ruoyi.gas.service.IGRoadSectionInspectionService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * 路段巡查Controller
+ *
+ * @author ruoyi
+ * @date 2024-03-06
+ */
+@Validated
+@Api(value = "路段巡查控制器", tags = {"路段巡查管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/mobile/roadSectionInspection")
+public class MRoadSectionInspectionController extends BaseController {
+
+    private final IGRoadSectionInspectionService iGRoadSectionInspectionService;
+
+    /**
+     * 查询路段巡查列表
+     */
+    @ApiOperation("查询路段巡查列表")
+    @GetMapping("/list")
+    public TableDataInfo<GRoadSectionInspectionVo> list(@Validated(QueryGroup.class) GRoadSectionInspectionBo bo) {
+        return iGRoadSectionInspectionService.queryPageList(bo);
+    }
+
+    /**
+     * 获取路段巡查详细信息
+     */
+    @ApiOperation("获取路段巡查详细信息")
+    @GetMapping("/{id}")
+    public AjaxResult<GRoadSectionInspectionVo> getInfo(@NotNull(message = "主键不能为空")
+                                                  @PathVariable("id") Long id) {
+        return AjaxResult.success(iGRoadSectionInspectionService.queryById(id));
+    }
+
+    /**
+     * 新增路段巡查
+     */
+    @ApiOperation("新增路段巡查")
+    @Log(title = "路段巡查", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping()
+    public AjaxResult<Void> add(@Validated(AddGroup.class) @RequestBody GRoadSectionInspectionBo bo) {
+        return toAjax(iGRoadSectionInspectionService.insertByBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 修改路段巡查
+     */
+    @ApiOperation("修改路段巡查")
+    @Log(title = "路段巡查", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping()
+    public AjaxResult<Void> edit(@Validated(EditGroup.class) @RequestBody GRoadSectionInspectionBo bo) {
+        return toAjax(iGRoadSectionInspectionService.updateByBo(bo) ? 1 : 0);
+    }
+
+}

+ 59 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/domain/GRoadSectionInspection.java

@@ -0,0 +1,59 @@
+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_road_section_inspection
+ *
+ * @author ruoyi
+ * @date 2024-03-06
+ */
+@Data
+@Accessors(chain = true)
+@TableName("g_road_section_inspection")
+public class GRoadSectionInspection extends BaseEntity {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id")
+    private Long id;
+    /**
+     * 路段名称
+     */
+    private String sectionName;
+    /**
+     * 抽检米数
+     */
+    private String samplingMeterCount;
+    /**
+     * 发现问题
+     */
+    private String findProblem;
+    /**
+     * 发现时间
+     */
+    private Date findTime;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 删除标志
+     */
+    @TableLogic
+    private String delFlag;
+
+}

+ 45 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/domain/GRoadSectionInspectionPhoto.java

@@ -0,0 +1,45 @@
+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_road_section_inspection_photo
+ *
+ * @author ruoyi
+ * @date 2024-03-06
+ */
+@Data
+@Accessors(chain = true)
+@TableName("g_road_section_inspection_photo")
+public class GRoadSectionInspectionPhoto 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;
+
+}

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

@@ -0,0 +1,92 @@
+package com.ruoyi.gas.domain.bo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.domain.BaseEntity;
+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.NotNull;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 路段巡查业务对象 g_road_section_inspection
+ *
+ * @author ruoyi
+ * @date 2024-03-06
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("路段巡查业务对象")
+public class GRoadSectionInspectionBo extends BaseEntity {
+
+    private List<String> photoList;
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id", required = true)
+    @NotNull(message = "主键id不能为空", groups = { EditGroup.class })
+    private Long id;
+
+    /**
+     * 路段名称
+     */
+    @ApiModelProperty(value = "路段名称", required = true)
+    private String sectionName;
+
+    /**
+     * 抽检米数
+     */
+    @ApiModelProperty(value = "抽检米数", required = true)
+    private String samplingMeterCount;
+
+    /**
+     * 发现问题
+     */
+    @ApiModelProperty(value = "发现问题", required = true)
+    private String findProblem;
+
+    /**
+     * 发现时间
+     */
+    @ApiModelProperty(value = "发现时间", required = true)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
+    private Date findTime;
+
+    /**
+     * 备注
+     */
+    @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/GRoadSectionInspectionPhotoBo.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_road_section_inspection_photo
+ *
+ * @author ruoyi
+ * @date 2024-03-06
+ */
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("路段巡查照片业务对象")
+public class GRoadSectionInspectionPhotoBo 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;
+
+}

+ 49 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/domain/vo/GRoadSectionInspectionPhotoVo.java

@@ -0,0 +1,49 @@
+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_road_section_inspection_photo
+ *
+ * @author ruoyi
+ * @date 2024-03-06
+ */
+@Data
+@ApiModel("路段巡查照片视图对象")
+@ExcelIgnoreUnannotated
+public class GRoadSectionInspectionPhotoVo {
+
+	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;
+
+
+}

+ 73 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/domain/vo/GRoadSectionInspectionVo.java

@@ -0,0 +1,73 @@
+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;
+import java.util.List;
+
+
+/**
+ * 路段巡查视图对象 g_road_section_inspection
+ *
+ * @author ruoyi
+ * @date 2024-03-06
+ */
+@Data
+@ApiModel("路段巡查视图对象")
+@ExcelIgnoreUnannotated
+public class GRoadSectionInspectionVo {
+
+	private static final long serialVersionUID = 1L;
+
+	private List<String> photoList;
+    /**
+     * 主键id
+     */
+	@ExcelProperty(value = "主键id")
+	@ApiModelProperty("主键id")
+	private Long id;
+
+    /**
+     * 路段名称
+     */
+	@ExcelProperty(value = "路段名称")
+	@ApiModelProperty("路段名称")
+	private String sectionName;
+
+    /**
+     * 抽检米数
+     */
+	@ExcelProperty(value = "抽检米数")
+	@ApiModelProperty("抽检米数")
+	private String samplingMeterCount;
+
+    /**
+     * 发现问题
+     */
+    @ExcelProperty(value = "发现问题", converter = ExcelDictConvert.class)
+    @ExcelDictFormat(dictType = "find_problem")
+	@ApiModelProperty("发现问题")
+	private String findProblem;
+
+    /**
+     * 发现时间
+     */
+	@ExcelProperty(value = "发现时间")
+	@ApiModelProperty("发现时间")
+	private Date findTime;
+
+    /**
+     * 备注
+     */
+	@ExcelProperty(value = "备注")
+	@ApiModelProperty("备注")
+	private String remark;
+
+
+}

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

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

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

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

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

@@ -0,0 +1,59 @@
+package com.ruoyi.gas.service;
+
+import com.ruoyi.gas.domain.GRoadSectionInspectionPhoto;
+import com.ruoyi.gas.domain.vo.GRoadSectionInspectionPhotoVo;
+import com.ruoyi.gas.domain.bo.GRoadSectionInspectionPhotoBo;
+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-06
+ */
+public interface IGRoadSectionInspectionPhotoService extends IServicePlus<GRoadSectionInspectionPhoto, GRoadSectionInspectionPhotoVo> {
+
+	void deleteByUrl(Long parentId, List<String> list);
+
+	/**
+	 * 查询单个
+	 * @return
+	 */
+	GRoadSectionInspectionPhotoVo queryById(Long id);
+
+	/**
+	 * 查询列表
+	 */
+    TableDataInfo<GRoadSectionInspectionPhotoVo> queryPageList(GRoadSectionInspectionPhotoBo bo);
+
+	/**
+	 * 查询列表
+	 */
+	List<GRoadSectionInspectionPhotoVo> queryList(GRoadSectionInspectionPhotoBo bo);
+
+	/**
+	 * 根据新增业务对象插入路段巡查照片
+	 * @param bo 路段巡查照片新增业务对象
+	 * @return
+	 */
+	Boolean insertByBo(GRoadSectionInspectionPhotoBo bo);
+
+	/**
+	 * 根据编辑业务对象修改路段巡查照片
+	 * @param bo 路段巡查照片编辑业务对象
+	 * @return
+	 */
+	Boolean updateByBo(GRoadSectionInspectionPhotoBo 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/IGRoadSectionInspectionService.java

@@ -0,0 +1,56 @@
+package com.ruoyi.gas.service;
+
+import com.ruoyi.gas.domain.GRoadSectionInspection;
+import com.ruoyi.gas.domain.vo.GRoadSectionInspectionVo;
+import com.ruoyi.gas.domain.bo.GRoadSectionInspectionBo;
+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-06
+ */
+public interface IGRoadSectionInspectionService extends IServicePlus<GRoadSectionInspection, GRoadSectionInspectionVo> {
+	/**
+	 * 查询单个
+	 * @return
+	 */
+	GRoadSectionInspectionVo queryById(Long id);
+
+	/**
+	 * 查询列表
+	 */
+    TableDataInfo<GRoadSectionInspectionVo> queryPageList(GRoadSectionInspectionBo bo);
+
+	/**
+	 * 查询列表
+	 */
+	List<GRoadSectionInspectionVo> queryList(GRoadSectionInspectionBo bo);
+
+	/**
+	 * 根据新增业务对象插入路段巡查
+	 * @param bo 路段巡查新增业务对象
+	 * @return
+	 */
+	Boolean insertByBo(GRoadSectionInspectionBo bo);
+
+	/**
+	 * 根据编辑业务对象修改路段巡查
+	 * @param bo 路段巡查编辑业务对象
+	 * @return
+	 */
+	Boolean updateByBo(GRoadSectionInspectionBo bo);
+
+	/**
+	 * 校验并删除数据
+	 * @param ids 主键集合
+	 * @param isValid 是否校验,true-删除前校验,false-不校验
+	 * @return
+	 */
+	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 94 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/service/impl/GRoadSectionInspectionPhotoServiceImpl.java

@@ -0,0 +1,94 @@
+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.GRoadSectionInspectionPhotoBo;
+import com.ruoyi.gas.domain.vo.GRoadSectionInspectionPhotoVo;
+import com.ruoyi.gas.domain.GRoadSectionInspectionPhoto;
+import com.ruoyi.gas.mapper.GRoadSectionInspectionPhotoMapper;
+import com.ruoyi.gas.service.IGRoadSectionInspectionPhotoService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 路段巡查照片Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2024-03-06
+ */
+@Service
+public class GRoadSectionInspectionPhotoServiceImpl extends ServicePlusImpl<GRoadSectionInspectionPhotoMapper, GRoadSectionInspectionPhoto, GRoadSectionInspectionPhotoVo> implements IGRoadSectionInspectionPhotoService {
+
+    @Override
+    public GRoadSectionInspectionPhotoVo queryById(Long id) {
+        return getVoById(id);
+    }
+
+    @Override
+    public void deleteByUrl(Long parentId, List<String> list) {
+        baseMapper.deleteByUrl(parentId,list);
+    }
+
+    @Override
+    public TableDataInfo<GRoadSectionInspectionPhotoVo> queryPageList(GRoadSectionInspectionPhotoBo bo) {
+        PagePlus<GRoadSectionInspectionPhoto, GRoadSectionInspectionPhotoVo> result = pageVo(PageUtils.buildPagePlus(), buildQueryWrapper(bo));
+        return PageUtils.buildDataInfo(result);
+    }
+
+    @Override
+    public List<GRoadSectionInspectionPhotoVo> queryList(GRoadSectionInspectionPhotoBo bo) {
+        return listVo(buildQueryWrapper(bo));
+    }
+
+    private LambdaQueryWrapper<GRoadSectionInspectionPhoto> buildQueryWrapper(GRoadSectionInspectionPhotoBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<GRoadSectionInspectionPhoto> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getParentId() != null, GRoadSectionInspectionPhoto::getParentId, bo.getParentId());
+        lqw.eq(StringUtils.isNotBlank(bo.getPicUrl()), GRoadSectionInspectionPhoto::getPicUrl, bo.getPicUrl());
+        return lqw;
+    }
+
+    @Override
+    public Boolean insertByBo(GRoadSectionInspectionPhotoBo bo) {
+        GRoadSectionInspectionPhoto add = BeanUtil.toBean(bo, GRoadSectionInspectionPhoto.class);
+        validEntityBeforeSave(add);
+        boolean flag = save(add);
+        if (flag) {
+            bo.setId(add.getId());
+        }
+        return flag;
+    }
+
+    @Override
+    public Boolean updateByBo(GRoadSectionInspectionPhotoBo bo) {
+        GRoadSectionInspectionPhoto update = BeanUtil.toBean(bo, GRoadSectionInspectionPhoto.class);
+        validEntityBeforeSave(update);
+        return updateById(update);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(GRoadSectionInspectionPhoto entity) {
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if (isValid) {
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return removeByIds(ids);
+    }
+}

+ 136 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/service/impl/GRoadSectionInspectionServiceImpl.java

@@ -0,0 +1,136 @@
+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.GRoadSectionInspection;
+import com.ruoyi.gas.domain.bo.GRoadSectionInspectionBo;
+import com.ruoyi.gas.domain.bo.GRoadSectionInspectionPhotoBo;
+import com.ruoyi.gas.domain.vo.GRoadSectionInspectionVo;
+import com.ruoyi.gas.mapper.GRoadSectionInspectionMapper;
+import com.ruoyi.gas.service.IGRoadSectionInspectionPhotoService;
+import com.ruoyi.gas.service.IGRoadSectionInspectionService;
+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-06
+ */
+@Service
+public class GRoadSectionInspectionServiceImpl extends ServicePlusImpl<GRoadSectionInspectionMapper, GRoadSectionInspection, GRoadSectionInspectionVo> implements IGRoadSectionInspectionService {
+
+    @Override
+    public GRoadSectionInspectionVo queryById(Long id) {
+        GRoadSectionInspectionVo voById = getVoById(id);
+        voById.setPhotoList(baseMapper.getPhoto(voById.getId()));
+        return voById;
+    }
+
+    @Override
+    public TableDataInfo<GRoadSectionInspectionVo> queryPageList(GRoadSectionInspectionBo bo) {
+        PagePlus<GRoadSectionInspection, GRoadSectionInspectionVo> result = pageVo(PageUtils.buildPagePlus(), buildQueryWrapper(bo));
+        TableDataInfo<GRoadSectionInspectionVo> tableDataInfo = PageUtils.buildDataInfo(result);
+        tableDataInfo.getRows().forEach(item -> item.setPhotoList(baseMapper.getPhoto(item.getId())));
+        return tableDataInfo;
+    }
+
+    @Override
+    public List<GRoadSectionInspectionVo> queryList(GRoadSectionInspectionBo bo) {
+        return listVo(buildQueryWrapper(bo));
+    }
+
+    private LambdaQueryWrapper<GRoadSectionInspection> buildQueryWrapper(GRoadSectionInspectionBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<GRoadSectionInspection> lqw = Wrappers.lambdaQuery();
+        lqw.like(StringUtils.isNotBlank(bo.getSectionName()), GRoadSectionInspection::getSectionName, bo.getSectionName());
+        lqw.eq(StringUtils.isNotBlank(bo.getSamplingMeterCount()), GRoadSectionInspection::getSamplingMeterCount, bo.getSamplingMeterCount());
+        lqw.eq(StringUtils.isNotBlank(bo.getFindProblem()), GRoadSectionInspection::getFindProblem, bo.getFindProblem());
+        lqw.eq(bo.getFindTime() != null, GRoadSectionInspection::getFindTime, bo.getFindTime());
+        return lqw;
+    }
+
+    @Autowired
+    private IGRoadSectionInspectionPhotoService service;
+
+    @Override
+    public Boolean insertByBo(GRoadSectionInspectionBo bo) {
+        GRoadSectionInspection add = BeanUtil.toBean(bo, GRoadSectionInspection.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++) {
+                    GRoadSectionInspectionPhotoBo photo = new GRoadSectionInspectionPhotoBo();
+                    photo.setParentId(bo.getId());
+                    photo.setPicUrl(bo.getPhotoList().get(i));
+                    service.insertByBo(photo);
+                }
+            }
+        }
+        return flag;
+    }
+
+    @Override
+    public Boolean updateByBo(GRoadSectionInspectionBo bo) {
+        GRoadSectionInspection update = BeanUtil.toBean(bo, GRoadSectionInspection.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))) {
+                        //添加照片
+                        GRoadSectionInspectionPhotoBo photo = new GRoadSectionInspectionPhotoBo();
+                        photo.setParentId(bo.getId());
+                        photo.setPicUrl(inslist.get(i));
+                        service.insertByBo(photo);
+                    }
+                }
+            }
+        }
+        return updateById(update);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(GRoadSectionInspection entity) {
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if (isValid) {
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return removeByIds(ids);
+    }
+}

+ 29 - 0
ruoyi-gas/src/main/resources/mapper/GRoadSectionInspectionMapper.xml

@@ -0,0 +1,29 @@
+<?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.GRoadSectionInspectionMapper">
+
+    <resultMap type="com.ruoyi.gas.domain.GRoadSectionInspection" id="GRoadSectionInspectionResult">
+        <result property="id" column="id"/>
+        <result property="sectionName" column="section_name"/>
+        <result property="samplingMeterCount" column="sampling_meter_count"/>
+        <result property="findProblem" column="find_problem"/>
+        <result property="findTime" column="find_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_road_section_inspection_photo
+        where parent_id = #{id}
+          and del_flag = '0'
+    </select>
+
+</mapper>

+ 26 - 0
ruoyi-gas/src/main/resources/mapper/GRoadSectionInspectionPhotoMapper.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.GRoadSectionInspectionPhotoMapper">
+
+    <resultMap type="com.ruoyi.gas.domain.GRoadSectionInspectionPhoto" id="GRoadSectionInspectionPhotoResult">
+        <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>