Переглянути джерело

市政工程|工业工程 修改方法更改

刘浩男 1 рік тому
батько
коміт
cdd8c7e013

+ 12 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/zdsz/ZEngineeringIndustryController.java

@@ -123,4 +123,16 @@ public class ZEngineeringIndustryController extends BaseController {
     public R<List<ZEngineeringIndustryTypeVo>> queryNameByType(ZEngineeringIndustryBo bo) {
         return R.ok(iZEngineeringIndustryService.queryNameByType(bo));
     }
+
+    /**
+     * 工业工程|市政工程修改工程
+     */
+    @PutMapping("/updateNodeByBo")
+    @Log(title = "工业工程|市政工程", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @SaCheckPermission("zdsz:engineeringIndustry:removeNode")
+    public R<Void> updateNodeByBo(@Validated(EditGroup.class) @RequestBody ZEngineeringIndustryBo bo) {
+        return toAjax(iZEngineeringIndustryService.updateNodeByBo(bo));
+    }
+
 }

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

@@ -42,6 +42,8 @@ public interface IZEngineeringIndustryService {
      */
     Boolean updateByBo(ZEngineeringIndustryBo bo);
 
+    Boolean updateNodeByBo(ZEngineeringIndustryBo bo);
+
     /**
      * 校验并批量删除工业工程|市政工程信息
      */

+ 74 - 17
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/impl/ZEngineeringIndustryServiceImpl.java

@@ -11,7 +11,6 @@ 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.ZEngineeringNode;
 import com.ruoyi.zdsz.domain.bo.ZEngiineeringPhotoBo;
 import com.ruoyi.zdsz.domain.bo.ZEngineeringIndustryBo;
 import com.ruoyi.zdsz.domain.bo.ZEngineeringNodeBo;
@@ -26,6 +25,7 @@ import com.ruoyi.zdsz.service.IZEngineeringNodeService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.ObjectUtils;
 
 import javax.annotation.Resource;
 import java.util.*;
@@ -58,10 +58,12 @@ public class ZEngineeringIndustryServiceImpl implements IZEngineeringIndustrySer
     @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());
@@ -155,6 +157,64 @@ public class ZEngineeringIndustryServiceImpl implements IZEngineeringIndustrySer
                 .map(ZEngiineeringPhotoVo::getPicUrl)
                 .collect(Collectors.toList());
             // 插入前端传来的新文件
+            if (!ObjectUtils.isEmpty(bo.getFiles())){
+                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());
+                        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);
+                }
+            }
+        }
+        bo.getzEngineeringNodeBo().setCivliId(bo.getId());
+        bo.getzEngineeringNodeBo().setType(bo.getType());
+        ZEngineeringNodeBo zEngineeringNodeBo = new ZEngineeringNodeBo();
+        zEngineeringNodeBo.setCivliId(bo.getId());
+        zEngineeringNodeBo.setType(bo.getType());
+        zEngineeringNodeBo.setCreateTime(baseMapper.selectVoById(bo.getId()).getCreateTime());
+        ZEngineeringNodeBo query = izEngineeringNodeService.query(zEngineeringNodeBo);
+        if (query != null) {
+            bo.getzEngineeringNodeBo().setId(query.getId());
+        }
+        izEngineeringNodeService.insert(bo.getzEngineeringNodeBo());
+        return flag;
+    }
+
+    /**
+     * 修改工业工程|市政工程
+     */
+    @Override
+    public Boolean updateNodeByBo(ZEngineeringIndustryBo bo) {
+        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.getUrl())) {
                     ZEngiineeringPhoto newPhoto = new ZEngiineeringPhoto();
@@ -182,18 +242,11 @@ public class ZEngineeringIndustryServiceImpl implements IZEngineeringIndustrySer
         }
         bo.getzEngineeringNodeBo().setCivliId(bo.getId());
         bo.getzEngineeringNodeBo().setType(bo.getType());
-        ZEngineeringNodeBo zEngineeringNodeBo = new ZEngineeringNodeBo();
-        zEngineeringNodeBo.setCivliId(bo.getId());
-        zEngineeringNodeBo.setType(bo.getType());
-        zEngineeringNodeBo.setCreateTime(baseMapper.selectVoById(bo.getId()).getCreateTime());
-        ZEngineeringNodeBo query = izEngineeringNodeService.query(zEngineeringNodeBo);
-        if (query != null) {
-            bo.getzEngineeringNodeBo().setId(query.getId());
-        }
-        izEngineeringNodeService.insert(bo.getzEngineeringNodeBo());
+        izEngineeringNodeService.update(bo.getzEngineeringNodeBo());
         return flag;
     }
 
+
     /**
      * 保存前的数据校验
      */
@@ -252,19 +305,23 @@ public class ZEngineeringIndustryServiceImpl implements IZEngineeringIndustrySer
 
     @Override
     public List<ZEngineeringIndustryTypeVo> queryNameByType(ZEngineeringIndustryBo bo) {
-        QueryWrapper<ZEngineeringIndustry> zEngineeringIndustryTypeVoQueryWrapper = buildListByType(bo);
-        List<ZEngineeringIndustry> zEngineeringIndustryVos = baseMapper.selectList(zEngineeringIndustryTypeVoQueryWrapper);
+        LambdaQueryWrapper<ZEngineeringIndustry> zEngineeringIndustryBoLambdaQueryWrapper = buildListByType(bo);
+        List<ZEngineeringIndustry> zEngineeringIndustryVos = baseMapper.selectList(zEngineeringIndustryBoLambdaQueryWrapper);
         List<ZEngineeringIndustryTypeVo> zEngineeringIndustryTypeVos = zEngineeringIndustryVos.stream()
             .map(ZEngineeringIndustryTypeVo::new)
             .collect(Collectors.toList());
         return zEngineeringIndustryTypeVos;
     }
 
-    private QueryWrapper<ZEngineeringIndustry> buildListByType(ZEngineeringIndustryBo bo) {
-        QueryWrapper<ZEngineeringIndustry> queryWrapper = new QueryWrapper<ZEngineeringIndustry>()
-            .select("id", "engin_name")
-            .eq("engin_type", bo.getEnginType())
-            .eq("type", bo.getType());
+    private LambdaQueryWrapper<ZEngineeringIndustry> buildListByType(ZEngineeringIndustryBo bo) {
+
+        LambdaQueryWrapper<ZEngineeringIndustry> queryWrapper = new LambdaQueryWrapper<ZEngineeringIndustry>();
+        queryWrapper.eq(StringUtils.isNotBlank(bo.getEnginType()), ZEngineeringIndustry::getEnginType, bo.getEnginType());
+        queryWrapper.eq(StringUtils.isNotBlank(bo.getType()), ZEngineeringIndustry::getType, bo.getType());
+        if (!"null".equals(bo.getEnginClassification())) {
+            queryWrapper.eq(StringUtils.isNotBlank(bo.getEnginClassification()), ZEngineeringIndustry::getEnginClassification, bo.getEnginClassification());
+        }
+
         return queryWrapper;
     }
 

+ 40 - 34
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/service/impl/ZEngineeringInfoServiceImpl.java

@@ -53,11 +53,12 @@ public class ZEngineeringInfoServiceImpl implements IZEngineeringInfoService {
     private ISysUserService sysUserService;
     @Resource
     private IZEngineeringReviewService izEngineeringReviewService;
+
     /**
      * 查询工程详情
      */
     @Override
-    public ZEngineeringInfoVo queryById(String id){
+    public ZEngineeringInfoVo queryById(String id) {
         return baseMapper.selectVoById(id);
     }
 
@@ -65,20 +66,20 @@ public class ZEngineeringInfoServiceImpl implements IZEngineeringInfoService {
     @DynamicName(spel = "#bo.createTime")
     public List<ZEngineeringInfoBo> query(ZEngineeringNodeBo bo) {
         LambdaQueryWrapper<ZEngineeringInfo> lqw = Wrappers.lambdaQuery();
-        List<ZEngineeringInfo> zEngineeringInfoVoList= baseMapper.selectList(lqw.eq(StringUtils.isNotBlank(bo.getId()), ZEngineeringInfo::getEngInfoId, bo.getId()));
-        List<ZEngineeringInfoBo> zEngineeringInfoBoList=new ArrayList<>();
-        zEngineeringInfoVoList.stream().forEach(item->{
+        List<ZEngineeringInfo> zEngineeringInfoVoList = baseMapper.selectList(lqw.eq(StringUtils.isNotBlank(bo.getId()), ZEngineeringInfo::getEngInfoId, bo.getId()));
+        List<ZEngineeringInfoBo> zEngineeringInfoBoList = new ArrayList<>();
+        zEngineeringInfoVoList.stream().forEach(item -> {
             ZEngineeringInfoBo zEngineeringInfoBo1 = BeanUtil.toBean(item, ZEngineeringInfoBo.class);
-            SysUser sysUser=sysUserService.selectUserByUserName(item.getCreateBy());
+            SysUser sysUser = sysUserService.selectUserByUserName(item.getCreateBy());
             zEngineeringInfoBo1.setHeadName(sysUser.getNickName());
             zEngineeringInfoBo1.setConstructUser(sysUser.getNickName());
             zEngineeringInfoBo1.setHeadPhone(sysUser.getPhonenumber());
             zEngineeringInfoBo1.setConstructPhone(sysUser.getPhonenumber());
-            List<String> photoList=izEngiineeringPhotoService.queryList(zEngineeringInfoBo1);
-            List<ZEngineeringMaterialBo> zEngineeringMaterialBo=izEngineeringMaterialService.query(zEngineeringInfoBo1);
+            List<String> photoList = izEngiineeringPhotoService.queryList(zEngineeringInfoBo1);
+            List<ZEngineeringMaterialBo> zEngineeringMaterialBo = izEngineeringMaterialService.query(zEngineeringInfoBo1);
             zEngineeringInfoBo1.setzEngiineeringPhotoBoList(photoList);
             zEngineeringInfoBo1.setzEngineeringMaterialBo(zEngineeringMaterialBo);
-            ZEngineeringReviewBo zEngineeringReviewbo=izEngineeringReviewService.query(bo);
+            ZEngineeringReviewBo zEngineeringReviewbo = izEngineeringReviewService.query(bo);
             zEngineeringInfoBo1.setzEngineeringReviewBo(zEngineeringReviewbo);
             zEngineeringInfoBoList.add(zEngineeringInfoBo1);
         });
@@ -134,14 +135,16 @@ public class ZEngineeringInfoServiceImpl implements IZEngineeringInfoService {
         }
         return flag;
     }
+
     /**
-     *  新增工程详情(节点使用)
+     * 新增工程详情(节点使用)
+     *
      * @param bo
      * @return ZEngineeringInfo
      */
     @Override
     @DynamicName(spel = "#bo.createTime")
-    @Transactional(rollbackFor=Exception.class)
+    @Transactional(rollbackFor = Exception.class)
 
     public ZEngineeringInfo insert(ZEngineeringInfoBo bo) {
         ZEngineeringInfo add = BeanUtil.toBean(bo, ZEngineeringInfo.class);
@@ -152,25 +155,26 @@ public class ZEngineeringInfoServiceImpl implements IZEngineeringInfoService {
         if (flag) {
             bo.setId(add.getId());
         }
-        if (bo.getzEngineeringMaterialBo()!=null&&bo.getzEngineeringMaterialBo().size()>0)
-        {
-        bo.getzEngineeringMaterialBo().stream().forEach(item->{
-            item.setDetailsId(add.getId());
-            item.setCreateTime(bo.getCreateTime());
-            item.setUpdateTime(bo.getUpdateTime());
-            izEngineeringMaterialService.insert(item);
-        });
+        if (bo.getzEngineeringMaterialBo() != null && bo.getzEngineeringMaterialBo().size() > 0) {
+            bo.getzEngineeringMaterialBo().stream().forEach(item -> {
+                item.setDetailsId(add.getId());
+                item.setCreateTime(bo.getCreateTime());
+                item.setUpdateTime(bo.getUpdateTime());
+                izEngineeringMaterialService.insert(item);
+            });
         }
-        List <ZEngiineeringPhoto> photoList=new ArrayList();
-            bo.getzEngiineeringPhotoBoList().stream().forEach(item->{
-            ZEngiineeringPhoto zEngiineeringPhoto=new ZEngiineeringPhoto();
+        List<ZEngiineeringPhoto> photoList = new ArrayList();
+        bo.getzEngiineeringPhotoBoList().forEach(item -> {
+            ZEngiineeringPhoto zEngiineeringPhoto = new ZEngiineeringPhoto();
             zEngiineeringPhoto.setParentId(add.getId());
             zEngiineeringPhoto.setPicUrl(item);
             zEngiineeringPhoto.setCreateTime(bo.getCreateTime());
             zEngiineeringPhoto.setUpdateTime(bo.getUpdateTime());
-                photoList.add(zEngiineeringPhoto);
+            photoList.add(zEngiineeringPhoto);
         });
-        izEngiineeringPhotoService.insertBatch(photoList);
+        if (!photoList.isEmpty()) {
+            izEngiineeringPhotoService.insertBatch(photoList);
+        }
         return add;
     }
 
@@ -189,15 +193,17 @@ public class ZEngineeringInfoServiceImpl implements IZEngineeringInfoService {
     public Boolean update(ZEngineeringInfoBo bo) {
         ZEngineeringInfo update = BeanUtil.toBean(bo, ZEngineeringInfo.class);
         validEntityBeforeSave(update);
-        List <ZEngiineeringPhoto> photoList=new ArrayList();
-        bo.getzEngiineeringPhotoBoList().stream().forEach(item->{
-            ZEngiineeringPhoto zEngiineeringPhoto=new ZEngiineeringPhoto();
+        List<ZEngiineeringPhoto> photoList = new ArrayList();
+        bo.getzEngiineeringPhotoBoList().stream().forEach(item -> {
+            ZEngiineeringPhoto zEngiineeringPhoto = new ZEngiineeringPhoto();
             zEngiineeringPhoto.setParentId(update.getId());
             zEngiineeringPhoto.setPicUrl(item);
             zEngiineeringPhoto.setCreateTime(bo.getCreateTime());
             photoList.add(zEngiineeringPhoto);
         });
-        izEngiineeringPhotoService.updateBatch(photoList);
+        if (!photoList.isEmpty()) {
+            izEngiineeringPhotoService.updateBatch(photoList);
+        }
         izEngineeringMaterialService.updateList(bo);
         return baseMapper.updateById(update) > 0;
     }
@@ -205,7 +211,7 @@ public class ZEngineeringInfoServiceImpl implements IZEngineeringInfoService {
     /**
      * 保存前的数据校验
      */
-    private void validEntityBeforeSave(ZEngineeringInfo entity){
+    private void validEntityBeforeSave(ZEngineeringInfo entity) {
         //TODO 做一些数据校验,如唯一约束
     }
 
@@ -214,7 +220,7 @@ public class ZEngineeringInfoServiceImpl implements IZEngineeringInfoService {
      */
     @Override
     public Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid) {
-        if(isValid){
+        if (isValid) {
             //TODO 做一些业务上的校验,判断是否需要校验
         }
         return baseMapper.deleteBatchIds(ids) > 0;
@@ -226,8 +232,8 @@ public class ZEngineeringInfoServiceImpl implements IZEngineeringInfoService {
     public Boolean delete(ZEngineeringNodeBo bo) {
         LambdaQueryWrapper<ZEngineeringInfo> lqw = Wrappers.lambdaQuery();
         lqw.eq(StringUtils.isNotBlank(bo.getId()), ZEngineeringInfo::getEngInfoId, bo.getId());
-        List<ZEngineeringInfo> zEngineeringInfo= baseMapper.selectList(lqw);
-        zEngineeringInfo.stream().forEach(item->{
+        List<ZEngineeringInfo> zEngineeringInfo = baseMapper.selectList(lqw);
+        zEngineeringInfo.stream().forEach(item -> {
             ZEngineeringInfoBo zEngineeringInfobo = BeanUtil.toBean(item, ZEngineeringInfoBo.class);
             izEngiineeringPhotoService.delete(zEngineeringInfobo);
             izEngineeringMaterialService.delete(zEngineeringInfobo);
@@ -240,10 +246,10 @@ public class ZEngineeringInfoServiceImpl implements IZEngineeringInfoService {
     public List<ZEngineeringMaterialBo> getzEngineeringMaterialBoList(ZEngineeringNodeBo bo) {
         LambdaQueryWrapper<ZEngineeringInfo> lqw = Wrappers.lambdaQuery();
         lqw.eq(StringUtils.isNotBlank(bo.getId()), ZEngineeringInfo::getEngInfoId, bo.getId());
-        List<ZEngineeringInfo> zEngineeringInfo= baseMapper.selectList(lqw);
-        List<ZEngineeringMaterialBo> zEngineeringMaterialBoList=new ArrayList<>();
+        List<ZEngineeringInfo> zEngineeringInfo = baseMapper.selectList(lqw);
+        List<ZEngineeringMaterialBo> zEngineeringMaterialBoList = new ArrayList<>();
 
-        zEngineeringInfo.stream().forEach(item->{
+        zEngineeringInfo.stream().forEach(item -> {
             ZEngineeringInfoBo zEngineeringInfoBo = BeanUtil.toBean(item, ZEngineeringInfoBo.class);
             zEngineeringMaterialBoList.addAll(izEngineeringMaterialService.query(zEngineeringInfoBo));
         });