浏览代码

Merge remote-tracking branch 'origin/zdsz3.0' into zdsz3.0

wangtong 1 年之前
父节点
当前提交
1744da1608
共有 29 个文件被更改,包括 625 次插入193 次删除
  1. 9 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java
  2. 12 13
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/zdsz/ZEngineeringDangerousController.java
  3. 10 1
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/zdsz/ZEngineeringIndustryController.java
  4. 3 1
      ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictDataMapper.java
  5. 5 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictDataService.java
  6. 6 0
      ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java
  7. 96 3
      ruoyi-system/src/main/resources/mapper/system/SysDictDataMapper.xml
  8. 3 3
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/ZEngineeringDangerous.java
  9. 20 9
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/bo/ZEngineeringDangerousBo.java
  10. 6 2
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/bo/ZEngineeringIndustryBo.java
  11. 10 0
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/bo/ZEngineeringInfrastructureBo.java
  12. 6 0
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/bo/ZEngineeringNodeBo.java
  13. 12 0
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/bo/ZEngineeringPipeJackingBo.java
  14. 24 0
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/bo/ZFileBo.java
  15. 16 3
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/vo/ZEngineeringDangerousVo.java
  16. 13 2
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/vo/ZEngineeringIndustryVo.java
  17. 1 0
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/vo/ZEngineeringPipeJackingVo.java
  18. 1 1
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/mapper/ZEngineeringDangerousMapper.java
  19. 1 1
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/mapper/ZEngineeringPipeJackingMapper.java
  20. 4 4
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/IZEngineeringDangerousService.java
  21. 1 0
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/IZEngineeringIndustryService.java
  22. 2 2
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/impl/ZComprehensiveServiceImpl.java
  23. 3 3
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/impl/ZEngiineeringPhotoServiceImpl.java
  24. 93 76
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/impl/ZEngineeringDangerousServiceImpl.java
  25. 94 16
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/impl/ZEngineeringIndustryServiceImpl.java
  26. 56 9
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/impl/ZEngineeringInfrastructureServiceImpl.java
  27. 113 43
      ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/impl/ZEngineeringPipeJackingServiceImpl.java
  28. 4 0
      ruoyi-zdsz/src/main/resources/mapper/zdsz/ZEngineeringDangerousMapper.xml
  29. 1 1
      ruoyi-zdsz/src/main/resources/mapper/zdsz/ZEngineeringPipeJackingMapper.xml

+ 9 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java

@@ -113,4 +113,13 @@ public class SysDictDataController extends BaseController {
         dictDataService.deleteDictDataByIds(dictCodes);
         return R.ok();
     }
+
+    /**
+     * 字典类型(民用)
+     *
+     */
+    @GetMapping("/dictList/{enginType}")
+    public R dictList(@PathVariable String[] enginType) {
+        return R.ok(dictDataService.dictList(enginType));
+    }
 }

+ 12 - 13
ruoyi-admin/src/main/java/com/ruoyi/web/controller/zdsz/ZEngineeringDangerousController.java

@@ -5,6 +5,7 @@ import java.util.List;
 import java.util.Arrays;
 import java.util.concurrent.TimeUnit;
 
+import com.ruoyi.zdsz.domain.vo.ZEngineeringIndustryVo;
 import lombok.RequiredArgsConstructor;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.constraints.*;
@@ -63,23 +64,11 @@ public class ZEngineeringDangerousController extends BaseController {
     /**
      * 获取危险工程详细信息
      *
-     * @param id 主键
-     */
-    @SaCheckPermission("system:engineeringDangerous:query")
-    @GetMapping("/{id}")
-    public R<ZEngineeringDangerousVo> getInfo(@NotNull(message = "主键不能为空")
-                                     @PathVariable String id) {
-        return R.ok(iZEngineeringDangerousService.queryById(id));
-    }
-
-    /**
-     * 获取危险工程详细信息
-     *
      * @param
      */
     @SaCheckPermission("system:engineeringDangerous:query")
     @GetMapping("/query/{id}")
-    public R<ZEngineeringDangerousBo> query(@NotNull(message = "主键不能为空")
+    public R<ZEngineeringDangerousVo> query(@NotNull(message = "主键不能为空")
                                                 @PathVariable String id) {
         return R.ok(iZEngineeringDangerousService.query(id));
     }
@@ -120,4 +109,14 @@ public class ZEngineeringDangerousController extends BaseController {
                           @PathVariable String[] ids) {
         return toAjax(iZEngineeringDangerousService.deleteWithValidByIds(Arrays.asList(ids), true));
     }
+
+    /**
+     * 危险工程历史
+     *
+     */
+    @SaCheckPermission("zdsz:engineeringIndustry:query")
+    @GetMapping("/{id}")
+    public R<ZEngineeringDangerousVo> queryEngineeringDangerous(@NotNull(message = "主键不能为空") @PathVariable String id) {
+        return R.ok(iZEngineeringDangerousService.queryEngineeringDangerous(id));
+    }
 }

+ 10 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/controller/zdsz/ZEngineeringIndustryController.java

@@ -12,7 +12,6 @@ import com.ruoyi.common.core.validate.EditGroup;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.zdsz.domain.bo.ZEngineeringIndustryBo;
-import com.ruoyi.zdsz.domain.bo.ZEngineeringReviewBo;
 import com.ruoyi.zdsz.domain.vo.ZEngineeringIndustryVo;
 import com.ruoyi.zdsz.service.IZEngineeringIndustryService;
 import lombok.RequiredArgsConstructor;
@@ -105,4 +104,14 @@ public class ZEngineeringIndustryController extends BaseController {
         return toAjax(iZEngineeringIndustryService.deleteWithValidByIds(Arrays.asList(ids), true));
     }
 
+    /**
+     * 工业工程|市政工程历史
+     *
+     */
+    @SaCheckPermission("zdsz:engineeringIndustry:query")
+    @GetMapping("/{id}/{type}")
+    public R<ZEngineeringIndustryVo> query(@NotNull(message = "主键不能为空") @PathVariable String id) {
+        return R.ok(iZEngineeringIndustryService.query(id));
+    }
+
 }

+ 3 - 1
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictDataMapper.java

@@ -4,8 +4,10 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.ruoyi.common.constant.UserConstants;
 import com.ruoyi.common.core.domain.entity.SysDictData;
 import com.ruoyi.common.core.mapper.BaseMapperPlus;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 字典表 数据层
@@ -13,7 +15,7 @@ import java.util.List;
  * @author Lion Li
  */
 public interface SysDictDataMapper extends BaseMapperPlus<SysDictDataMapper, SysDictData, SysDictData> {
-
+    List<Map<String,Object>> dictList(@Param("enginType") String[] enginType);
     default List<SysDictData> selectDictDataByType(String dictType) {
         return selectList(
             new LambdaQueryWrapper<SysDictData>()

+ 5 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictDataService.java

@@ -5,6 +5,7 @@ import com.ruoyi.common.core.domain.entity.SysDictData;
 import com.ruoyi.common.core.page.TableDataInfo;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 字典 业务层
@@ -63,4 +64,8 @@ public interface ISysDictDataService {
      * @return 结果
      */
     List<SysDictData> updateDictData(SysDictData dictData);
+
+
+
+    List<Map<String,Object>> dictList(String[] enginType);
 }

+ 6 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictDataServiceImpl.java

@@ -16,6 +16,7 @@ import org.springframework.cache.annotation.CachePut;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 字典 业务层处理
@@ -127,4 +128,9 @@ public class SysDictDataServiceImpl implements ISysDictDataService {
         throw new ServiceException("操作失败");
     }
 
+    @Override
+    public List<Map<String, Object>> dictList(String[] enginType) {
+        return baseMapper.dictList(enginType);
+    }
+
 }

+ 96 - 3
ruoyi-system/src/main/resources/mapper/system/SysDictDataMapper.xml

@@ -1,7 +1,7 @@
 <?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">
+    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.system.mapper.SysDictDataMapper">
 
     <resultMap type="SysDictData" id="SysDictDataResult">
@@ -19,5 +19,98 @@
         <result property="updateBy" column="update_by"/>
         <result property="updateTime" column="update_time"/>
     </resultMap>
+    <select id="dictList" resultType="java.util.Map">
+        select
+        t.label,
+        t.value,
+        t.enginClassification,
+        t.enginType,
 
-</mapper> 
+        CONCAT_WS('/', (SELECT dict_name from sys_dict_type WHERE dict_type = t.enginType), (SELECT dict_name from sys_dict_type WHERE dict_type = t.enginClassification), t.label) AS name
+
+
+        from (
+        SELECT
+        dict_label as label,
+        dict_value as value,
+        dict_type as enginClassification,
+        'old_renovation' as enginType
+        FROM
+        sys_dict_data
+        WHERE
+        dict_type = 'old_renovation_indoor_engin' UNION ALL
+        SELECT
+        dict_label as label,
+        dict_value as value,
+        dict_type as enginClassification,
+        'old_renovation' as enginType
+        FROM
+        sys_dict_data
+        WHERE
+        dict_type = 'old_renovation_courtyard_engin' UNION ALL
+        SELECT
+        dict_label as label,
+        dict_value as value,
+        dict_type as enginClassification,
+        'old_renovation' as enginType
+        FROM
+        sys_dict_data
+        WHERE
+        dict_type = 'old_renovation_overhead' UNION ALL
+        SELECT
+        dict_label as label,
+        dict_value as value,
+        dict_type as enginClassification,
+        'new_built' as enginType
+        FROM
+        sys_dict_data
+        WHERE
+        dict_type = 'new_built_indoor_engin' UNION ALL
+        SELECT
+        dict_label as label,
+        dict_value as value,
+        dict_type as enginClassification,
+        'new_built' as enginType
+        FROM
+        sys_dict_data
+        WHERE
+        dict_type = 'new_built_courtyard_engin' UNION ALL
+        SELECT
+        dict_label as label,
+        dict_value as value,
+        dict_type as enginClassification,
+        'new_built' as enginType
+        FROM
+        sys_dict_data
+        WHERE
+        dict_type = 'new_built_overhead'
+        UNION ALL
+        SELECT
+        dict_label as label,
+        dict_value as value,
+        dict_type as enginClassification,
+        'pipe_jack' as enginType
+        FROM
+        sys_dict_data
+        WHERE
+        dict_type = 'pipe_jack'
+        UNION ALL
+        SELECT
+        dict_label as label,
+        dict_value as value,
+        dict_type as enginClassification,
+        'engineering_infrastructure' as enginType
+        FROM
+        sys_dict_data
+        WHERE
+        dict_type = 'engineering_infrastructure'
+        ) as t where 1=1
+        <if test="enginType != null and enginType.length > 0">
+            and t.enginType in
+            <foreach item="item" index="index" collection="enginType" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+
+        </if>
+    </select>
+</mapper>

+ 3 - 3
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/ZEngineeringDangerous.java

@@ -92,15 +92,15 @@ public class ZEngineeringDangerous extends BaseEntity {
     /**
      * 危险作业坑大小(长)
      */
-    private Long hazardousWorkPitsLong;
+    private BigDecimal hazardousWorkPitsLong;
     /**
      * 危险作业坑大小(宽)
      */
-    private Long hazardousWorkPitsWide;
+    private BigDecimal hazardousWorkPitsWide;
     /**
      * 危险作业坑大小(深)
      */
-    private Long hazardousWorkPitsDeep;
+    private BigDecimal hazardousWorkPitsDeep;
     /**
      * 是否需要支护
      */

+ 20 - 9
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/bo/ZEngineeringDangerousBo.java

@@ -6,12 +6,13 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 import javax.validation.constraints.*;
 
-import java.util.Date;
 
 import java.util.Date;
-import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.util.List;
 import com.ruoyi.common.core.domain.BaseEntity;
 
+
 /**
  * 危险工程业务对象 z_engineering_dangerous
  *
@@ -32,25 +33,25 @@ public class ZEngineeringDangerousBo extends BaseEntity {
     /**
      * 作业基本信息
      */
-   // @NotBlank(message = "作业基本信息不能为空", groups = { AddGroup.class, EditGroup.class })
+    @NotBlank(message = "作业基本信息不能为空", groups = { AddGroup.class, EditGroup.class })
     private String basicInformation;
 
     /**
      * 工程名称
      */
-    //@NotBlank(message = "工程名称不能为空", groups = { AddGroup.class, EditGroup.class })
+    @NotBlank(message = "工程名称不能为空", groups = { AddGroup.class, EditGroup.class })
     private String enginName;
 
     /**
      * 工程地点
      */
-   // @NotBlank(message = "工程地点不能为空", groups = { AddGroup.class, EditGroup.class })
+    @NotBlank(message = "工程地点不能为空", groups = { AddGroup.class, EditGroup.class })
     private String enginAddre;
 
     /**
      * 工程时间
      */
-   // @NotNull(message = "工程时间不能为空", groups = { AddGroup.class, EditGroup.class })
+    @NotNull(message = "工程时间不能为空", groups = { AddGroup.class, EditGroup.class })
     private Date enginTime;
 
     /**
@@ -123,19 +124,19 @@ public class ZEngineeringDangerousBo extends BaseEntity {
      * 危险作业坑大小(长)
      */
     //@NotNull(message = "危险作业坑大小(长)不能为空", groups = { AddGroup.class, EditGroup.class })
-    private Long hazardousWorkPitsLong;
+    private Double hazardousWorkPitsLong;
 
     /**
      * 危险作业坑大小(宽)
      */
     //@NotNull(message = "危险作业坑大小(宽)不能为空", groups = { AddGroup.class, EditGroup.class })
-    private Long hazardousWorkPitsWide;
+    private Double hazardousWorkPitsWide;
 
     /**
      * 危险作业坑大小(深)
      */
     //@NotNull(message = "危险作业坑大小(深)不能为空", groups = { AddGroup.class, EditGroup.class })
-    private Long hazardousWorkPitsDeep;
+    private Double hazardousWorkPitsDeep;
 
     /**
      * 是否需要支护
@@ -242,4 +243,14 @@ public class ZEngineeringDangerousBo extends BaseEntity {
     public void setzEngineeringNodeBo(ZEngineeringNodeBo zEngineeringNodeBo) {
         this.zEngineeringNodeBo = zEngineeringNodeBo;
     }
+
+    public List<ZFileBo> getFiles() {
+        return files;
+    }
+
+    public void setFiles(List<ZFileBo> files) {
+        this.files = files;
+    }
+
+    private List<ZFileBo> files;
 }

+ 6 - 2
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/bo/ZEngineeringIndustryBo.java

@@ -7,6 +7,7 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 
 import javax.validation.constraints.NotBlank;
+import java.util.List;
 
 /**
  * 工业工程|市政工程业务对象 z_engineering_industry
@@ -96,8 +97,6 @@ public class ZEngineeringIndustryBo extends BaseEntity {
      */
     private String enginClassification;
 
-
-
     /**
      * 类型(工业工程|市政工程)
      */
@@ -106,6 +105,11 @@ public class ZEngineeringIndustryBo extends BaseEntity {
 
     private ZEngineeringNodeBo zEngineeringNodeBo;
 
+    /**
+     * 附件
+     */
+    private List<ZFileBo> files;
+
     public ZEngineeringNodeBo getzEngineeringNodeBo() {
         return zEngineeringNodeBo;
     }

+ 10 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/bo/ZEngineeringInfrastructureBo.java

@@ -11,6 +11,8 @@ import javax.validation.constraints.*;
 import java.util.Date;
 
 import java.util.Date;
+import java.util.List;
+
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.common.core.domain.BaseEntity;
 
@@ -90,5 +92,13 @@ public class ZEngineeringInfrastructureBo extends BaseEntity {
         this.zEngineeringNodeBo = zEngineeringNodeBo;
     }
 
+    private List<ZEngineeringNodeBo> zEngineeringNodeBoList;
+
+    public List<ZEngineeringNodeBo> getzEngineeringNodeBoList() {
+        return zEngineeringNodeBoList;
+    }
 
+    public void setzEngineeringNodeBoList(List<ZEngineeringNodeBo> zEngineeringNodeBoList) {
+        this.zEngineeringNodeBoList = zEngineeringNodeBoList;
+    }
 }

+ 6 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/bo/ZEngineeringNodeBo.java

@@ -43,6 +43,12 @@ public class ZEngineeringNodeBo extends BaseEntity {
     private String type;
 
     /**
+     * 审核状态(未审核、未通过-0 审核通过-1 无需审核-null)
+     */
+//    @NotBlank(message = "审核状态不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String reviewStatus;
+
+    /**
      * 备注
      */
 //    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })

+ 12 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/bo/ZEngineeringPipeJackingBo.java

@@ -9,6 +9,8 @@ import lombok.EqualsAndHashCode;
 import javax.validation.constraints.*;
 
 import java.util.Date;
+import java.util.List;
+import java.util.Map;
 
 import com.ruoyi.common.core.domain.BaseEntity;
 
@@ -87,6 +89,16 @@ public class ZEngineeringPipeJackingBo extends BaseEntity {
 
     private ZEngineeringNodeBo zEngineeringNodeBo;
 
+    public List<ZFileBo> getFiles() {
+        return files;
+    }
+
+    public void setFiles(List<ZFileBo> files) {
+        this.files = files;
+    }
+
+    private List<ZFileBo> files;
+
     public ZEngineeringNodeBo getzEngineeringNodeBo() {
         return zEngineeringNodeBo;
     }

+ 24 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/bo/ZFileBo.java

@@ -0,0 +1,24 @@
+package com.ruoyi.zdsz.domain.bo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.ruoyi.common.core.domain.BaseEntity;
+import com.ruoyi.common.core.validate.AddGroup;
+import com.ruoyi.common.core.validate.EditGroup;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.validation.constraints.NotBlank;
+
+
+@Data
+public class ZFileBo {
+
+    /**
+     *
+     */
+    private String name;
+
+    private String url;
+
+}

+ 16 - 3
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/vo/ZEngineeringDangerousVo.java

@@ -1,5 +1,6 @@
 package com.ruoyi.zdsz.domain.vo;
 
+import java.math.BigDecimal;
 import java.util.Date;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
@@ -7,10 +8,12 @@ import com.alibaba.excel.annotation.ExcelProperty;
 import com.ruoyi.common.annotation.ExcelDictFormat;
 import com.ruoyi.common.convert.ExcelDictConvert;
 import com.ruoyi.common.core.domain.BaseEntity;
+import com.ruoyi.zdsz.domain.bo.ZEngineeringNodeBo;
 import lombok.Data;
 import java.util.Date;
 
 import java.io.Serializable;
+import java.util.List;
 
 /**
  * 危险工程视图对象 z_engineering_dangerous
@@ -124,19 +127,19 @@ public class ZEngineeringDangerousVo extends BaseEntity implements Serializable
      * 危险作业坑大小(长)
      */
     @ExcelProperty(value = "危险作业坑大小(长)")
-    private Long hazardousWorkPitsLong;
+    private BigDecimal hazardousWorkPitsLong;
 
     /**
      * 危险作业坑大小(宽)
      */
     @ExcelProperty(value = "危险作业坑大小(宽)")
-    private Long hazardousWorkPitsWide;
+    private BigDecimal hazardousWorkPitsWide;
 
     /**
      * 危险作业坑大小(深)
      */
     @ExcelProperty(value = "危险作业坑大小(深)")
-    private Long hazardousWorkPitsDeep;
+    private BigDecimal hazardousWorkPitsDeep;
 
     /**
      * 是否需要支护
@@ -234,5 +237,15 @@ public class ZEngineeringDangerousVo extends BaseEntity implements Serializable
     @ExcelProperty(value = "备注")
     private String remark;
 
+    private List<ZEngineeringNodeBo> zEngineeringNodeBoList;
 
+    public List<ZEngineeringNodeBo> getzEngineeringNodeBoList() {
+        return zEngineeringNodeBoList;
+    }
+
+    public void setzEngineeringNodeBoList(List<ZEngineeringNodeBo> zEngineeringNodeBoList) {
+        this.zEngineeringNodeBoList = zEngineeringNodeBoList;
+    }
+
+    private List<ZEngiineeringPhotoVo> pics;
 }

+ 13 - 2
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/vo/ZEngineeringIndustryVo.java

@@ -20,7 +20,7 @@ import java.util.List;
  */
 @Data
 @ExcelIgnoreUnannotated
-public class ZEngineeringIndustryVo extends BaseEntity implements Serializable {
+public class ZEngineeringIndustryVo extends BaseEntity {
 
     private static final long serialVersionUID = 1L;
 
@@ -108,6 +108,17 @@ public class ZEngineeringIndustryVo extends BaseEntity implements Serializable {
     @ExcelProperty(value = "工程分类")
     private String enginClassification;
 
+    private ZEngineeringNodeBo zEngineeringNodeBo;
 
-    private List<ZEngineeringNodeBo> zEngineeringNodeBo;
+    private List<ZEngineeringNodeBo> zEngineeringNodeBoList;
+
+    private List<ZEngiineeringPhotoVo> pics;
+
+    public ZEngineeringNodeBo getzEngineeringNodeBo() {
+        return zEngineeringNodeBo;
+    }
+
+    public List<ZEngineeringNodeBo> getzEngineeringNodeBoList() {
+        return zEngineeringNodeBoList;
+    }
 }

+ 1 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/vo/ZEngineeringPipeJackingVo.java

@@ -81,5 +81,6 @@ public class ZEngineeringPipeJackingVo extends BaseEntity implements Serializabl
     private String remark;
 
     private List<ZEngineeringNodeBo> zEngineeringNodeBoList;
+    private List<ZEngiineeringPhotoVo> pics;
 
 }

+ 1 - 1
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/mapper/ZEngineeringDangerousMapper.java

@@ -12,5 +12,5 @@ import org.apache.ibatis.annotations.Param;
  * @date 2024-01-02
  */
 public interface ZEngineeringDangerousMapper extends BaseMapperPlus<ZEngineeringDangerousMapper, ZEngineeringDangerous, ZEngineeringDangerousVo> {
-
+    String selectIdByCid(@Param("id") String id);
 }

+ 1 - 1
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/mapper/ZEngineeringPipeJackingMapper.java

@@ -19,5 +19,5 @@ public interface ZEngineeringPipeJackingMapper extends BaseMapperPlus<ZEngineeri
     List<Map<String,Object>> getDangerous(String enginId);
     List<Map<String,Object>> getInfrastructure(String enginId);
 
-    List<Map<String, Object>> getSg(String enginId,String type);
+    List<Map<String, Object>> getSg(String enginId);
 }

+ 4 - 4
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/IZEngineeringDangerousService.java

@@ -20,14 +20,14 @@ public interface IZEngineeringDangerousService {
     /**
      * 查询危险工程
      */
-    ZEngineeringDangerousVo queryById(String id);
+    ZEngineeringDangerousVo query(String id) ;
 
     /**
      * 查询危险工程列表
      */
     TableDataInfo<ZEngineeringDangerousVo> queryPageList(ZEngineeringDangerousBo bo, PageQuery pageQuery);
 
-     ZEngineeringDangerousBo query(String id) ;
+
 
     /**
      * 查询危险工程列表
@@ -37,14 +37,12 @@ public interface IZEngineeringDangerousService {
     /**
      * 新增危险工程
      */
-    Boolean insertByBo(ZEngineeringDangerousBo bo);
 
     Boolean insert (ZEngineeringDangerousBo bo);
 
     /**
      * 修改危险工程
      */
-    Boolean updateByBo(ZEngineeringDangerousBo bo);
 
     Boolean update(ZEngineeringDangerousBo bo);
 
@@ -52,4 +50,6 @@ public interface IZEngineeringDangerousService {
      * 校验并批量删除危险工程信息
      */
     Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);
+
+    ZEngineeringDangerousVo queryEngineeringDangerous(String id);
 }

+ 1 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/IZEngineeringIndustryService.java

@@ -47,4 +47,5 @@ public interface IZEngineeringIndustryService {
      */
     Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);
 
+    ZEngineeringIndustryVo query(String id);
 }

+ 2 - 2
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/impl/ZComprehensiveServiceImpl.java

@@ -112,8 +112,8 @@ public class ZComprehensiveServiceImpl implements IZComprehensiveService {
                 ZEngiineeringPhoto pic = new ZEngiineeringPhoto();
                 pic.setParentId(bo.getId());
                 pic.setPicUrl(o);
-                pic.setUpdateBy(String.valueOf(LoginHelper.getUserId()));
-                pic.setUpdateTime(new Date());
+                pic.setCreateBy(String.valueOf(LoginHelper.getUserId()));
+                pic.setCreateTime(new Date());
                 list.add(pic);
             });
             if (!list.isEmpty()) {

+ 3 - 3
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/impl/ZEngiineeringPhotoServiceImpl.java

@@ -112,7 +112,7 @@ public class ZEngiineeringPhotoServiceImpl implements IZEngiineeringPhotoService
     @Override
     @Transactional(rollbackFor=Exception.class)
     @DynamicName(spel = "#bo[0].createTime")
-    @Async("threadPoolTaskExecutor")
+//    @Async("threadPoolTaskExecutor")
     public Boolean insertBatch(List<ZEngiineeringPhoto> bo) {
         boolean flag = baseMapper.insertBatch(bo);
         return flag;
@@ -131,7 +131,7 @@ public class ZEngiineeringPhotoServiceImpl implements IZEngiineeringPhotoService
     @Override
     @DynamicName(spel = "#bo[0].createTime")
     @Transactional(rollbackFor = Exception.class)
-    @Async("threadPoolTaskExecutor")
+//    @Async("threadPoolTaskExecutor")
     public Boolean updateBatch(List<ZEngiineeringPhoto> bo) {
         ZEngiineeringPhoto zEngiineeringPhoto = bo.get(0);
         LambdaQueryWrapper<ZEngiineeringPhoto> lqw = Wrappers.lambdaQuery();
@@ -182,7 +182,7 @@ public class ZEngiineeringPhotoServiceImpl implements IZEngiineeringPhotoService
     @Override
     @DynamicName(spel = "#bo.createTime")
     @Transactional(rollbackFor = Exception.class)
-    @Async("threadPoolTaskExecutor")
+//    @Async("threadPoolTaskExecutor")
     public Boolean delete(ZEngineeringInfoBo bo) {
         LambdaQueryWrapper<ZEngiineeringPhoto> lqw = Wrappers.lambdaQuery();
         lqw.eq(StringUtils.isNotBlank(bo.getId()), ZEngiineeringPhoto::getParentId, bo.getId());

+ 93 - 76
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/impl/ZEngineeringDangerousServiceImpl.java

@@ -1,8 +1,10 @@
 package com.ruoyi.zdsz.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
 import com.ruoyi.common.annotation.DynamicName;
 import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.helper.LoginHelper;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.core.page.TableDataInfo;
@@ -10,9 +12,14 @@ import com.ruoyi.common.core.domain.PageQuery;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.zdsz.domain.ZEngiineeringPhoto;
 import com.ruoyi.zdsz.domain.ZEngineeringInfo;
+import com.ruoyi.zdsz.domain.ZEngineeringNode;
 import com.ruoyi.zdsz.domain.bo.*;
+import com.ruoyi.zdsz.domain.vo.ZEngiineeringPhotoVo;
+import com.ruoyi.zdsz.domain.vo.ZEngineeringIndustryVo;
 import com.ruoyi.zdsz.domain.vo.ZEngineeringPipeJackingVo;
+import com.ruoyi.zdsz.service.IZEngiineeringPhotoService;
 import com.ruoyi.zdsz.service.IZEngineeringNodeService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -23,10 +30,8 @@ import com.ruoyi.zdsz.mapper.ZEngineeringDangerousMapper;
 import com.ruoyi.zdsz.service.IZEngineeringDangerousService;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Collection;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 危险工程Service业务层处理
@@ -43,13 +48,8 @@ public class ZEngineeringDangerousServiceImpl implements IZEngineeringDangerousS
     @Autowired
     private IZEngineeringNodeService izEngineeringNodeService;
 
-    /**
-     * 查询危险工程
-     */
-    @Override
-    public ZEngineeringDangerousVo queryById(String id){
-        return baseMapper.selectVoById(id);
-    }
+    @Autowired
+    private IZEngiineeringPhotoService photoService;
 
     /**
      * 查询危险工程列表
@@ -65,15 +65,18 @@ public class ZEngineeringDangerousServiceImpl implements IZEngineeringDangerousS
      * 查询危险工程详情
      */
     @Override
-    public ZEngineeringDangerousBo query(String id)  {
-        ZEngineeringDangerousVo zEngineeringDangerousVo = baseMapper.selectVoById(id);
-        ZEngineeringDangerousBo zEngineeringDangerousBo = BeanUtil.toBean(zEngineeringDangerousVo, ZEngineeringDangerousBo.class);
+    public ZEngineeringDangerousVo query(String id)  {
+        ZEngineeringDangerousVo vo = baseMapper.selectVoById(id);
+        ZEngiineeringPhotoBo bo= new ZEngiineeringPhotoBo();
+        bo.setParentId(vo.getId());
+        bo.setCreateTime(vo.getCreateTime());
+        vo.setPics(photoService.queryList(bo));
         ZEngineeringNodeBo zEngineeringNodeBo = new ZEngineeringNodeBo();
-        zEngineeringNodeBo.setCivliId(zEngineeringDangerousBo.getId());
-        zEngineeringNodeBo.setCreateTime(zEngineeringDangerousBo.getCreateTime());
-        ZEngineeringNodeBo query = izEngineeringNodeService.query(zEngineeringNodeBo);
-        zEngineeringDangerousBo.setzEngineeringNodeBo(query);
-        return zEngineeringDangerousBo;
+        zEngineeringNodeBo.setCivliId(vo.getId());
+        zEngineeringNodeBo.setCreateTime(vo.getCreateTime());
+        List<ZEngineeringNodeBo> zEngineeringNodeBos = izEngineeringNodeService.queryListDetails(zEngineeringNodeBo);
+        vo.setzEngineeringNodeBoList(zEngineeringNodeBos);
+        return vo;
     }
 
     /**
@@ -88,55 +91,12 @@ public class ZEngineeringDangerousServiceImpl implements IZEngineeringDangerousS
     private LambdaQueryWrapper<ZEngineeringDangerous> buildQueryWrapper(ZEngineeringDangerousBo bo) {
         Map<String, Object> params = bo.getParams();
         LambdaQueryWrapper<ZEngineeringDangerous> lqw = Wrappers.lambdaQuery();
-        lqw.eq(StringUtils.isNotBlank(bo.getBasicInformation()), ZEngineeringDangerous::getBasicInformation, bo.getBasicInformation());
+        lqw.like(StringUtils.isNotBlank(bo.getBasicInformation()), ZEngineeringDangerous::getBasicInformation, bo.getBasicInformation());
         lqw.like(StringUtils.isNotBlank(bo.getEnginName()), ZEngineeringDangerous::getEnginName, bo.getEnginName());
-        lqw.eq(StringUtils.isNotBlank(bo.getEnginAddre()), ZEngineeringDangerous::getEnginAddre, bo.getEnginAddre());
-        lqw.eq(bo.getEnginTime() != null, ZEngineeringDangerous::getEnginTime, bo.getEnginTime());
-        lqw.eq(StringUtils.isNotBlank(bo.getPipeDiameter()), ZEngineeringDangerous::getPipeDiameter, bo.getPipeDiameter());
-        lqw.eq(StringUtils.isNotBlank(bo.getTubularProduct()), ZEngineeringDangerous::getTubularProduct, bo.getTubularProduct());
-        lqw.eq(StringUtils.isNotBlank(bo.getCasingPresent()), ZEngineeringDangerous::getCasingPresent, bo.getCasingPresent());
-        lqw.eq(StringUtils.isNotBlank(bo.getPipePressure()), ZEngineeringDangerous::getPipePressure, bo.getPipePressure());
-        lqw.eq(StringUtils.isNotBlank(bo.getGasSourceDirection()), ZEngineeringDangerous::getGasSourceDirection, bo.getGasSourceDirection());
-        lqw.eq(StringUtils.isNotBlank(bo.getTaskPosition()), ZEngineeringDangerous::getTaskPosition, bo.getTaskPosition());
-        lqw.eq(StringUtils.isNotBlank(bo.getValvePosition()), ZEngineeringDangerous::getValvePosition, bo.getValvePosition());
-        lqw.eq(StringUtils.isNotBlank(bo.getStressReport()), ZEngineeringDangerous::getStressReport, bo.getStressReport());
-        lqw.eq(StringUtils.isNotBlank(bo.getSupervisionRecord()), ZEngineeringDangerous::getSupervisionRecord, bo.getSupervisionRecord());
-        lqw.eq(StringUtils.isNotBlank(bo.getWorkContactForm()), ZEngineeringDangerous::getWorkContactForm, bo.getWorkContactForm());
-        lqw.eq(StringUtils.isNotBlank(bo.getLinePatrolConfirmationForm()), ZEngineeringDangerous::getLinePatrolConfirmationForm, bo.getLinePatrolConfirmationForm());
-        lqw.eq(bo.getHazardousWorkPitsLong() != null, ZEngineeringDangerous::getHazardousWorkPitsLong, bo.getHazardousWorkPitsLong());
-        lqw.eq(bo.getHazardousWorkPitsWide() != null, ZEngineeringDangerous::getHazardousWorkPitsWide, bo.getHazardousWorkPitsWide());
-        lqw.eq(bo.getHazardousWorkPitsDeep() != null, ZEngineeringDangerous::getHazardousWorkPitsDeep, bo.getHazardousWorkPitsDeep());
-        lqw.eq(StringUtils.isNotBlank(bo.getNeedSupport()), ZEngineeringDangerous::getNeedSupport, bo.getNeedSupport());
-        lqw.eq(StringUtils.isNotBlank(bo.getOtherPipelineConditionsWorkPit()), ZEngineeringDangerous::getOtherPipelineConditionsWorkPit, bo.getOtherPipelineConditionsWorkPit());
-        lqw.eq(StringUtils.isNotBlank(bo.getSiteHead()), ZEngineeringDangerous::getSiteHead, bo.getSiteHead());
-        lqw.eq(StringUtils.isNotBlank(bo.getSiteHeadPhone()), ZEngineeringDangerous::getSiteHeadPhone, bo.getSiteHeadPhone());
-        lqw.eq(StringUtils.isNotBlank(bo.getOperatorInformation()), ZEngineeringDangerous::getOperatorInformation, bo.getOperatorInformation());
-        lqw.eq(StringUtils.isNotBlank(bo.getInspectionPort()), ZEngineeringDangerous::getInspectionPort, bo.getInspectionPort());
-        lqw.eq(StringUtils.isNotBlank(bo.getPipelinePainting()), ZEngineeringDangerous::getPipelinePainting, bo.getPipelinePainting());
-        lqw.eq(StringUtils.isNotBlank(bo.getPipelineSupport()), ZEngineeringDangerous::getPipelineSupport, bo.getPipelineSupport());
-        lqw.eq(StringUtils.isNotBlank(bo.getPipelineCorrosionProtection()), ZEngineeringDangerous::getPipelineCorrosionProtection, bo.getPipelineCorrosionProtection());
-        lqw.eq(StringUtils.isNotBlank(bo.getMasonryValveWell()), ZEngineeringDangerous::getMasonryValveWell, bo.getMasonryValveWell());
-        lqw.eq(StringUtils.isNotBlank(bo.getProtectionWell()), ZEngineeringDangerous::getProtectionWell, bo.getProtectionWell());
-        lqw.eq(StringUtils.isNotBlank(bo.getPipeProtectionWelMasonry()), ZEngineeringDangerous::getPipeProtectionWelMasonry, bo.getPipeProtectionWelMasonry());
-        lqw.eq(StringUtils.isNotBlank(bo.getBackfill()), ZEngineeringDangerous::getBackfill, bo.getBackfill());
-        lqw.eq(StringUtils.isNotBlank(bo.getTamp()), ZEngineeringDangerous::getTamp, bo.getTamp());
-        lqw.eq(StringUtils.isNotBlank(bo.getLevelingTheSite()), ZEngineeringDangerous::getLevelingTheSite, bo.getLevelingTheSite());
+        lqw.like(StringUtils.isNotBlank(bo.getEnginAddre()), ZEngineeringDangerous::getEnginAddre, bo.getEnginAddre());
         return lqw;
     }
 
-    /**
-     * 新增危险工程
-     */
-    @Override
-    public Boolean insertByBo(ZEngineeringDangerousBo bo) {
-        ZEngineeringDangerous add = BeanUtil.toBean(bo, ZEngineeringDangerous.class);
-        validEntityBeforeSave(add);
-        boolean flag = baseMapper.insert(add) > 0;
-        if (flag) {
-            bo.setId(add.getId());
-        }
-        return flag;
-    }
 
     /**
      * 新增危险工程
@@ -153,19 +113,25 @@ public class ZEngineeringDangerousServiceImpl implements IZEngineeringDangerousS
         }
         bo.getzEngineeringNodeBo().setCivliId(add.getId());
         bo.getzEngineeringNodeBo().setCreateTime(add.getCreateTime());
-        izEngineeringNodeService.insert(bo.getzEngineeringNodeBo());
+        ZEngineeringNode entity = izEngineeringNodeService.insert(bo.getzEngineeringNodeBo());
+        if (!ObjectUtil.isEmpty(entity)){
+            List<ZEngiineeringPhoto> list = new ArrayList<>();
+            bo.getFiles().stream().forEach(o->{
+                ZEngiineeringPhoto pic = new ZEngiineeringPhoto();
+                pic.setParentId(bo.getId());
+                pic.setPicUrl(o.getUrl());
+                pic.setUpdateBy(String.valueOf(LoginHelper.getUserId()));
+                pic.setUpdateTime(new Date());
+                pic.setCreateTime(bo.getCreateTime());
+                list.add(pic);
+            });
+            if (!list.isEmpty()) {
+                photoService.insertBatch(list);
+            }
+        }
         return flag;
     }
 
-    /**
-     * 修改危险工程
-     */
-    @Override
-    public Boolean updateByBo(ZEngineeringDangerousBo bo) {
-        ZEngineeringDangerous update = BeanUtil.toBean(bo, ZEngineeringDangerous.class);
-        validEntityBeforeSave(update);
-        return baseMapper.updateById(update) > 0;
-    }
 
     /**
      * 修改危险工程
@@ -176,11 +142,51 @@ public class ZEngineeringDangerousServiceImpl implements IZEngineeringDangerousS
     public Boolean update(ZEngineeringDangerousBo bo) {
         ZEngineeringDangerous update = BeanUtil.toBean(bo, ZEngineeringDangerous.class);
         validEntityBeforeSave(update);
-        ZEngineeringNodeBo zEngineeringNodeBo = bo.getzEngineeringNodeBo();
+        ZEngineeringNodeBo zEngineeringNodeBo =bo.getzEngineeringNodeBo();
         zEngineeringNodeBo.setCivliId(update.getId());
+        zEngineeringNodeBo.setId(baseMapper.selectIdByCid(zEngineeringNodeBo.getCivliId()));
         zEngineeringNodeBo.setCreateTime(update.getCreateTime());
         izEngineeringNodeService.update(zEngineeringNodeBo);
-        return baseMapper.updateById(update) > 0;
+        int i = baseMapper.updateById(update);
+        if (i>0){
+            List<ZEngiineeringPhoto> list = new ArrayList<>();
+
+            // 查询数据库中已存在的文件列表
+            ZEngiineeringPhotoBo bo1 = new ZEngiineeringPhotoBo();
+            bo1.setParentId(update.getId());
+            List<String> existingPhotos = photoService.queryList(bo1).stream()
+                .map(ZEngiineeringPhotoVo::getPicUrl)
+                .collect(Collectors.toList());
+
+            // 插入前端传来的新文件
+            for (ZFileBo pic : bo.getFiles()) {
+                if (!existingPhotos.contains(pic)) {
+                    ZEngiineeringPhoto newPhoto = new ZEngiineeringPhoto();
+                    newPhoto.setParentId(bo.getId());
+                    newPhoto.setPicUrl(pic.getUrl());
+                    newPhoto.setFileName(pic.getName());
+                    newPhoto.setCreateBy(String.valueOf(LoginHelper.getUserId()));
+                    newPhoto.setCreateTime(new Date());
+                    list.add(newPhoto);
+                }
+            }
+
+            // 删除数据库中多余的文件
+            List<String> photosToDelete = existingPhotos.stream()
+                .filter(pic -> !bo.getFiles().contains(pic))
+                .collect(Collectors.toList());
+            if (!photosToDelete.isEmpty()) {
+                photosToDelete.forEach(item->{
+                    photoService.deleteWithValidByurls(item);
+                });
+            }
+
+            // 批量插入新图片
+            if (!list.isEmpty()) {
+                photoService.insertBatch(list);
+            }
+        }
+        return i > 0;
     }
 
     /**
@@ -210,4 +216,15 @@ public class ZEngineeringDangerousServiceImpl implements IZEngineeringDangerousS
         });
         return baseMapper.deleteBatchIds(ids) > 0;
     }
+
+
+    @Override
+    public ZEngineeringDangerousVo queryEngineeringDangerous(String id) {
+        ZEngineeringDangerousVo vo = baseMapper.selectVoById(id);
+        ZEngineeringNodeBo zEngineeringNodeBo = new ZEngineeringNodeBo();
+        zEngineeringNodeBo.setCreateTime(vo.getCreateTime());
+        zEngineeringNodeBo.setCivliId(vo.getId());
+        vo.setzEngineeringNodeBoList(izEngineeringNodeService.queryListDetails(zEngineeringNodeBo));
+        return vo;
+    }
 }

+ 94 - 16
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/impl/ZEngineeringIndustryServiceImpl.java

@@ -2,34 +2,31 @@ package com.ruoyi.zdsz.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.core.domain.PageQuery;
 import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.helper.LoginHelper;
 import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.zdsz.domain.ZEngiineeringPhoto;
 import com.ruoyi.zdsz.domain.ZEngineeringIndustry;
-import com.ruoyi.zdsz.domain.ZEngineeringReview;
+import com.ruoyi.zdsz.domain.bo.ZEngiineeringPhotoBo;
 import com.ruoyi.zdsz.domain.bo.ZEngineeringIndustryBo;
 import com.ruoyi.zdsz.domain.bo.ZEngineeringNodeBo;
-import com.ruoyi.zdsz.domain.bo.ZEngineeringReviewBo;
+import com.ruoyi.zdsz.domain.bo.ZFileBo;
+import com.ruoyi.zdsz.domain.vo.ZEngiineeringPhotoVo;
 import com.ruoyi.zdsz.domain.vo.ZEngineeringIndustryVo;
-import com.ruoyi.zdsz.domain.vo.ZEngineeringNodeVo;
-import com.ruoyi.zdsz.domain.vo.ZEngineeringReviewVo;
 import com.ruoyi.zdsz.mapper.ZEngineeringIndustryMapper;
+import com.ruoyi.zdsz.service.IZEngiineeringPhotoService;
 import com.ruoyi.zdsz.service.IZEngineeringIndustryService;
 import com.ruoyi.zdsz.service.IZEngineeringNodeService;
-import com.ruoyi.zdsz.service.IZEngineeringReviewService;
 import lombok.RequiredArgsConstructor;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
-import java.util.Collection;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 工业工程|市政工程Service业务层处理
@@ -49,17 +46,24 @@ public class ZEngineeringIndustryServiceImpl implements IZEngineeringIndustrySer
 
     @Resource
     private IZEngineeringNodeService nodeService;
+
+    @Resource
+    private IZEngiineeringPhotoService photoService;
     /**
      * 查询工业工程|市政工程
      */
     @Override
     public ZEngineeringIndustryVo queryById(String id) {
         ZEngineeringIndustryVo zEngineeringIndustryVo = baseMapper.selectVoById(id);
+        ZEngiineeringPhotoBo zEngiineeringPhotoBo = new ZEngiineeringPhotoBo();
+        zEngiineeringPhotoBo.setParentId(zEngineeringIndustryVo.getId());
+        zEngiineeringPhotoBo.setCreateTime(zEngineeringIndustryVo.getCreateTime());
+        zEngineeringIndustryVo.setPics(photoService.queryList(zEngiineeringPhotoBo));
         ZEngineeringNodeBo zEngineeringNodeBo = new ZEngineeringNodeBo();
         zEngineeringNodeBo.setCivliId(id);
         zEngineeringNodeBo.setCreateTime(zEngineeringIndustryVo.getCreateTime());
         List<ZEngineeringNodeBo> zEngineeringNodeBos = izEngineeringNodeService.queryListDetails(zEngineeringNodeBo);
-        zEngineeringIndustryVo.setZEngineeringNodeBo(zEngineeringNodeBos);
+        zEngineeringIndustryVo.setZEngineeringNodeBoList(zEngineeringNodeBos);
         return zEngineeringIndustryVo;
     }
 
@@ -83,7 +87,6 @@ public class ZEngineeringIndustryServiceImpl implements IZEngineeringIndustrySer
     }
 
     private LambdaQueryWrapper<ZEngineeringIndustry> buildQueryWrapper(ZEngineeringIndustryBo bo) {
-        Map<String, Object> params = bo.getParams();
         LambdaQueryWrapper<ZEngineeringIndustry> lqw = Wrappers.lambdaQuery();
         lqw.eq(StringUtils.isNotBlank(bo.getEnginType()), ZEngineeringIndustry::getEnginType, bo.getEnginType());
         lqw.like(StringUtils.isNotBlank(bo.getEnginName()), ZEngineeringIndustry::getEnginName, bo.getEnginName());
@@ -112,6 +115,19 @@ public class ZEngineeringIndustryServiceImpl implements IZEngineeringIndustrySer
         boolean flag = baseMapper.insert(add) > 0;
         if (flag) {
             bo.setId(add.getId());
+            List<ZEngiineeringPhoto> list = new ArrayList<>();
+            bo.getFiles().forEach(o->{
+                ZEngiineeringPhoto pic = new ZEngiineeringPhoto();
+                pic.setParentId(bo.getId());
+                pic.setPicUrl(o.getUrl());
+                pic.setFileName(o.getName());
+                pic.setCreateBy(String.valueOf(LoginHelper.getUserId()));
+                pic.setCreateTime(new Date());
+                list.add(pic);
+            });
+            if (!list.isEmpty()) {
+                photoService.insertBatch(list);
+            }
         }
         bo.getzEngineeringNodeBo().setCivliId(add.getId());
         bo.getzEngineeringNodeBo().setCreateTime(new Date());
@@ -127,6 +143,40 @@ public class ZEngineeringIndustryServiceImpl implements IZEngineeringIndustrySer
         ZEngineeringIndustry update = BeanUtil.toBean(bo, ZEngineeringIndustry.class);
         validEntityBeforeSave(update);
         boolean flag = baseMapper.updateById(update) > 0;
+        if (flag){
+            List<ZEngiineeringPhoto> list = new ArrayList<>();
+            // 查询数据库中已存在的文件列表
+            ZEngiineeringPhotoBo zEngiineeringPhotoBo = new ZEngiineeringPhotoBo();
+            zEngiineeringPhotoBo.setParentId(update.getId());
+            List<String> existingPhotos = photoService.queryList(zEngiineeringPhotoBo).stream()
+                .map(ZEngiineeringPhotoVo::getPicUrl)
+                .collect(Collectors.toList());
+            // 插入前端传来的新文件
+            for (ZFileBo pic : bo.getFiles()) {
+                if (!existingPhotos.contains(pic)) {
+                    ZEngiineeringPhoto newPhoto = new ZEngiineeringPhoto();
+                    newPhoto.setParentId(bo.getId());
+                    newPhoto.setPicUrl(pic.getUrl());
+                    newPhoto.setFileName(pic.getName());
+                    newPhoto.setCreateBy(String.valueOf(LoginHelper.getUserId()));
+                    newPhoto.setCreateTime(new Date());
+                    list.add(newPhoto);
+                }
+            }
+            // 删除数据库中多余的文件
+            List<String> photosToDelete = existingPhotos.stream()
+                .filter(pic -> !bo.getFiles().contains(pic))
+                .collect(Collectors.toList());
+            if (!photosToDelete.isEmpty()) {
+                photosToDelete.forEach(item->{
+                    photoService.deleteWithValidByurls(item);
+                });
+            }
+            // 批量插入新图片
+            if (!list.isEmpty()) {
+                photoService.insertBatch(list);
+            }
+        }
         bo.getzEngineeringNodeBo().setCivliId(bo.getId());
         bo.getzEngineeringNodeBo().setType(bo.getType());
         izEngineeringNodeService.update(bo.getzEngineeringNodeBo());
@@ -149,16 +199,44 @@ public class ZEngineeringIndustryServiceImpl implements IZEngineeringIndustrySer
             //TODO 做一些业务上的校验,判断是否需要校验
         }
         ids.forEach(item -> {
+            // 查询数据库中已存在的文件列表
+            ZEngiineeringPhotoBo zEngiineeringPhotoBo = new ZEngiineeringPhotoBo();
+            zEngiineeringPhotoBo.setParentId(item);
+            // 将查询出的url放入existingPhotos
+            List<String> existingPhotos = photoService.queryList(zEngiineeringPhotoBo).stream()
+                .map(ZEngiineeringPhotoVo::getPicUrl)
+                .collect(Collectors.toList());
+            // 若存在 则进行删除
+            if (!existingPhotos.isEmpty()) {
+                existingPhotos.forEach(i->{
+                    photoService.deleteWithValidByurls(i);
+                });
+            }
+            // 初始化工程节点对象
             ZEngineeringIndustryVo vo = baseMapper.selectVoById(item);
             ZEngineeringNodeBo zEngineeringNodeBo = new ZEngineeringNodeBo();
             zEngineeringNodeBo.setCreateTime(vo.getCreateTime());
             zEngineeringNodeBo.setCivliId(vo.getId());
+            //  查询数据库中已存在的工程节点
             List<ZEngineeringNodeBo> zEngineeringNodeBos = nodeService.queryListDetails(zEngineeringNodeBo);
-            zEngineeringNodeBos.forEach(ite ->
-                nodeService.delete(ite)
-            );
+            // 若存在 则进行删除
+            if (!zEngineeringNodeBos.isEmpty()){
+                zEngineeringNodeBos.forEach(ite ->
+                    nodeService.delete(ite)
+                );
+            }
         });
         return baseMapper.deleteBatchIds(ids) > 0;
     }
 
+    @Override
+    public ZEngineeringIndustryVo query(String id) {
+        ZEngineeringIndustryVo zEngineeringIndustryVo = baseMapper.selectVoById(id);
+        ZEngineeringNodeBo zEngineeringNodeBo = new ZEngineeringNodeBo();
+        zEngineeringNodeBo.setCreateTime(zEngineeringIndustryVo.getCreateTime());
+        zEngineeringNodeBo.setCivliId(zEngineeringIndustryVo.getId());
+        zEngineeringIndustryVo.setZEngineeringNodeBo(izEngineeringNodeService.query(zEngineeringNodeBo));
+        return zEngineeringIndustryVo;
+    }
+
 }

+ 56 - 9
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/impl/ZEngineeringInfrastructureServiceImpl.java

@@ -8,10 +8,12 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.ruoyi.zdsz.domain.ZEngineeringInfrastructure;
+import com.ruoyi.zdsz.domain.bo.ZEngineeringInfoBo;
 import com.ruoyi.zdsz.domain.bo.ZEngineeringInfrastructureBo;
 import com.ruoyi.zdsz.domain.bo.ZEngineeringNodeBo;
 import com.ruoyi.zdsz.domain.bo.ZEngineeringReviewBo;
 import com.ruoyi.zdsz.domain.vo.ZEngineeringInfrastructureVo;
+import com.ruoyi.zdsz.domain.vo.ZEngineeringNodeVo;
 import com.ruoyi.zdsz.domain.vo.ZEngineeringReviewVo;
 import com.ruoyi.zdsz.mapper.ZEngineeringInfrastructureMapper;
 import com.ruoyi.zdsz.service.IZEngineeringInfrastructureService;
@@ -22,9 +24,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
-import java.util.List;
-import java.util.Map;
-import java.util.Collection;
+import java.util.*;
 
 /**
  * 基建工程Service业务层处理
@@ -55,6 +55,18 @@ public class ZEngineeringInfrastructureServiceImpl implements IZEngineeringInfra
         zEngineeringNodeBo.setCreateTime(vo.getCreateTime());
         zEngineeringNodeBo.setCivliId(vo.getId());
         vo.setzEngineeringNodeBoList(izEngineeringNodeService.queryListDetails(zEngineeringNodeBo));
+        List<ZEngineeringNodeBo> nodeList = vo.getzEngineeringNodeBoList();
+        if(nodeList != null && nodeList.size() > 0){
+            for (ZEngineeringNodeBo node : nodeList) {
+                String type = node.getType();
+//                if(node.getType().equals("construction_entrance")){
+                if(type.equals("construction_hydroelectricity") || type.equals("construction_waterproof")){ // 水电施工、防水
+                    ZEngineeringReviewBo reviewBo = izEngineeringReviewService.query(node);
+                    boolean review = (reviewBo!=null) && (reviewBo.getReviewStatus().equals("1"));
+                    node.setReviewStatus(review?"1":"0"); // 通过-1 未通过、未审核-0 无需审核-null
+                }
+            } // else null
+        }
         return vo;
     }
 
@@ -68,7 +80,31 @@ public class ZEngineeringInfrastructureServiceImpl implements IZEngineeringInfra
         zEngineeringNodeBo.setCreateTime(vo.getCreateTime());
         zEngineeringNodeBo.setCivliId(vo.getId());
         zEngineeringNodeBo.setType(type);
-        vo.setzEngineeringNodeBo(izEngineeringNodeService.query(zEngineeringNodeBo));
+//        List<ZEngineeringNodeVo> zEngineeringNodeVoList = izEngineeringNodeService.queryList(zEngineeringNodeBo);
+        List<ZEngineeringNodeBo> zEngineeringNodeBoList = izEngineeringNodeService.queryListDetails(zEngineeringNodeBo);
+        for (ZEngineeringNodeBo node : zEngineeringNodeBoList) {
+            if(type.equals("construction_hydroelectricity") || type.equals("construction_waterproof")){ // 水电施工、防水
+                node.setCreateTime(new Date());
+                ZEngineeringReviewBo reviewBo = izEngineeringReviewService.query(node);
+                boolean review = (reviewBo!=null) && (reviewBo.getReviewStatus().equals("1"));
+                node.setReviewStatus(review?"1":"0"); // 通过-1 未通过、未审核-0 无需审核-null
+            }
+        }
+
+//        List<ZEngineeringNodeBo> zEngineeringNodeBoList = new ArrayList<>();
+//        for (ZEngineeringNodeVo zEngineeringNodeVo : zEngineeringNodeVoList) {
+//            ZEngineeringNodeBo bo = BeanUtil.toBean(zEngineeringNodeVo, ZEngineeringNodeBo.class);
+//            if(type.equals("construction_hydroelectricity") || type.equals("construction_waterproof")){ // 水电施工、防水
+//                bo.setCreateTime(new Date());
+//                ZEngineeringReviewBo reviewBo = izEngineeringReviewService.query(bo);
+//                boolean review = (reviewBo!=null) && (reviewBo.getReviewStatus().equals("1"));
+//                bo.setReviewStatus(review?"1":"0"); // 通过-1 未通过、未审核-0 无需审核-null
+//            }
+//            ZEngineeringInfoBo zEngineeringInfoBo = new ZEngineeringInfoBo();
+//            zEngineeringInfoBoS
+//            zEngineeringNodeBoList.add(bo);
+//        }
+        vo.setzEngineeringNodeBoList(zEngineeringNodeBoList);
         return vo;
     }
 
@@ -114,11 +150,22 @@ public class ZEngineeringInfrastructureServiceImpl implements IZEngineeringInfra
         validEntityBeforeSave(add);
         boolean flag = baseMapper.insert(add) > 0;
         if (flag) {
-            bo.setId(add.getId());
-            ZEngineeringNodeBo zEngineeringNodeBo = bo.getzEngineeringNodeBo();
-            zEngineeringNodeBo.setCivliId(add.getId());
-            zEngineeringNodeBo.setCreateTime(add.getCreateTime());
-            izEngineeringNodeService.insert(zEngineeringNodeBo);
+            List<ZEngineeringNodeBo> nodeBoList = bo.getzEngineeringNodeBoList();
+            if(nodeBoList != null && nodeBoList.size() != 0){
+                for (ZEngineeringNodeBo nodeBo:nodeBoList) {
+                    bo.setId(add.getId());
+                    ZEngineeringNodeBo zEngineeringNodeBo = nodeBo;
+                    zEngineeringNodeBo.setCivliId(add.getId());
+                    zEngineeringNodeBo.setCreateTime(add.getCreateTime());
+                    izEngineeringNodeService.insert(zEngineeringNodeBo);
+                }
+            }else {
+                bo.setId(add.getId());
+                ZEngineeringNodeBo zEngineeringNodeBo = bo.getzEngineeringNodeBo();
+                zEngineeringNodeBo.setCivliId(add.getId());
+                zEngineeringNodeBo.setCreateTime(add.getCreateTime());
+                izEngineeringNodeService.insert(zEngineeringNodeBo);
+            }
         }
         return flag;
     }

+ 113 - 43
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/impl/ZEngineeringPipeJackingServiceImpl.java

@@ -4,16 +4,23 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.ruoyi.common.annotation.DynamicName;
+import com.ruoyi.common.helper.LoginHelper;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.core.domain.PageQuery;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.framework.obs.ObsService;
+import com.ruoyi.zdsz.domain.ZEngiineeringPhoto;
 import com.ruoyi.zdsz.domain.ZEngineeringNode;
+import com.ruoyi.zdsz.domain.bo.ZEngiineeringPhotoBo;
 import com.ruoyi.zdsz.domain.bo.ZEngineeringNodeBo;
+import com.ruoyi.zdsz.domain.bo.ZFileBo;
+import com.ruoyi.zdsz.domain.vo.ZEngiineeringPhotoVo;
 import com.ruoyi.zdsz.domain.vo.ZEngineeringCivilVo;
 import com.ruoyi.zdsz.domain.vo.ZEngineeringNodeVo;
+import com.ruoyi.zdsz.service.IZEngiineeringPhotoService;
 import com.ruoyi.zdsz.service.IZEngineeringNodeService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -26,10 +33,8 @@ import com.ruoyi.zdsz.service.IZEngineeringPipeJackingService;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
 
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Collection;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 顶管工程Service业务层处理
@@ -45,6 +50,8 @@ public class ZEngineeringPipeJackingServiceImpl implements IZEngineeringPipeJack
 
     @Autowired
     private IZEngineeringNodeService nodeService;
+    @Autowired
+    private IZEngiineeringPhotoService photoService;
 
     /**
      * 查询顶管工程
@@ -52,6 +59,10 @@ public class ZEngineeringPipeJackingServiceImpl implements IZEngineeringPipeJack
     @Override
     public ZEngineeringPipeJackingVo queryById(String id){
         ZEngineeringPipeJackingVo jackingVo = baseMapper.selectVoById(id);
+        ZEngiineeringPhotoBo bo1 = new ZEngiineeringPhotoBo();
+        bo1.setParentId(jackingVo.getId());
+        bo1.setCreateTime(jackingVo.getCreateTime());
+        jackingVo.setPics(photoService.queryList(bo1));
         ZEngineeringNodeBo bo = new ZEngineeringNodeBo();
         bo.setCreateTime(jackingVo.getCreateTime());
         bo.setCivliId(jackingVo.getId());
@@ -64,6 +75,10 @@ public class ZEngineeringPipeJackingServiceImpl implements IZEngineeringPipeJack
     @Override
     public ZEngineeringPipeJackingVo queryByIdType(String id,String type){
         ZEngineeringPipeJackingVo jackingVo = baseMapper.selectVoById(id);
+        ZEngiineeringPhotoBo bo1 = new ZEngiineeringPhotoBo();
+        bo1.setParentId(jackingVo.getId());
+        bo1.setCreateTime(jackingVo.getCreateTime());
+        jackingVo.setPics(photoService.queryList(bo1));
         ZEngineeringNodeBo bo = new ZEngineeringNodeBo();
         bo.setCreateTime(jackingVo.getCreateTime());
         bo.setCivliId(jackingVo.getId());
@@ -122,14 +137,14 @@ public class ZEngineeringPipeJackingServiceImpl implements IZEngineeringPipeJack
         }
         //市政
         else if("市政工程".equals(bo.getType())){
-            List<Map<String, Object>> civil = baseMapper.getSg(bo.getEnginId(),"2");
+            List<Map<String, Object>> civil = baseMapper.getSg(bo.getEnginId());
             if (!civil.isEmpty()){
                 add.setEnginAddre((String) civil.get(0).get("name"));
             }
         }
         //工业
         else if("工业工程".equals(bo.getType())){
-            List<Map<String, Object>> civil = baseMapper.getSg(bo.getEnginId(),"1");
+            List<Map<String, Object>> civil = baseMapper.getSg(bo.getEnginId());
             if (!civil.isEmpty()){
                 add.setEnginAddre((String) civil.get(0).get("name"));
             }
@@ -162,10 +177,25 @@ public class ZEngineeringPipeJackingServiceImpl implements IZEngineeringPipeJack
                 bo.setId(add.getId());
                 bo.getzEngineeringNodeBo().setCivliId(add.getId());
                 bo.getzEngineeringNodeBo().setCreateTime(bo.getCreateTime());
-                nodeService.insert(bo.getzEngineeringNodeBo());
+                ZEngineeringNode entity = nodeService.insert(bo.getzEngineeringNodeBo());
+                if (!ObjectUtil.isEmpty(entity)){
+                    List<ZEngiineeringPhoto> list = new ArrayList<>();
+                    bo.getFiles().stream().forEach(o->{
+                        ZEngiineeringPhoto pic = new ZEngiineeringPhoto();
+                        pic.setParentId(bo.getId());
+                        pic.setPicUrl(o.getUrl());
+                        pic.setFileName(o.getName());
+                        pic.setUpdateBy(String.valueOf(LoginHelper.getUserId()));
+                        pic.setUpdateTime(new Date());
+                        list.add(pic);
+                    });
+                    if (!list.isEmpty()) {
+                        photoService.insertBatch(list);
+                    }
+                }
             }
         }else {
-            //存在工程
+            //存在这个类型工程
             ZEngineeringNodeBo zEngineeringNodeBo = bo.getzEngineeringNodeBo();
             zEngineeringNodeBo.setCivliId(jackingVo.getId());
             zEngineeringNodeBo.setType(zEngineeringNodeBo.getType());
@@ -180,55 +210,95 @@ public class ZEngineeringPipeJackingServiceImpl implements IZEngineeringPipeJack
         return flag;
     }
 
-    /**
-     * 修改顶管工程
-     */
-    @Override
-    @Transactional(rollbackFor=Exception.class)
-    public Boolean updateByBo(ZEngineeringPipeJackingBo bo) {
-        ZEngineeringPipeJacking update = BeanUtil.toBean(bo, ZEngineeringPipeJacking.class);
-        validEntityBeforeSave(update);
-        //民用
-        if ("民用工程".equals(bo.getType())){
-            List<Map<String, Object>> civil = baseMapper.getCivil(bo.getEnginId());
-            if (!civil.isEmpty()){
-                update.setEnginAddre((String) civil.get(0).get("name"));
-            }
-        }
-        //市政
-        else if("市政工程".equals(bo.getType())){
-            List<Map<String, Object>> civil = baseMapper.getSg(bo.getEnginId(),"2");
-            if (!civil.isEmpty()){
+    private ZEngineeringPipeJacking updateEnginAddre(ZEngineeringPipeJacking update, String type, String enginId) {
+        List<Map<String, Object>> civil = new ArrayList<>();
+
+        if ("民用工程".equals(type)) {
+            civil = baseMapper.getCivil(enginId);
+            if (!civil.isEmpty()) {
                 update.setEnginAddre((String) civil.get(0).get("name"));
             }
-        }
-        //工业
-        else if("工业工程".equals(bo.getType())){
-            List<Map<String, Object>> civil = baseMapper.getSg(bo.getEnginId(),"1");
-            if (!civil.isEmpty()){
+        } else if ("市政工程".equals(type) || "工业工程".equals(type)) {
+            civil = baseMapper.getSg(enginId);
+            if (!civil.isEmpty()) {
                 update.setEnginAddre((String) civil.get(0).get("name"));
             }
-        }
-        // 危险
-        else if("危险作业工程".equals(bo.getType())){
-            List<Map<String, Object>> civil = baseMapper.getDangerous(bo.getEnginId());
-            if (!civil.isEmpty()){
+        } else if ("危险作业工程".equals(type)) {
+            civil = baseMapper.getDangerous(enginId);
+            if (!civil.isEmpty()) {
                 update.setEnginName((String) civil.get(0).get("name"));
                 update.setEnginAddre((String) civil.get(0).get("address"));
             }
-        }
-        //基建
-        else if("基建作业工程".equals(bo.getType())){
-            List<Map<String, Object>> civil = baseMapper.getInfrastructure(bo.getEnginId());
-            if (!civil.isEmpty()){
+        } else if ("基建作业工程".equals(type)) {
+            civil = baseMapper.getInfrastructure(enginId);
+            if (!civil.isEmpty()) {
                 update.setEnginName((String) civil.get(0).get("name"));
                 update.setEnginAddre((String) civil.get(0).get("address"));
             }
         }
+        return update;
+    }
+
+
+
+    /**
+     * 修改顶管工程
+     */
+    @Override
+    @Transactional(rollbackFor=Exception.class)
+    public Boolean updateByBo(ZEngineeringPipeJackingBo bo) {
+        ZEngineeringPipeJacking update = BeanUtil.toBean(bo, ZEngineeringPipeJacking.class);
+        validEntityBeforeSave(update);
+        // 调用新方法
+        update = updateEnginAddre(update, bo.getType(), bo.getEnginId());
         bo.getzEngineeringNodeBo().setCivliId(bo.getId());
         bo.getzEngineeringNodeBo().setCreateTime(bo.getCreateTime());
         nodeService.update(bo.getzEngineeringNodeBo());
-        return baseMapper.updateById(update) > 0;
+        int i = baseMapper.updateById(update);
+        if (i>0){
+            this.doPhotos(update,bo);
+        }
+        return i>0;
+    }
+
+    private void doPhotos(ZEngineeringPipeJacking update,ZEngineeringPipeJackingBo bo) {
+        List<ZEngiineeringPhoto> list = new ArrayList<>();
+
+        // 查询数据库中已存在的文件列表
+        ZEngiineeringPhotoBo bo1 = new ZEngiineeringPhotoBo();
+        bo1.setParentId(update.getId());
+        bo1.setCreateTime(update.getCreateTime());
+        List<String> existingPhotos = photoService.queryList(bo1).stream()
+            .map(ZEngiineeringPhotoVo::getPicUrl)
+            .collect(Collectors.toList());
+
+        // 插入前端传来的新文件
+        for (ZFileBo pic : bo.getFiles()) {
+            if (!existingPhotos.contains(pic)) {
+                ZEngiineeringPhoto newPhoto = new ZEngiineeringPhoto();
+                newPhoto.setParentId(bo.getId());
+                newPhoto.setPicUrl(pic.getUrl());
+                newPhoto.setFileName(pic.getName());
+                newPhoto.setCreateBy(String.valueOf(LoginHelper.getUserId()));
+                newPhoto.setCreateTime(new Date());
+                list.add(newPhoto);
+            }
+        }
+
+        // 删除数据库中多余的文件
+        List<String> photosToDelete = existingPhotos.stream()
+            .filter(pic -> !bo.getFiles().contains(pic))
+            .collect(Collectors.toList());
+        if (!photosToDelete.isEmpty()) {
+            photosToDelete.forEach(item->{
+                photoService.deleteWithValidByurls(item);
+            });
+        }
+
+        // 批量插入新图片
+        if (!list.isEmpty()) {
+            photoService.insertBatch(list);
+        }
     }
 
     /**

+ 4 - 0
ruoyi-zdsz/src/main/resources/mapper/zdsz/ZEngineeringDangerousMapper.xml

@@ -47,4 +47,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="updateBy" column="update_by"/>
         <result property="updateTime" column="update_time"/>
     </resultMap>
+
+    <select id="selectIdByCid" resultType="string">
+        select id from z_engineering_node where civli_id = #{id}
+    </select>
 </mapper>

+ 1 - 1
ruoyi-zdsz/src/main/resources/mapper/zdsz/ZEngineeringPipeJackingMapper.xml

@@ -73,7 +73,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         FROM
             z_engineering_industry as m
         WHERE
-            m.del_flag = '0'  and m.id = #{enginId} and m.type = #{type}
+            m.del_flag = '0'  and m.id = #{enginId}
     </select>
 
 </mapper>