فهرست منبع

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

wangtong 1 سال پیش
والد
کامیت
a9af5e106c

+ 6 - 2
ruoyi-admin/src/main/java/com/ruoyi/web/controller/zdsz/ObsController.java

@@ -1,10 +1,13 @@
 package com.ruoyi.web.controller.zdsz;
 
+import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.framework.obs.ObsService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.MediaType;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
@@ -24,8 +27,9 @@ public class ObsController extends BaseController {
     /**
      * 上传文件
      */
-    @PostMapping
-    public R uploadFile(@RequestBody MultipartFile file) throws Exception {
+    @Log(title = "OBS对象存储", businessType = BusinessType.INSERT)
+    @PostMapping(consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
+    public R uploadFile(@RequestPart("file") MultipartFile file) throws Exception {
         return R.ok(obsService.uploadFile(file));
     }
 

+ 11 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/zdsz/ZEngiineeringPhotoController.java

@@ -105,4 +105,15 @@ public class ZEngiineeringPhotoController extends BaseController {
                           @PathVariable String[] ids) {
         return toAjax(iZEngiineeringPhotoService.deleteWithValidByIds(Arrays.asList(ids), true));
     }
+
+    /**
+     * 删除照片也删除obs
+     *
+     */
+    @SaCheckPermission("zdsz:engiineeringPhoto:remove")
+    @Log(title = "照片", businessType = BusinessType.DELETE)
+    @DeleteMapping("/url")
+    public R remove1(ZEngiineeringPhotoBo bo) {
+        return toAjax(iZEngiineeringPhotoService.deleteWithValidByurls(bo.getPicUrl()));
+    }
 }

+ 1 - 1
ruoyi-admin/src/main/resources/application-dev.yml

@@ -187,7 +187,7 @@ huawei:
     upload:
       endPoint: obs.cn-south-1.myhuaweicloud.com
     access:
-      endPoint: https://zdsz.obs.cn-south-1.myhuaweicloud.com
+      endPoint: https://zdszcs.obs.cn-south-1.myhuaweicloud.com
     bucketName: zdszcs
 tableNames:
   #动态表名月分(该处为需要动态表的表名,号分割)

+ 27 - 8
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/bo/ZComprehensiveBo.java

@@ -2,14 +2,17 @@ package com.ruoyi.zdsz.domain.bo;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonProperty;
 import com.ruoyi.common.core.validate.AddGroup;
 import com.ruoyi.common.core.validate.EditGroup;
 import com.ruoyi.common.core.validate.QueryGroup;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
+
 import javax.validation.constraints.*;
 
 import java.util.Date;
+import java.util.List;
 
 import com.ruoyi.common.core.domain.BaseEntity;
 
@@ -27,52 +30,65 @@ public class ZComprehensiveBo extends BaseEntity {
     /**
      *
      */
-    @NotBlank(message = "不能为空", groups = { EditGroup.class })
+    @NotBlank(message = "不能为空", groups = {EditGroup.class})
     @TableId(type = IdType.ASSIGN_UUID)
     private String id;
 
     /**
      * 小区id
      */
-    @NotBlank(message = "小区id不能为空", groups = { AddGroup.class, EditGroup.class })
+    @NotBlank(message = "小区id不能为空", groups = {AddGroup.class, EditGroup.class})
     private String areaId;
 
     /**
      * 楼栋id
      */
-    @NotBlank(message = "楼栋id不能为空", groups = { AddGroup.class, EditGroup.class })
+    @NotBlank(message = "楼栋id不能为空", groups = {AddGroup.class, EditGroup.class})
     private String buildingId;
 
     /**
      * 单元id
      */
-    @NotBlank(message = "单元id不能为空", groups = { AddGroup.class, EditGroup.class })
+    @NotBlank(message = "单元id不能为空", groups = {AddGroup.class, EditGroup.class})
     private String unitId;
 
     /**
      * 房间id
      */
-    @NotBlank(message = "房间id不能为空", groups = { AddGroup.class, EditGroup.class })
+    @NotBlank(message = "房间id不能为空", groups = {AddGroup.class, EditGroup.class})
     private String houseId;
 
     /**
      * 类型
      */
-    @NotBlank(message = "类型不能为空", groups = { AddGroup.class, EditGroup.class, QueryGroup.class })
+    @NotBlank(message = "类型不能为空", groups = {AddGroup.class, EditGroup.class, QueryGroup.class})
     private String type;
 
     /**
      * 安检是否合格
      */
-    @NotBlank(message = "安检是否合格不能为空", groups = { AddGroup.class, EditGroup.class })
+    @NotBlank(message = "安检是否合格不能为空", groups = {AddGroup.class, EditGroup.class})
     private String isQualified;
 
     /**
      * 是否维修
      */
-    @NotBlank(message = "是否维修不能为空", groups = { AddGroup.class, EditGroup.class })
+    @NotBlank(message = "是否维修不能为空", groups = {AddGroup.class, EditGroup.class})
     private String isMaintenance;
 
+    public List<String> getPicIds() {
+        return picIds;
+    }
+
+    public void setPicIds(List<String> picIds) {
+        if (picIds != null && (!picIds.isEmpty())) {
+            this.picIds = picIds;
+        }
+        else {
+            throw new IllegalArgumentException("照片必须上传");
+        }
+    }
+
     /**
      * 备注
      */
@@ -80,4 +96,7 @@ public class ZComprehensiveBo extends BaseEntity {
     private String remark;
 
 
+    @JsonProperty(value = "picIds")
+    private List<String> picIds;
+
 }

+ 1 - 1
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/domain/bo/ZEngiineeringPhotoBo.java

@@ -42,7 +42,7 @@ public class ZEngiineeringPhotoBo extends BaseEntity {
     /**
      * 备注
      */
-    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
+//    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
     private String remark;
 
 

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

@@ -8,6 +8,8 @@ import lombok.Data;
 import java.util.Date;
 
 import java.io.Serializable;
+import java.util.List;
+import java.util.Map;
 
 /**
  * 开栓|安检|维修视图对象 z_comprehensive
@@ -87,4 +89,13 @@ public class ZComprehensiveVo implements Serializable {
     @ExcelProperty(value = "房间号")
     private String houseName;
 
+    /**
+     * 入参
+     */
+    private List<String> picIds;
+    /**
+     * 出参
+     */
+    private List<Map<String,Object>> mapList;
+
 }

+ 5 - 0
ruoyi-zdsz/src/main/java/com/ruoyi/zdsz/mapper/ZEngiineeringPhotoMapper.java

@@ -5,7 +5,9 @@ import com.ruoyi.zdsz.domain.vo.ZEngiineeringPhotoVo;
 import com.ruoyi.common.core.mapper.BaseMapperPlus;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.Collection;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 照片Mapper接口
@@ -15,4 +17,7 @@ import java.util.List;
  */
 public interface ZEngiineeringPhotoMapper extends BaseMapperPlus<ZEngiineeringPhotoMapper, ZEngiineeringPhoto, ZEngiineeringPhotoVo> {
     int deleteByUrl( @Param("list") List<String> list);
+
+    List<Map<String,Object>> getlist(String id);
+    int deleteByUrls(String url);
 }

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

@@ -66,4 +66,6 @@ public interface IZEngiineeringPhotoService {
      */
     Boolean delete(ZEngineeringInfoBo bo);
     Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);
+
+    Boolean deleteWithValidByurls(String url);
 }

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

@@ -1,6 +1,7 @@
 package com.ruoyi.zdsz.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
+import com.ruoyi.common.helper.LoginHelper;
 import com.ruoyi.common.utils.PageUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.core.page.TableDataInfo;
@@ -8,8 +9,12 @@ 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.bo.ZEngiineeringPhotoBo;
 import com.ruoyi.zdsz.domain.bo.ZHouseBo;
+import com.ruoyi.zdsz.domain.vo.ZEngiineeringPhotoVo;
 import com.ruoyi.zdsz.domain.vo.ZHouseVo;
+import com.ruoyi.zdsz.mapper.ZEngiineeringPhotoMapper;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 import com.ruoyi.zdsz.domain.bo.ZComprehensiveBo;
@@ -17,10 +22,11 @@ import com.ruoyi.zdsz.domain.vo.ZComprehensiveVo;
 import com.ruoyi.zdsz.domain.ZComprehensive;
 import com.ruoyi.zdsz.mapper.ZComprehensiveMapper;
 import com.ruoyi.zdsz.service.IZComprehensiveService;
+import org.springframework.transaction.annotation.Transactional;
 
-import java.util.List;
-import java.util.Map;
-import java.util.Collection;
+import javax.annotation.Resource;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 开栓|安检|维修Service业务层处理
@@ -34,12 +40,22 @@ public class ZComprehensiveServiceImpl implements IZComprehensiveService {
 
     private final ZComprehensiveMapper baseMapper;
 
+    @Resource
+    private ZEngiineeringPhotoMapper photoMapper;
+
     /**
      * 查询开栓|安检|维修
      */
     @Override
     public ZComprehensiveVo queryById(String id){
-        return baseMapper.selectVoById(id);
+        ZComprehensiveVo vo = baseMapper.selectVoById(id);
+//        List<Map<String,Object>> list = new ArrayList<>();
+//        Map<String,Object> map = new HashMap<>();
+//        map.put("url","http://localhost/static/img/profile.f470f2a8.jpg");
+//        map.put("id","111");
+//        list.add(map);
+        vo.setMapList(photoMapper.getlist(id));
+        return vo;
     }
 
     /**
@@ -81,12 +97,25 @@ public class ZComprehensiveServiceImpl implements IZComprehensiveService {
      * 新增开栓|安检|维修
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Boolean insertByBo(ZComprehensiveBo bo) {
         ZComprehensive add = BeanUtil.toBean(bo, ZComprehensive.class);
         validEntityBeforeSave(add);
         boolean flag = baseMapper.insert(add) > 0;
         if (flag) {
             bo.setId(add.getId());
+            List<ZEngiineeringPhoto> list = new ArrayList<>();
+            bo.getPicIds().stream().forEach(o->{
+                ZEngiineeringPhoto pic = new ZEngiineeringPhoto();
+                pic.setParentId(bo.getId());
+                pic.setPicUrl(o);
+                pic.setUpdateBy(String.valueOf(LoginHelper.getUserId()));
+                pic.setUpdateTime(new Date());
+                list.add(pic);
+            });
+            if (list.size()>0) {
+                photoMapper.insertBatch(list);
+            }
         }
         return flag;
     }
@@ -98,6 +127,27 @@ public class ZComprehensiveServiceImpl implements IZComprehensiveService {
     public Boolean updateByBo(ZComprehensiveBo bo) {
         ZComprehensive update = BeanUtil.toBean(bo, ZComprehensive.class);
         validEntityBeforeSave(update);
+        if (StringUtils.isNotBlank(bo.getId())) {
+            bo.setId(bo.getId());
+            List<ZEngiineeringPhoto> list = new ArrayList<>();
+            if (!bo.getPicIds().isEmpty()) {
+                List<String> collect = photoMapper.getlist(bo.getId()).stream().map(ele -> String.valueOf(ele.get("url"))).collect(Collectors.toList());
+                if (!collect.isEmpty()) {
+                    bo.setPicIds(bo.getPicIds().stream().filter(pic -> !collect.contains(pic)).collect(Collectors.toList()));
+                }
+                bo.getPicIds().stream().forEach(o -> {
+                    ZEngiineeringPhoto pic = new ZEngiineeringPhoto();
+                    pic.setParentId(bo.getId());
+                    pic.setPicUrl(o);
+                    pic.setCreateBy(String.valueOf(LoginHelper.getUserId()));
+                    pic.setCreateTime(new Date());
+                    list.add(pic);
+                });
+                if (list.size()>0) {
+                    photoMapper.insertBatch(list);
+                }
+            }
+        }
         return baseMapper.updateById(update) > 0;
     }
 
@@ -112,6 +162,7 @@ public class ZComprehensiveServiceImpl implements IZComprehensiveService {
      * 批量删除开栓|安检|维修
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid) {
         if(isValid){
             //TODO 做一些业务上的校验,判断是否需要校验

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

@@ -210,4 +210,18 @@ public class ZEngiineeringPhotoServiceImpl implements IZEngiineeringPhotoService
         }
         return baseMapper.deleteBatchIds(ids) > 0;
     }
+
+    /**
+     * 删除照片
+     */
+    @Override
+    public Boolean deleteWithValidByurls(String url) {
+        try {
+            obsService.deleteFile(url);
+        } catch (Exception e) {
+
+        }
+        return baseMapper.deleteByUrls(url) > 0;
+    }
+
 }

+ 14 - 3
ruoyi-zdsz/src/main/resources/mapper/zdsz/ZEngiineeringPhotoMapper.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.zdsz.mapper.ZEngiineeringPhotoMapper">
 
     <resultMap type="com.ruoyi.zdsz.domain.ZEngiineeringPhoto" id="ZEngiineeringPhotoResult">
@@ -19,10 +19,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <delete id="deleteByUrl" parameterType="String">
         delete from g_emergency_repair_photo where
-         pic_url in
+        pic_url in
         <foreach item="item" index="index" collection="list" open="(" separator="," close=")">
             #{item}
         </foreach>
     </delete>
 
+    <update id="deleteByUrls" parameterType="String">
+        UPDATE z_engiineering_photo
+        SET del_flag = '2'
+        WHERE pic_url = #{url}
+
+    </update>
+
+    <select id="getlist" resultType="java.util.Map">
+        select id,parent_id as parentId,pic_url as url ,del_flag as delFlag,create_by as creatBy,create_time as createTime from z_engiineering_photo where del_flag = '0' and parent_id = #{id}
+    </select>
+
 </mapper>