Browse Source

Merge remote-tracking branch 'origin/master'

master
fanzongzhe0036 4 months ago
parent
commit
2fbbf20d14
  1. 21
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java
  2. 181
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/processcomment/ProcessCommentService.java
  3. 2
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/flow/FlowableRest.java

21
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java

@ -2421,17 +2421,18 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
Map<String, Object> map = flowableQuery.getMap(); Map<String, Object> map = flowableQuery.getMap();
boolean taskKeyTrue = false; boolean taskKeyTrue = false;
List<FlowElement> flowElements = processService.calApprovePath("", modelId, map); List<FlowElement> flowElements = processService.calApprovePath("", modelId, map);
// 过滤空的节点ID
List<FlowElement> collect = flowElements.stream().filter(item -> item.getId().length() > 0).collect(Collectors.toList()); List<FlowElement> collect = flowElements.stream().filter(item -> item.getId().length() > 0).collect(Collectors.toList());
for (int i = 0; i < collect.size(); i++) { for (int i = 0; i < collect.size(); i++) {
Map<String, Object> itemMap = new HashMap<>(); Map<String, Object> itemMap = new HashMap<>();
FlowElement item = collect.get(i); FlowElement item = collect.get(i);
if (StringUtils.isBlank(flowableQuery.getTaskDefKey())) { if (StringUtils.isBlank(flowableQuery.getTaskDefKey())) {
log.info("flowElement:{}", item); // log.info("flowElement:{}", item);
log.info("nodeName:{}", item.getName()); // log.info("nodeName:{}", item.getName());
itemMap.put("nodeName", item.getName()); itemMap.put("nodeName", item.getName());
log.info("nodeId:{}", item.getId()); // log.info("nodeId:{}", item.getId());
itemMap.put("nodeId", item.getId()); itemMap.put("nodeId", item.getId());
String s = JSON.toJSONString(item); /* String s = JSON.toJSONString(item);
JSONObject jsonObject = JSONObject.parseObject(s); JSONObject jsonObject = JSONObject.parseObject(s);
log.info("item:{}", jsonObject); log.info("item:{}", jsonObject);
Object candidateGroups = jsonObject.get("candidateGroups"); Object candidateGroups = jsonObject.get("candidateGroups");
@ -2442,7 +2443,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
if (candidateGroups_arr.size() > 0) { if (candidateGroups_arr.size() > 0) {
log.info("candidateGroups_sid:{}", candidateGroups_arr.get(0)); log.info("candidateGroups_sid:{}", candidateGroups_arr.get(0));
} }
log.info("candidateGroups:{}", candidateGroups_arr); log.info("candidateGroups:{}", candidateGroups_arr);*/
list.add(itemMap); list.add(itemMap);
} else { } else {
if (flowableQuery.getTaskDefKey().equals(item.getId())) { if (flowableQuery.getTaskDefKey().equals(item.getId())) {
@ -2450,12 +2451,12 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
continue; continue;
} }
if (taskKeyTrue) { if (taskKeyTrue) {
log.info("flowElement:{}", item); // log.info("flowElement:{}", item);
log.info("nodeName:{}", item.getName()); // log.info("nodeName:{}", item.getName());
itemMap.put("nodeName", item.getName()); itemMap.put("nodeName", item.getName());
log.info("nodeId:{}", item.getId()); // log.info("nodeId:{}", item.getId());
itemMap.put("nodeId", item.getId()); itemMap.put("nodeId", item.getId());
String s = JSON.toJSONString(item); /* String s = JSON.toJSONString(item);
JSONObject jsonObject = JSONObject.parseObject(s); JSONObject jsonObject = JSONObject.parseObject(s);
log.info("item:{}", jsonObject); log.info("item:{}", jsonObject);
Object candidateGroups = jsonObject.get("candidateGroups"); Object candidateGroups = jsonObject.get("candidateGroups");
@ -2466,7 +2467,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
if (candidateGroups_arr.size() > 0) { if (candidateGroups_arr.size() > 0) {
log.info("candidateGroups_sid:{}", candidateGroups_arr.get(0)); log.info("candidateGroups_sid:{}", candidateGroups_arr.get(0));
} }
log.info("candidateGroups:{}", candidateGroups_arr); log.info("candidateGroups:{}", candidateGroups_arr);*/
list.add(itemMap); list.add(itemMap);
} }
} }

181
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/processcomment/ProcessCommentService.java

@ -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;
/** /**
@ -62,81 +60,122 @@ import java.util.stream.Collectors;
*/ */
@Service @Service
public class ProcessCommentService extends MybatisBaseService<ProcessCommentMapper, ProcessComment> { public class ProcessCommentService extends MybatisBaseService<ProcessCommentMapper, ProcessComment> {
@Resource @Resource
private SysUserFeign sysUserFeign; private SysUserFeign sysUserFeign;
@Resource @Resource
private FileUploadComponent fileUploadComponent; private FileUploadComponent fileUploadComponent;
private QueryWrapper<ProcessComment> createQueryWrapper(ProcessCommentQuery query) {
// todo: 这里根据具体业务调整查询条件 private QueryWrapper<ProcessComment> createQueryWrapper(ProcessCommentQuery query) {
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName())); // todo: 这里根据具体业务调整查询条件
QueryWrapper<ProcessComment> qw = new QueryWrapper<>(); // 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
return qw; QueryWrapper<ProcessComment> qw = new QueryWrapper<>();
} return qw;
}
public PagerVo<ProcessCommentVo> listPageVo(PagerQuery<ProcessCommentQuery> pq) {
ProcessCommentQuery query = pq.getParams(); public PagerVo<ProcessCommentVo> listPageVo(PagerQuery<ProcessCommentQuery> pq) {
QueryWrapper<ProcessComment> qw = createQueryWrapper(query); ProcessCommentQuery query = pq.getParams();
IPage<ProcessComment> page = PagerUtil.queryToPage(pq); QueryWrapper<ProcessComment> qw = createQueryWrapper(query);
IPage<ProcessCommentVo> pagging = baseMapper.selectPageVo(page, qw); IPage<ProcessComment> page = PagerUtil.queryToPage(pq);
PagerVo<ProcessCommentVo> p = PagerUtil.pageToVo(pagging, null); IPage<ProcessCommentVo> pagging = baseMapper.selectPageVo(page, qw);
return p; PagerVo<ProcessCommentVo> p = PagerUtil.pageToVo(pagging, null);
} 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());
baseMapper.insertByDto(dto); baseMapper.insertByDto(dto);
return; return;
} }
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;
} }
ProcessComment entity = fetchBySid(dtoSid); ProcessComment entity = fetchBySid(dtoSid);
BeanUtil.copyProperties(dto, entity, "id", "sid"); BeanUtil.copyProperties(dto, entity, "id", "sid");
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);
return vo; return vo;
} }
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()
List<String> processFile = Arrays.asList(histIns.getProcessFile().split(",")).stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList()); .filter(c -> StringUtils.isNotBlank(c.getReviewerSid()))
histIns.setFileList(processFile); .map(ProcessCommentVo::getReviewerSid)
} .collect(Collectors.toSet());
ResultBean<List<SysUserVo>> sysUserVoResultBean = sysUserFeign.fetchBySids(histIns.getReviewerSid());// sysUserService.selectUserById(Long.parseLong(histIns.getAssignee())); // 批量查询所有评论中的 reviewerSid 对应的用户信息
List<SysUserVo> data1 = sysUserVoResultBean.getData(); Map<String, SysUserVo> userMap = new HashMap<>();
for( SysUserVo data:data1){ // 将 Set<String> 转换为以逗号分隔的字符串
AppUserVo taskUserInfo=new AppUserVo(); String assigneeIdsStr = String.join(",", reviewerSids);
taskUserInfo.setAssigneeName(data.getName()); if (StringUtils.isNotBlank(assigneeIdsStr)) {
if(!com.yxt.common.base.utils.StringUtils.isBlank(data.getHeadImage())){ userMap = sysUserFeign.fetchBySids(assigneeIdsStr).getData().stream()
taskUserInfo.setAssigneeHeadImage(fileUploadComponent.getUrlPrefix() +data.getHeadImage()); .collect(Collectors.toMap(SysUserVo::getSid, user -> user));
} }
histIns.setTaskUserInfo(taskUserInfo);
}
} // 3. 遍历 commentList,填充文件列表和用户信息
return commentList; for (ProcessCommentVo histIns : commentList) {
} // 处理文件列表
if (StringUtils.isNotBlank(histIns.getProcessFile())) {
public List<String> selectByIdAndComment(String comment, String instanceId) { List<String> processFile = Arrays.asList(histIns.getProcessFile().split(",")).stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList());
return baseMapper.selectByIdAndComment(comment, instanceId); 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());
histIns.setFileList(processFile);
}
ResultBean<List<SysUserVo>> sysUserVoResultBean = sysUserFeign.fetchBySids(histIns.getReviewerSid());// sysUserService.selectUserById(Long.parseLong(histIns.getAssignee()));
List<SysUserVo> data1 = sysUserVoResultBean.getData();
for (SysUserVo data : data1) {
AppUserVo taskUserInfo = new AppUserVo();
taskUserInfo.setAssigneeName(data.getName());
if (!com.yxt.common.base.utils.StringUtils.isBlank(data.getHeadImage())) {
taskUserInfo.setAssigneeHeadImage(fileUploadComponent.getUrlPrefix() + data.getHeadImage());
}
histIns.setTaskUserInfo(taskUserInfo);
}
}
return commentList;
}
public List<String> selectByIdAndComment(String comment, String instanceId) {
return baseMapper.selectByIdAndComment(comment, instanceId);
}
} }

2
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/flow/FlowableRest.java

@ -256,7 +256,7 @@ public class FlowableRest implements FlowableFeign {
stringObjectMap.put("taskName", f.get("nodeName").toString()); stringObjectMap.put("taskName", f.get("nodeName").toString());
stringObjectMap.put("finishTime", null); stringObjectMap.put("finishTime", null);
stringObjectMap.put("createTime", ""); stringObjectMap.put("createTime", "");
stringObjectMap.put("taskUserInfos", new ArrayList<>()); stringObjectMap.put("taskUserInfos", Collections.emptyList());
a.setFlowableRecordVo(stringObjectMap); a.setFlowableRecordVo(stringObjectMap);
a.setState("3"); a.setState("3");

Loading…
Cancel
Save