优化巡查记录的图片回显

master
yangxiaozhong 4 weeks ago
parent d3d94f468b
commit 1fd2c588a7

@ -70,4 +70,12 @@ public interface FileApi {
CommonResult<String> presignGetUrl(@NotEmpty(message = "URL 不能为空") @RequestParam("url") String url,
Integer expirationSeconds);
/**
* idurl
*/
@GetMapping(PREFIX + "/getUrl")
@Operation(summary = "根据id返回文件的访问路径")
CommonResult<String> getUrlById(@NotEmpty(message = "id不能为空") @RequestParam("id") String id);
}

@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.infra.api.file;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.module.infra.api.file.dto.FileCreateReqDTO;
import cn.iocoder.yudao.module.infra.dal.dataobject.file.FileDO;
import cn.iocoder.yudao.module.infra.service.file.FileService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RestController;
@ -28,4 +29,12 @@ public class FileApiImpl implements FileApi {
return success(fileService.presignGetUrl(url, expirationSeconds));
}
@Override
public CommonResult<String> getUrlById(String id) {
FileDO file = fileService.getFile(Long.valueOf(id));
if (file != null && file.getUrl() != null){
return success(file.getUrl());
}else return success(null);
}
}

@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.system.controller.admin.dustpatrolrecord;
import cn.iocoder.yudao.module.infra.api.file.FileApi;
import org.springframework.web.bind.annotation.*;
import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
@ -37,7 +38,8 @@ public class DustPatrolRecordController {
@Resource
private DustPatrolRecordService dustPatrolRecordService;
@Resource
private FileApi fileApi;
@PostMapping("/create")
@Operation(summary = "创建巡查记录")
@PreAuthorize("@ss.hasPermission('system:dust-patrol-record:create')")
@ -77,7 +79,18 @@ public class DustPatrolRecordController {
@PreAuthorize("@ss.hasPermission('system:dust-patrol-record:query')")
public CommonResult<DustPatrolRecordRespVO> getDustPatrolRecord(@RequestParam("id") String id) {
DustPatrolRecordDO dustPatrolRecord = dustPatrolRecordService.getDustPatrolRecord(id);
return success(BeanUtils.toBean(dustPatrolRecord, DustPatrolRecordRespVO.class));
DustPatrolRecordRespVO respVO = BeanUtils.toBean(dustPatrolRecord, DustPatrolRecordRespVO.class);
String[] strings = dustPatrolRecord.getPatrolPicture().split(",");
List<String> arrayList = new ArrayList<>();
for (String imgId : strings) {
CommonResult<String> urlById = fileApi.getUrlById(imgId);
if (urlById.getData()!=null){
String url = urlById.getData();
arrayList.add(url);
}
}
respVO.setPatrolPictures(arrayList);
return success(respVO);
}
@GetMapping("/page")
@ -85,10 +98,28 @@ public class DustPatrolRecordController {
@PreAuthorize("@ss.hasPermission('system:dust-patrol-record:query')")
public CommonResult<PageResult<DustPatrolRecordRespVO>> getDustPatrolRecordPage(@Valid DustPatrolRecordPageReqVO pageReqVO) {
PageResult<DustPatrolRecordDO> pageResult = dustPatrolRecordService.getDustPatrolRecordPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, DustPatrolRecordRespVO.class));
PageResult<DustPatrolRecordRespVO> voPageResult = BeanUtils.toBean(pageResult, DustPatrolRecordRespVO.class);
// 获取巡查图片
List<DustPatrolRecordRespVO> list = voPageResult.getList();
for (DustPatrolRecordRespVO vo : list) {
if (vo.getPatrolPicture() != null) {
List<String> strings = Arrays.stream(vo.getPatrolPicture().split(",")).toList();
List<String> urls = new ArrayList<>();
for (String id : strings) {
CommonResult<String> urlById = fileApi.getUrlById(id);
if (urlById.getData()!=null){
String url = urlById.getData();
urls.add(url);
}
}
vo.setPatrolPictures(urls);
}
}
return success(voPageResult);
}
@GetMapping("/export-excel")
@Operation(summary = "导出巡查记录 Excel")
@PreAuthorize("@ss.hasPermission('system:dust-patrol-record:export')")
@ApiAccessLog(operateType = EXPORT)
@ -101,4 +132,4 @@ public class DustPatrolRecordController {
BeanUtils.toBean(list, DustPatrolRecordRespVO.class));
}
}
}

@ -1,75 +1,75 @@
package cn.iocoder.yudao.module.system.controller.admin.dustpatrolrecord.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import cn.idev.excel.annotation.*;
@Schema(description = "管理后台 - 巡查记录 Response VO")
@Data
@ExcelIgnoreUnannotated
public class DustPatrolRecordRespVO {
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "24437")
@ExcelProperty("主键")
private String id;
@Schema(description = "数据接入标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "17095")
@ExcelProperty("数据接入标识")
private String dataId;
@Schema(description = "企业名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")
@ExcelProperty("企业名称")
private String enterpriseName;
@Schema(description = "巡查时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("巡查时间")
private LocalDateTime patrolTime;
@Schema(description = "巡查结果 0:正常;1:异常", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("巡查结果 0:正常;1:异常")
private String patrolResult;
@Schema(description = "问题描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "你说的对")
@ExcelProperty("问题描述")
private String problemDescription;
@Schema(description = "巡查图片")
@ExcelProperty("巡查图片")
private String patrolPicture;
@Schema(description = "巡查单位", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("巡查单位")
private String patrolUnit;
@Schema(description = "区划编码", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("区划编码")
private String unitAreaCode;
@Schema(description = "巡查人", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("巡查人")
private String patrolmen;
@Schema(description = "巡查人姓名", example = "张三")
@ExcelProperty("巡查人姓名")
private String patrolmenName;
@Schema(description = "图片", example = "https://www.iocoder.cn")
@ExcelProperty("图片")
private String picOssUrl;
@Schema(description = "附件", example = "https://www.iocoder.cn")
@ExcelProperty("附件")
private String fileOssUrl;
@Schema(description = "是否整改")
@ExcelProperty("是否整改")
private String isZg;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
}
package cn.iocoder.yudao.module.system.controller.admin.dustpatrolrecord.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import cn.idev.excel.annotation.*;
@Schema(description = "管理后台 - 巡查记录 Response VO")
@Data
@ExcelIgnoreUnannotated
public class DustPatrolRecordRespVO {
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "24437")
@ExcelProperty("主键")
private String id;
@Schema(description = "数据接入标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "17095")
@ExcelProperty("数据接入标识")
private String dataId;
@Schema(description = "企业名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")
@ExcelProperty("企业名称")
private String enterpriseName;
@Schema(description = "巡查时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("巡查时间")
private LocalDateTime patrolTime;
@Schema(description = "巡查结果 0:正常;1:异常", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("巡查结果 0:正常;1:异常")
private String patrolResult;
@Schema(description = "问题描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "你说的对")
@ExcelProperty("问题描述")
private String problemDescription;
@Schema(description = "巡查图片")
@ExcelProperty("巡查图片")
private String patrolPicture;
private List<String> patrolPictures;
@Schema(description = "巡查单位", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("巡查单位")
private String patrolUnit;
@Schema(description = "区划编码", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("区划编码")
private String unitAreaCode;
@Schema(description = "巡查人", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("巡查人")
private String patrolmen;
@Schema(description = "巡查人姓名", example = "张三")
@ExcelProperty("巡查人姓名")
private String patrolmenName;
@Schema(description = "图片", example = "https://www.iocoder.cn")
@ExcelProperty("图片")
private String picOssUrl;
@Schema(description = "附件", example = "https://www.iocoder.cn")
@ExcelProperty("附件")
private String fileOssUrl;
@Schema(description = "是否整改")
@ExcelProperty("是否整改")
private String isZg;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
}

@ -36,6 +36,7 @@ public class DustPatrolRecordSaveReqVO {
@Schema(description = "巡查图片")
private String patrolPicture;
private List<String> patrolPictures;
@Schema(description = "巡查单位", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "巡查单位不能为空")
@ -61,4 +62,4 @@ public class DustPatrolRecordSaveReqVO {
@Schema(description = "是否整改")
private String isZg;
}
}

@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.system.controller.admin.dustpatrolrectify;
import cn.iocoder.yudao.module.infra.api.file.FileApi;
import org.springframework.web.bind.annotation.*;
import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
@ -37,7 +38,8 @@ public class DustPatrolRectifyController {
@Resource
private DustPatrolRectifyService dustPatrolRectifyService;
@Resource
private FileApi fileApi;
@PostMapping("/create")
@Operation(summary = "创建巡查问题整改")
@PreAuthorize("@ss.hasPermission('system:dust-patrol-rectify:create')")
@ -77,7 +79,18 @@ public class DustPatrolRectifyController {
@PreAuthorize("@ss.hasPermission('system:dust-patrol-rectify:query')")
public CommonResult<DustPatrolRectifyRespVO> getDustPatrolRectify(@RequestParam("id") String id) {
DustPatrolRectifyDO dustPatrolRectify = dustPatrolRectifyService.getDustPatrolRectify(id);
return success(BeanUtils.toBean(dustPatrolRectify, DustPatrolRectifyRespVO.class));
DustPatrolRectifyRespVO respVO = BeanUtils.toBean(dustPatrolRectify, DustPatrolRectifyRespVO.class);
String[] strings = dustPatrolRectify.getRectifyImg().split(",");
List<String> arrayList = new ArrayList<>();
for (String imgId : strings) {
CommonResult<String> urlById = fileApi.getUrlById(imgId);
if (urlById.getData()!=null){
String url = urlById.getData();
arrayList.add(url);
}
}
respVO.setRectifyImgs(arrayList);
return success(respVO);
}
@GetMapping("/page")
@ -85,7 +98,23 @@ public class DustPatrolRectifyController {
@PreAuthorize("@ss.hasPermission('system:dust-patrol-rectify:query')")
public CommonResult<PageResult<DustPatrolRectifyRespVO>> getDustPatrolRectifyPage(@Valid DustPatrolRectifyPageReqVO pageReqVO) {
PageResult<DustPatrolRectifyDO> pageResult = dustPatrolRectifyService.getDustPatrolRectifyPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, DustPatrolRectifyRespVO.class));
PageResult<DustPatrolRectifyRespVO> result = BeanUtils.toBean(pageResult, DustPatrolRectifyRespVO.class);
List<DustPatrolRectifyRespVO> list = result.getList();
for (DustPatrolRectifyRespVO respVO : list) {
if (respVO.getRectifyImg() != null){
List<String> strings = Arrays.stream(respVO.getRectifyImg().split(",")).toList();
List<String> urls = new ArrayList<>();
for (String id : strings) {
CommonResult<String> urlById = fileApi.getUrlById(id);
if (urlById.getData()!=null){
String url = urlById.getData();
urls.add(url);
}
}
respVO.setRectifyImgs(urls);
}
}
return success(result);
}
@GetMapping("/export-excel")
@ -101,4 +130,4 @@ public class DustPatrolRectifyController {
BeanUtils.toBean(list, DustPatrolRectifyRespVO.class));
}
}
}

@ -23,6 +23,7 @@ public class DustPatrolRectifyPageReqVO extends PageParam {
@Schema(description = "问题整改图片")
private String rectifyImg;
@Schema(description = "整改人")
private String rectifyPerson;
@ -42,4 +43,4 @@ public class DustPatrolRectifyPageReqVO extends PageParam {
@Schema(description = "整改人姓名", example = "王五")
private String rectifyPersonName;
}
}

@ -1,55 +1,56 @@
package cn.iocoder.yudao.module.system.controller.admin.dustpatrolrectify.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import cn.idev.excel.annotation.*;
@Schema(description = "管理后台 - 巡查问题整改 Response VO")
@Data
@ExcelIgnoreUnannotated
public class DustPatrolRectifyRespVO {
@Schema(description = "巡查记录表主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "15642")
@ExcelProperty("巡查记录表主键")
private String id;
@Schema(description = "整改时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("整改时间")
private LocalDateTime rectifyTime;
@Schema(description = "整改说明", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("整改说明")
private String rectifyInstructions;
@Schema(description = "问题整改图片")
@ExcelProperty("问题整改图片")
private String rectifyImg;
@Schema(description = "整改人")
@ExcelProperty("整改人")
private String rectifyPerson;
@Schema(description = "整改单位", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("整改单位")
private String rectifyUnit;
@Schema(description = "图片", example = "https://www.iocoder.cn")
@ExcelProperty("图片")
private String picOssUrl;
@Schema(description = "附件", example = "https://www.iocoder.cn")
@ExcelProperty("附件")
private String fileOssUrl;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
@Schema(description = "整改人姓名", example = "王五")
@ExcelProperty("整改人姓名")
private String rectifyPersonName;
}
package cn.iocoder.yudao.module.system.controller.admin.dustpatrolrectify.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import cn.idev.excel.annotation.*;
@Schema(description = "管理后台 - 巡查问题整改 Response VO")
@Data
@ExcelIgnoreUnannotated
public class DustPatrolRectifyRespVO {
@Schema(description = "巡查记录表主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "15642")
@ExcelProperty("巡查记录表主键")
private String id;
@Schema(description = "整改时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("整改时间")
private LocalDateTime rectifyTime;
@Schema(description = "整改说明", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("整改说明")
private String rectifyInstructions;
@Schema(description = "问题整改图片")
@ExcelProperty("问题整改图片")
private String rectifyImg;
private List<String> rectifyImgs;
@Schema(description = "整改人")
@ExcelProperty("整改人")
private String rectifyPerson;
@Schema(description = "整改单位", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("整改单位")
private String rectifyUnit;
@Schema(description = "图片", example = "https://www.iocoder.cn")
@ExcelProperty("图片")
private String picOssUrl;
@Schema(description = "附件", example = "https://www.iocoder.cn")
@ExcelProperty("附件")
private String fileOssUrl;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
@Schema(description = "整改人姓名", example = "王五")
@ExcelProperty("整改人姓名")
private String rectifyPersonName;
}

@ -24,6 +24,7 @@ public class DustPatrolRectifySaveReqVO {
@Schema(description = "问题整改图片")
private String rectifyImg;
private List<String> rectifyImgs;
@Schema(description = "整改人")
private String rectifyPerson;
@ -41,4 +42,4 @@ public class DustPatrolRectifySaveReqVO {
@Schema(description = "整改人姓名", example = "王五")
private String rectifyPersonName;
}
}

@ -34,6 +34,8 @@ public class DustPatrolRecordServiceImpl implements DustPatrolRecordService {
@Override
public String createDustPatrolRecord(DustPatrolRecordSaveReqVO createReqVO) {
String join = String.join(",", createReqVO.getPatrolPictures());
createReqVO.setPatrolPicture(join);
// 插入
DustPatrolRecordDO dustPatrolRecord = BeanUtils.toBean(createReqVO, DustPatrolRecordDO.class);
dustPatrolRecordMapper.insert(dustPatrolRecord);
@ -46,6 +48,8 @@ public class DustPatrolRecordServiceImpl implements DustPatrolRecordService {
public void updateDustPatrolRecord(DustPatrolRecordSaveReqVO updateReqVO) {
// 校验存在
validateDustPatrolRecordExists(updateReqVO.getId());
String join = String.join(",", updateReqVO.getPatrolPictures());
updateReqVO.setPatrolPicture(join);
// 更新
DustPatrolRecordDO updateObj = BeanUtils.toBean(updateReqVO, DustPatrolRecordDO.class);
dustPatrolRecordMapper.updateById(updateObj);
@ -82,4 +86,4 @@ public class DustPatrolRecordServiceImpl implements DustPatrolRecordService {
return dustPatrolRecordMapper.selectPage(pageReqVO);
}
}
}

@ -34,6 +34,8 @@ public class DustPatrolRectifyServiceImpl implements DustPatrolRectifyService {
@Override
public String createDustPatrolRectify(DustPatrolRectifySaveReqVO createReqVO) {
String join = String.join(",", createReqVO.getRectifyImgs());
createReqVO.setRectifyImg(join);
// 插入
DustPatrolRectifyDO dustPatrolRectify = BeanUtils.toBean(createReqVO, DustPatrolRectifyDO.class);
dustPatrolRectifyMapper.insert(dustPatrolRectify);
@ -46,6 +48,8 @@ public class DustPatrolRectifyServiceImpl implements DustPatrolRectifyService {
public void updateDustPatrolRectify(DustPatrolRectifySaveReqVO updateReqVO) {
// 校验存在
validateDustPatrolRectifyExists(updateReqVO.getId());
String join = String.join(",", updateReqVO.getRectifyImgs());
updateReqVO.setRectifyImg(join);
// 更新
DustPatrolRectifyDO updateObj = BeanUtils.toBean(updateReqVO, DustPatrolRectifyDO.class);
dustPatrolRectifyMapper.updateById(updateObj);
@ -82,4 +86,4 @@ public class DustPatrolRectifyServiceImpl implements DustPatrolRectifyService {
return dustPatrolRectifyMapper.selectPage(pageReqVO);
}
}
}

Loading…
Cancel
Save