|
@ -42,9 +42,7 @@ import org.apache.commons.lang3.StringUtils; |
|
|
import org.springframework.stereotype.Service; |
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
|
import javax.annotation.Resource; |
|
|
import javax.annotation.Resource; |
|
|
import java.util.Arrays; |
|
|
import java.util.*; |
|
|
import java.util.List; |
|
|
|
|
|
import java.util.UUID; |
|
|
|
|
|
import java.util.stream.Collectors; |
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
@ -66,6 +64,7 @@ public class ProcessCommentService extends MybatisBaseService<ProcessCommentMapp |
|
|
private SysUserFeign sysUserFeign; |
|
|
private SysUserFeign sysUserFeign; |
|
|
@Resource |
|
|
@Resource |
|
|
private FileUploadComponent fileUploadComponent; |
|
|
private FileUploadComponent fileUploadComponent; |
|
|
|
|
|
|
|
|
private QueryWrapper<ProcessComment> createQueryWrapper(ProcessCommentQuery query) { |
|
|
private QueryWrapper<ProcessComment> createQueryWrapper(ProcessCommentQuery query) { |
|
|
// todo: 这里根据具体业务调整查询条件
|
|
|
// todo: 这里根据具体业务调整查询条件
|
|
|
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
|
|
|
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
|
|
@ -82,7 +81,7 @@ public class ProcessCommentService extends MybatisBaseService<ProcessCommentMapp |
|
|
return p; |
|
|
return p; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public void saveOrUpdateDto(ProcessCommentDto dto){ |
|
|
public void saveOrUpdateDto(ProcessCommentDto dto) { |
|
|
String dtoSid = dto.getSid(); |
|
|
String dtoSid = dto.getSid(); |
|
|
if (StringUtils.isBlank(dtoSid)) { |
|
|
if (StringUtils.isBlank(dtoSid)) { |
|
|
dto.setSid(UUID.randomUUID().toString()); |
|
|
dto.setSid(UUID.randomUUID().toString()); |
|
@ -92,13 +91,13 @@ public class ProcessCommentService extends MybatisBaseService<ProcessCommentMapp |
|
|
this.updateByDto(dto); |
|
|
this.updateByDto(dto); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public void insertByDto(ProcessCommentDto dto){ |
|
|
public void insertByDto(ProcessCommentDto dto) { |
|
|
ProcessComment entity = new ProcessComment(); |
|
|
ProcessComment entity = new ProcessComment(); |
|
|
BeanUtil.copyProperties(dto, entity, "id", "sid"); |
|
|
BeanUtil.copyProperties(dto, entity, "id", "sid"); |
|
|
baseMapper.insert(entity); |
|
|
baseMapper.insert(entity); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public void updateByDto(ProcessCommentDto dto){ |
|
|
public void updateByDto(ProcessCommentDto dto) { |
|
|
String dtoSid = dto.getSid(); |
|
|
String dtoSid = dto.getSid(); |
|
|
if (StringUtils.isBlank(dtoSid)) { |
|
|
if (StringUtils.isBlank(dtoSid)) { |
|
|
return; |
|
|
return; |
|
@ -108,7 +107,7 @@ public class ProcessCommentService extends MybatisBaseService<ProcessCommentMapp |
|
|
baseMapper.updateById(entity); |
|
|
baseMapper.updateById(entity); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public ProcessCommentDetailsVo fetchDetailsVoBySid(String sid){ |
|
|
public ProcessCommentDetailsVo fetchDetailsVoBySid(String sid) { |
|
|
ProcessComment entity = fetchBySid(sid); |
|
|
ProcessComment entity = fetchBySid(sid); |
|
|
ProcessCommentDetailsVo vo = new ProcessCommentDetailsVo(); |
|
|
ProcessCommentDetailsVo vo = new ProcessCommentDetailsVo(); |
|
|
BeanUtil.copyProperties(entity, vo); |
|
|
BeanUtil.copyProperties(entity, vo); |
|
@ -117,18 +116,58 @@ public class ProcessCommentService extends MybatisBaseService<ProcessCommentMapp |
|
|
|
|
|
|
|
|
public List<ProcessCommentVo> getCommentList(String processId) { |
|
|
public List<ProcessCommentVo> getCommentList(String processId) { |
|
|
List<ProcessCommentVo> commentList = baseMapper.getCommentList(processId); |
|
|
List<ProcessCommentVo> commentList = baseMapper.getCommentList(processId); |
|
|
for(ProcessCommentVo histIns:commentList){ |
|
|
// 2. 获取所有 reviewerSid 批量查询用户信息
|
|
|
if(StringUtils.isNotBlank(histIns.getProcessFile())){ |
|
|
Set<String> reviewerSids = commentList.stream() |
|
|
|
|
|
.filter(c -> StringUtils.isNotBlank(c.getReviewerSid())) |
|
|
|
|
|
.map(ProcessCommentVo::getReviewerSid) |
|
|
|
|
|
.collect(Collectors.toSet()); |
|
|
|
|
|
// 批量查询所有评论中的 reviewerSid 对应的用户信息
|
|
|
|
|
|
Map<String, SysUserVo> userMap = new HashMap<>(); |
|
|
|
|
|
// 将 Set<String> 转换为以逗号分隔的字符串
|
|
|
|
|
|
String assigneeIdsStr = String.join(",", reviewerSids); |
|
|
|
|
|
if (StringUtils.isNotBlank(assigneeIdsStr)) { |
|
|
|
|
|
userMap = sysUserFeign.fetchBySids(assigneeIdsStr).getData().stream() |
|
|
|
|
|
.collect(Collectors.toMap(SysUserVo::getSid, user -> user)); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 3. 遍历 commentList,填充文件列表和用户信息
|
|
|
|
|
|
for (ProcessCommentVo histIns : commentList) { |
|
|
|
|
|
// 处理文件列表
|
|
|
|
|
|
if (StringUtils.isNotBlank(histIns.getProcessFile())) { |
|
|
|
|
|
List<String> processFile = Arrays.asList(histIns.getProcessFile().split(",")).stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList()); |
|
|
|
|
|
histIns.setFileList(processFile); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 处理用户信息
|
|
|
|
|
|
SysUserVo user = userMap.get(histIns.getReviewerSid()); |
|
|
|
|
|
if (user != null) { |
|
|
|
|
|
AppUserVo taskUserInfo = new AppUserVo(); |
|
|
|
|
|
taskUserInfo.setAssigneeName(user.getName()); |
|
|
|
|
|
if (StringUtils.isNotBlank(user.getHeadImage())) { |
|
|
|
|
|
taskUserInfo.setAssigneeHeadImage(fileUploadComponent.getUrlPrefix() + user.getHeadImage()); |
|
|
|
|
|
} |
|
|
|
|
|
histIns.setTaskUserInfo(taskUserInfo); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return commentList; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public List<ProcessCommentVo> getCommentListOld(String processId) { |
|
|
|
|
|
List<ProcessCommentVo> commentList = baseMapper.getCommentList(processId); |
|
|
|
|
|
for (ProcessCommentVo histIns : commentList) { |
|
|
|
|
|
if (StringUtils.isNotBlank(histIns.getProcessFile())) { |
|
|
List<String> processFile = Arrays.asList(histIns.getProcessFile().split(",")).stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList()); |
|
|
List<String> processFile = Arrays.asList(histIns.getProcessFile().split(",")).stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList()); |
|
|
histIns.setFileList(processFile); |
|
|
histIns.setFileList(processFile); |
|
|
} |
|
|
} |
|
|
ResultBean<List<SysUserVo>> sysUserVoResultBean = sysUserFeign.fetchBySids(histIns.getReviewerSid());// sysUserService.selectUserById(Long.parseLong(histIns.getAssignee()));
|
|
|
ResultBean<List<SysUserVo>> sysUserVoResultBean = sysUserFeign.fetchBySids(histIns.getReviewerSid());// sysUserService.selectUserById(Long.parseLong(histIns.getAssignee()));
|
|
|
List<SysUserVo> data1 = sysUserVoResultBean.getData(); |
|
|
List<SysUserVo> data1 = sysUserVoResultBean.getData(); |
|
|
for( SysUserVo data:data1){ |
|
|
for (SysUserVo data : data1) { |
|
|
AppUserVo taskUserInfo=new AppUserVo(); |
|
|
AppUserVo taskUserInfo = new AppUserVo(); |
|
|
taskUserInfo.setAssigneeName(data.getName()); |
|
|
taskUserInfo.setAssigneeName(data.getName()); |
|
|
if(!com.yxt.common.base.utils.StringUtils.isBlank(data.getHeadImage())){ |
|
|
if (!com.yxt.common.base.utils.StringUtils.isBlank(data.getHeadImage())) { |
|
|
taskUserInfo.setAssigneeHeadImage(fileUploadComponent.getUrlPrefix() +data.getHeadImage()); |
|
|
taskUserInfo.setAssigneeHeadImage(fileUploadComponent.getUrlPrefix() + data.getHeadImage()); |
|
|
} |
|
|
} |
|
|
histIns.setTaskUserInfo(taskUserInfo); |
|
|
histIns.setTaskUserInfo(taskUserInfo); |
|
|
} |
|
|
} |
|
|