qinhouyu 1 سال پیش
والد
کامیت
7939cdeb1b

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

@@ -58,7 +58,7 @@ public class ZEngineeringPipeJackingController extends BaseController {
      * @param bo
      * @return
      */
-    @GetMapping("/nameList")
+    @GetMapping("/queryListNew")
     public R<List<Map<String,Object>>> nameList(ZEngineeringPipeJackingBo bo) {
         return R.ok(iZEngineeringPipeJackingService.nameList(bo));
     }

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

@@ -101,4 +101,14 @@ public class ZEngineeringInfrastructureBo extends BaseEntity {
     public void setzEngineeringNodeBoList(List<ZEngineeringNodeBo> zEngineeringNodeBoList) {
         this.zEngineeringNodeBoList = zEngineeringNodeBoList;
     }
+
+    private List<ZFileBo> files;
+
+    public List<ZFileBo> getFiles() {
+        return files;
+    }
+
+    public void setFiles(List<ZFileBo> files) {
+        this.files = files;
+    }
 }

+ 11 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/vo/ZEngineeringInfrastructureVo.java

@@ -8,6 +8,7 @@ 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 com.ruoyi.zdsz.service.IZEngiineeringPhotoService;
 import lombok.Data;
 import java.util.Date;
 
@@ -102,4 +103,14 @@ public class ZEngineeringInfrastructureVo extends BaseEntity implements Serializ
     public void setzEngineeringNodeBo(ZEngineeringNodeBo zEngineeringNodeBo) {
         this.zEngineeringNodeBo = zEngineeringNodeBo;
     }
+
+    private List<ZEngiineeringPhotoVo> pics;
+
+    public List<ZEngiineeringPhotoVo> getPics() {
+        return pics;
+    }
+
+    public void setPics(List<ZEngiineeringPhotoVo> pics) {
+        this.pics = pics;
+    }
 }

+ 75 - 10
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/impl/ZEngineeringInfrastructureServiceImpl.java

@@ -1,22 +1,20 @@
 package com.ruoyi.zdsz.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
+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.zdsz.domain.ZEngiineeringPhoto;
 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.ZEngineeringInfrastructureSelectVo;
-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.domain.ZEngineeringPipeJacking;
+import com.ruoyi.zdsz.domain.bo.*;
+import com.ruoyi.zdsz.domain.vo.*;
 import com.ruoyi.zdsz.mapper.ZEngineeringInfrastructureMapper;
+import com.ruoyi.zdsz.service.IZEngiineeringPhotoService;
 import com.ruoyi.zdsz.service.IZEngineeringInfrastructureService;
 import com.ruoyi.zdsz.service.IZEngineeringNodeService;
 import com.ruoyi.zdsz.service.IZEngineeringReviewService;
@@ -27,6 +25,7 @@ import org.springframework.util.ObjectUtils;
 
 import javax.annotation.Resource;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 基建工程Service业务层处理
@@ -43,6 +42,8 @@ public class ZEngineeringInfrastructureServiceImpl implements IZEngineeringInfra
 
     @Resource
     private final IZEngineeringNodeService izEngineeringNodeService;
+    @Resource
+    private IZEngiineeringPhotoService photoService;
 
     @Resource
     private final IZEngineeringReviewService izEngineeringReviewService;
@@ -58,6 +59,12 @@ public class ZEngineeringInfrastructureServiceImpl implements IZEngineeringInfra
         zEngineeringNodeBo.setCivliId(vo.getId());
         vo.setzEngineeringNodeBoList(izEngineeringNodeService.queryListDetails(zEngineeringNodeBo));
         List<ZEngineeringNodeBo> nodeList = vo.getzEngineeringNodeBoList();
+        //文件
+        ZEngiineeringPhotoBo bo1 = new ZEngiineeringPhotoBo();
+        bo1.setParentId(vo.getId());
+        bo1.setCreateTime(vo.getCreateTime());
+        vo.setPics(photoService.queryList(bo1));
+
         if(nodeList != null && nodeList.size() > 0){
             for (ZEngineeringNodeBo node : nodeList) {
                 String type = node.getType();
@@ -189,10 +196,68 @@ public class ZEngineeringInfrastructureServiceImpl implements IZEngineeringInfra
                 }
                 izEngineeringNodeService.insert(bo.getzEngineeringNodeBo());
             }
+            //文件集合
+            if (!bo.getFiles().isEmpty()){
+                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());
+                    pic.setUpdateBy(String.valueOf(LoginHelper.getUserId()));
+                    pic.setUpdateTime(new Date());
+                    list.add(pic);
+                });
+                if (!list.isEmpty()) {
+                    photoService.insertBatch(list);
+                }
+            }
         }
         return flag;
     }
+    private void doPhotos(ZEngineeringInfrastructure update, ZEngineeringInfrastructureBo 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.getUrl())) {
+                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());
+                newPhoto.setUpdateBy(String.valueOf(LoginHelper.getUserId()));
+                newPhoto.setUpdateTime(new Date());
+                list.add(newPhoto);
+            }
+        }
+
+        // 删除数据库中多余的文件
+        List<String> photosToDelete = existingPhotos.stream()
+            .filter(pic -> !bo.getFiles().stream().map(ZFileBo::getUrl).collect(Collectors.toList()).contains(pic))
+            .collect(Collectors.toList());
+        if (!photosToDelete.isEmpty()) {
+            photosToDelete.forEach(item->{
+                photoService.deleteWithValidByurls(item);
+            });
+        }
 
+        // 批量插入新图片
+        if (!list.isEmpty()) {
+            photoService.insertBatch(list);
+        }
+    }
     /**
      * 新增基建工程审核
      */
@@ -221,8 +286,8 @@ public class ZEngineeringInfrastructureServiceImpl implements IZEngineeringInfra
         boolean flag = baseMapper.updateById(update) > 0;
         if (flag) {
             ZEngineeringInfrastructureVo vo = baseMapper.selectVoById(update.getId());
-
-
+            //文件
+            this.doPhotos(update,bo);
             List<ZEngineeringNodeBo> nodeBoList = bo.getzEngineeringNodeBoList();
             if(nodeBoList != null && nodeBoList.size() != 0){
                 for (ZEngineeringNodeBo nodeBo:nodeBoList) {

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

@@ -144,7 +144,7 @@ public class ZEngineeringPipeJackingServiceImpl implements IZEngineeringPipeJack
             if (flag) {
                 bo.setId(add.getId());
                 //多表单
-                if (!bo.getzEngineeringNodeBoList().isEmpty()){
+                if (ObjectUtil.isEmpty(bo.getzEngineeringNodeBo())){
                     for (int i = 0; i < bo.getzEngineeringNodeBoList().size(); i++) {
                         bo.getzEngineeringNodeBoList().get(i).setCivliId(add.getId());
                         bo.getzEngineeringNodeBoList().get(i).setCreateTime(add.getCreateTime());
@@ -178,7 +178,7 @@ public class ZEngineeringPipeJackingServiceImpl implements IZEngineeringPipeJack
             }
         }else {
             //多表单
-            if (!bo.getzEngineeringNodeBoList().isEmpty()){
+            if (ObjectUtil.isEmpty(bo.getzEngineeringNodeBo())){
                 for (int i = 0; i < bo.getzEngineeringNodeBoList().size(); i++) {
                     bo.getzEngineeringNodeBoList().get(i).setCivliId(add.getId());
                     bo.getzEngineeringNodeBoList().get(i).setCreateTime(add.getCreateTime());
@@ -188,9 +188,9 @@ public class ZEngineeringPipeJackingServiceImpl implements IZEngineeringPipeJack
             //单表单
             else {
                 ZEngineeringNodeBo zEngineeringNodeBo = bo.getzEngineeringNodeBo();
-                zEngineeringNodeBo.setCivliId(add.getId());
+                zEngineeringNodeBo.setCivliId(jackingVo.getId());
                 zEngineeringNodeBo.setType(zEngineeringNodeBo.getType());
-                zEngineeringNodeBo.setCreateTime(add.getCreateTime());
+                zEngineeringNodeBo.setCreateTime(jackingVo.getCreateTime());
                 ZEngineeringNodeBo query = nodeService.query(zEngineeringNodeBo);
                 if (!ObjectUtils.isEmpty(query)) {
                     zEngineeringNodeBo.setId(query.getId());