feat(dms): 完善知识库

- 在润滑、保养、维修知识库实体及VO中新增ossId和photoAddress字段
- 引入RemoteFileService用于获取附件图片真实地址
-优化queryById、queryPageList和queryList方法以支持图片地址加载
- 添加setPhotoAddress和setPhotoAddressBatch方法处理图片地址设置
- 使用Dubbo注解引入远程文件服务,并配置mock机制提高容错性- 更新Excel导出属性以支持新字段展示
hwmom-htk
zangch@mesnac.com 4 months ago
parent a4dceb819c
commit cf03304e57

@ -62,6 +62,17 @@ public class DmsKnowledgeLube extends TenantEntity {
*/
private String remark;
/**
* OSS ID
*/
private String ossId;
/**
*
*/
@TableField(exist = false)
private String photoAddress;
/**
*
*/

@ -62,6 +62,17 @@ public class DmsKnowledgeMaint extends TenantEntity {
*/
private String remark;
/**
* OSS ID
*/
private String ossId;
/**
*
*/
@TableField(exist = false)
private String photoAddress;
/**
*
*/

@ -62,6 +62,17 @@ public class DmsKnowledgeRepair extends TenantEntity {
*/
private String remark;
/**
* OSS ID
*/
private String ossId;
/**
*
*/
@TableField(exist = false)
private String photoAddress;
/**
*
*/

@ -62,5 +62,15 @@ public class DmsKnowledgeLubeBo extends BaseEntity {
*/
private String remark;
/**
* OSS ID
*/
private String ossId;
/**
*
*/
private String photoAddress;
}

@ -62,5 +62,15 @@ public class DmsKnowledgeMaintBo extends BaseEntity {
*/
private String remark;
/**
* OSS ID
*/
private String ossId;
/**
*
*/
private String photoAddress;
}

@ -62,5 +62,15 @@ public class DmsKnowledgeRepairBo extends BaseEntity {
*/
private String remark;
/**
* OSS ID
*/
private String ossId;
/**
*
*/
private String photoAddress;
}

@ -77,6 +77,18 @@ public class DmsKnowledgeLubeVo implements Serializable {
@ExcelProperty(value = "备注")
private String remark;
/**
* OSS ID
*/
@ExcelProperty(value = "附件OSS ID")
private String ossId;
/**
*
*/
@ExcelProperty(value = "附件地址")
private String photoAddress;
/**
*
*/

@ -77,6 +77,18 @@ public class DmsKnowledgeMaintVo implements Serializable {
@ExcelProperty(value = "备注")
private String remark;
/**
* OSS ID
*/
@ExcelProperty(value = "附件OSS ID")
private String ossId;
/**
*
*/
@ExcelProperty(value = "附件地址")
private String photoAddress;
/**
*
*/

@ -77,6 +77,18 @@ public class DmsKnowledgeRepairVo implements Serializable {
@ExcelProperty(value = "备注")
private String remark;
/**
* OSS ID
*/
@ExcelProperty(value = "附件OSS ID")
private String ossId;
/**
*
*/
@ExcelProperty(value = "附件地址")
private String photoAddress;
/**
*
*/

@ -1,5 +1,6 @@
package org.dromara.dms.service.impl;
import org.apache.dubbo.config.annotation.DubboReference;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
@ -18,10 +19,13 @@ import org.dromara.dms.domain.vo.DmsKnowledgeLubeVo;
import org.dromara.dms.domain.DmsKnowledgeLube;
import org.dromara.dms.mapper.DmsKnowledgeLubeMapper;
import org.dromara.dms.service.IDmsKnowledgeLubeService;
import org.dromara.resource.api.RemoteFileService;
import org.dromara.resource.api.RemoteFileServiceMock;
import java.util.List;
import java.util.Map;
import java.util.Collection;
import java.util.stream.Collectors;
/**
* Service
@ -35,6 +39,9 @@ public class DmsKnowledgeLubeServiceImpl implements IDmsKnowledgeLubeService {
private final DmsKnowledgeLubeMapper baseMapper;
@DubboReference(mock = "true")
private RemoteFileService remoteFileService;
/**
*
*
@ -43,7 +50,11 @@ public class DmsKnowledgeLubeServiceImpl implements IDmsKnowledgeLubeService {
*/
@Override
public DmsKnowledgeLubeVo queryById(Long knowledgeLubeId){
return baseMapper.selectVoById(knowledgeLubeId);
DmsKnowledgeLubeVo vo = baseMapper.selectVoById(knowledgeLubeId);
if (vo != null) {
setPhotoAddress(vo);
}
return vo;
}
/**
@ -57,6 +68,9 @@ public class DmsKnowledgeLubeServiceImpl implements IDmsKnowledgeLubeService {
public TableDataInfo<DmsKnowledgeLubeVo> queryPageList(DmsKnowledgeLubeBo bo, PageQuery pageQuery) {
MPJLambdaWrapper<DmsKnowledgeLube> lqw = buildQueryWrapper(bo);
Page<DmsKnowledgeLubeVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
if (result.getRecords() != null && !result.getRecords().isEmpty()) {
setPhotoAddressBatch(result.getRecords());
}
return TableDataInfo.build(result);
}
@ -69,7 +83,11 @@ public class DmsKnowledgeLubeServiceImpl implements IDmsKnowledgeLubeService {
@Override
public List<DmsKnowledgeLubeVo> queryList(DmsKnowledgeLubeBo bo) {
MPJLambdaWrapper<DmsKnowledgeLube> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
List<DmsKnowledgeLubeVo> list = baseMapper.selectVoList(lqw);
if (list != null && !list.isEmpty()) {
setPhotoAddressBatch(list);
}
return list;
}
private MPJLambdaWrapper<DmsKnowledgeLube> buildQueryWrapper(DmsKnowledgeLubeBo bo) {
@ -95,6 +113,41 @@ public class DmsKnowledgeLubeServiceImpl implements IDmsKnowledgeLubeService {
return lqw;
}
/**
*
*/
private void setPhotoAddress(DmsKnowledgeLubeVo vo) {
if (vo != null && StringUtils.isNotBlank(vo.getOssId())) {
try {
String photoUrl = remoteFileService.selectUrlByIds(vo.getOssId());
vo.setPhotoAddress(photoUrl);
} catch (Exception e) {
RemoteFileService mockService = new RemoteFileServiceMock();
try {
String photoUrl = mockService.selectUrlByIds(vo.getOssId());
vo.setPhotoAddress(photoUrl);
} catch (Exception ex) {
vo.setPhotoAddress(null);
}
}
}
}
/**
*
*/
private void setPhotoAddressBatch(List<DmsKnowledgeLubeVo> list) {
List<DmsKnowledgeLubeVo> hasOssIdList = list.stream()
.filter(vo -> StringUtils.isNotBlank(vo.getOssId()))
.collect(Collectors.toList());
if (hasOssIdList.isEmpty()) {
return;
}
for (DmsKnowledgeLubeVo vo : hasOssIdList) {
setPhotoAddress(vo);
}
}
/**
*
*

@ -1,5 +1,6 @@
package org.dromara.dms.service.impl;
import org.apache.dubbo.config.annotation.DubboReference;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
@ -21,10 +22,13 @@ import org.dromara.dms.domain.DmsKnowledgeMaint;
import org.dromara.dms.mapper.DmsKnowledgeMaintMapper;
import org.dromara.dms.service.IDmsKnowledgeMaintService;
import org.springframework.util.ObjectUtils;
import org.dromara.resource.api.RemoteFileService;
import org.dromara.resource.api.RemoteFileServiceMock;
import java.util.List;
import java.util.Map;
import java.util.Collection;
import java.util.stream.Collectors;
/**
* Service
@ -38,6 +42,9 @@ public class DmsKnowledgeMaintServiceImpl implements IDmsKnowledgeMaintService {
private final DmsKnowledgeMaintMapper baseMapper;
@DubboReference(mock = "true")
private RemoteFileService remoteFileService;
/**
*
*
@ -46,7 +53,11 @@ public class DmsKnowledgeMaintServiceImpl implements IDmsKnowledgeMaintService {
*/
@Override
public DmsKnowledgeMaintVo queryById(Long knowledgeMaintId){
return baseMapper.selectVoById(knowledgeMaintId);
DmsKnowledgeMaintVo vo = baseMapper.selectVoById(knowledgeMaintId);
if (vo != null) {
setPhotoAddress(vo);
}
return vo;
}
/**
@ -60,6 +71,9 @@ public class DmsKnowledgeMaintServiceImpl implements IDmsKnowledgeMaintService {
public TableDataInfo<DmsKnowledgeMaintVo> queryPageList(DmsKnowledgeMaintBo bo, PageQuery pageQuery) {
MPJLambdaWrapper<DmsKnowledgeMaint> lqw = buildQueryWrapper(bo);
Page<DmsKnowledgeMaintVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
if (result.getRecords() != null && !result.getRecords().isEmpty()) {
setPhotoAddressBatch(result.getRecords());
}
return TableDataInfo.build(result);
}
@ -72,7 +86,11 @@ public class DmsKnowledgeMaintServiceImpl implements IDmsKnowledgeMaintService {
@Override
public List<DmsKnowledgeMaintVo> queryList(DmsKnowledgeMaintBo bo) {
MPJLambdaWrapper<DmsKnowledgeMaint> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
List<DmsKnowledgeMaintVo> list = baseMapper.selectVoList(lqw);
if (list != null && !list.isEmpty()) {
setPhotoAddressBatch(list);
}
return list;
}
private MPJLambdaWrapper<DmsKnowledgeMaint> buildQueryWrapper(DmsKnowledgeMaintBo bo) {
@ -97,6 +115,41 @@ public class DmsKnowledgeMaintServiceImpl implements IDmsKnowledgeMaintService {
return lqw;
}
/**
*
*/
private void setPhotoAddress(DmsKnowledgeMaintVo vo) {
if (vo != null && StringUtils.isNotBlank(vo.getOssId())) {
try {
String photoUrl = remoteFileService.selectUrlByIds(vo.getOssId());
vo.setPhotoAddress(photoUrl);
} catch (Exception e) {
RemoteFileService mockService = new RemoteFileServiceMock();
try {
String photoUrl = mockService.selectUrlByIds(vo.getOssId());
vo.setPhotoAddress(photoUrl);
} catch (Exception ex) {
vo.setPhotoAddress(null);
}
}
}
}
/**
*
*/
private void setPhotoAddressBatch(List<DmsKnowledgeMaintVo> list) {
List<DmsKnowledgeMaintVo> hasOssIdList = list.stream()
.filter(vo -> StringUtils.isNotBlank(vo.getOssId()))
.collect(Collectors.toList());
if (hasOssIdList.isEmpty()) {
return;
}
for (DmsKnowledgeMaintVo vo : hasOssIdList) {
setPhotoAddress(vo);
}
}
/**
*
*

@ -1,5 +1,6 @@
package org.dromara.dms.service.impl;
import org.apache.dubbo.config.annotation.DubboReference;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
@ -20,10 +21,13 @@ import org.dromara.dms.domain.DmsKnowledgeRepair;
import org.dromara.dms.mapper.DmsKnowledgeRepairMapper;
import org.dromara.dms.service.IDmsKnowledgeRepairService;
import org.springframework.util.ObjectUtils;
import org.dromara.resource.api.RemoteFileService;
import org.dromara.resource.api.RemoteFileServiceMock;
import java.util.List;
import java.util.Map;
import java.util.Collection;
import java.util.stream.Collectors;
/**
* Service
@ -37,6 +41,9 @@ public class DmsKnowledgeRepairServiceImpl implements IDmsKnowledgeRepairService
private final DmsKnowledgeRepairMapper baseMapper;
@DubboReference(mock = "true")
private RemoteFileService remoteFileService;
/**
*
*
@ -45,7 +52,11 @@ public class DmsKnowledgeRepairServiceImpl implements IDmsKnowledgeRepairService
*/
@Override
public DmsKnowledgeRepairVo queryById(Long knowledgeRepairId){
return baseMapper.selectVoById(knowledgeRepairId);
DmsKnowledgeRepairVo vo = baseMapper.selectVoById(knowledgeRepairId);
if (vo != null) {
setPhotoAddress(vo);
}
return vo;
}
/**
@ -59,6 +70,9 @@ public class DmsKnowledgeRepairServiceImpl implements IDmsKnowledgeRepairService
public TableDataInfo<DmsKnowledgeRepairVo> queryPageList(DmsKnowledgeRepairBo bo, PageQuery pageQuery) {
MPJLambdaWrapper<DmsKnowledgeRepair> lqw = buildQueryWrapper(bo);
Page<DmsKnowledgeRepairVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
if (result.getRecords() != null && !result.getRecords().isEmpty()) {
setPhotoAddressBatch(result.getRecords());
}
return TableDataInfo.build(result);
}
@ -71,7 +85,11 @@ public class DmsKnowledgeRepairServiceImpl implements IDmsKnowledgeRepairService
@Override
public List<DmsKnowledgeRepairVo> queryList(DmsKnowledgeRepairBo bo) {
MPJLambdaWrapper<DmsKnowledgeRepair> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
List<DmsKnowledgeRepairVo> list = baseMapper.selectVoList(lqw);
if (list != null && !list.isEmpty()) {
setPhotoAddressBatch(list);
}
return list;
}
private MPJLambdaWrapper<DmsKnowledgeRepair> buildQueryWrapper(DmsKnowledgeRepairBo bo) {
@ -94,6 +112,41 @@ public class DmsKnowledgeRepairServiceImpl implements IDmsKnowledgeRepairService
return lqw;
}
/**
*
*/
private void setPhotoAddress(DmsKnowledgeRepairVo vo) {
if (vo != null && StringUtils.isNotBlank(vo.getOssId())) {
try {
String photoUrl = remoteFileService.selectUrlByIds(vo.getOssId());
vo.setPhotoAddress(photoUrl);
} catch (Exception e) {
RemoteFileService mockService = new RemoteFileServiceMock();
try {
String photoUrl = mockService.selectUrlByIds(vo.getOssId());
vo.setPhotoAddress(photoUrl);
} catch (Exception ex) {
vo.setPhotoAddress(null);
}
}
}
}
/**
*
*/
private void setPhotoAddressBatch(List<DmsKnowledgeRepairVo> list) {
List<DmsKnowledgeRepairVo> hasOssIdList = list.stream()
.filter(vo -> StringUtils.isNotBlank(vo.getOssId()))
.collect(Collectors.toList());
if (hasOssIdList.isEmpty()) {
return;
}
for (DmsKnowledgeRepairVo vo : hasOssIdList) {
setPhotoAddress(vo);
}
}
/**
*
*

Loading…
Cancel
Save