* 'dev' of http://221.0.232.152:9393/ability-center/share-platform:
  v3审批:当前审批与申请人一样,默认通过
  融合服务修改
  删除不需要的注释
  。。。
This commit is contained in:
huangweixiong 2022-08-26 17:39:32 +08:00
commit 12861d1c24
8 changed files with 84 additions and 59 deletions

View File

@ -62,13 +62,6 @@ public class FuseController {
return new Result<TbFuseDTO>().ok(tbFuseService.getFuseById(id));
}
@GetMapping("getDataResource")
@ApiOperation("获取资源数据")
@LogOperation("获取资源数据")
public Result<List<Map>> getDataResource() {
return new Result().ok(tbFuseService.getDataResource());
}
@PostMapping
@ApiOperation("保存")
@LogOperation("保存")

View File

@ -16,8 +16,6 @@ public interface TbFuseService extends CrudService<TbFuseEntity, TbFuseDTO> {
TbFuseDTO getFuseById(Long id);
List<Map> getDataResource();
Integer addFuse(TbFuseDTO dto);
Integer updateFuse(TbFuseDTO dto);

View File

@ -33,7 +33,11 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.swing.text.html.Option;
import java.util.*;
import java.util.concurrent.*;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
/**
@ -46,6 +50,10 @@ public class TbFuseServiceImpl extends CrudServiceImpl<TbFuseDao, TbFuseEntity,
private static final Logger logger = LoggerFactory.getLogger(ResourceServiceImpl.class);
private static final Integer CPU_NUM = Runtime.getRuntime().availableProcessors();
private static final ExecutorService executor = Executors.newWorkStealingPool(CPU_NUM * 3);
@Autowired
private TbFuseDao fuseDao;
@Autowired
@ -154,52 +162,49 @@ public class TbFuseServiceImpl extends CrudServiceImpl<TbFuseDao, TbFuseEntity,
}).collect(Collectors.toList());
}
public List<Map> getDataResource() {
int pageNum=0;
int pageSize=getDataResourceCount();
List<Map> result = new ArrayList<>();
private Map<String, List<Map>> getDataResource() {
Map result=new ConcurrentHashMap();
final int pageSize = CPU_NUM * 10;
AtomicInteger pageIndex = new AtomicInteger(1);
AtomicBoolean end = new AtomicBoolean(true);
List<CompletableFuture> completableFutures=new CopyOnWriteArrayList<>();
while(end.get()){
completableFutures.add(CompletableFuture.supplyAsync(()->{
Optional<AbstractDataResourceService> factory = DataResourceFactory.build();
if (factory.isPresent()) {
GetDataResourceListDto dto = new GetDataResourceListDto().setPageNum(pageNum).setPageSize(pageSize);
Map<String, Object> dataMap = (Map<String, Object>) factory.get().getDataResource(dto);
if (dataMap != null) {
List<Map<String, Object>> list = (List<Map<String, Object>>) dataMap.get("data");
list.forEach(map -> result.add(new HashMap() {{
GetDataResourceListDto dto=new GetDataResourceListDto().setPageNum(pageIndex.get()).setPageSize(pageSize);
Map<String, Object> dataResource = (Map<String, Object>) factory.get().getDataResource(dto);
if(!dataResource.isEmpty()){
List<Map<String, Object>> list = (List<Map<String, Object>>) dataResource.get("data");
pageIndex.getAndIncrement();
return new HashMap(){{put( list.stream().map(map->{
if (map.containsKey("zyname")) {
put("id", map.get("guid"));
put("name", map.get("zyname"));
return map.get("guid");
} else {
put("id", map.get("serviceId"));
put("name", map.get("serviceName"));
return map.get("serviceId");
}
}}));
}), list);}};
}
}
return null;
}).thenAcceptAsync(map->{
if(map != null){
result.putAll(map);
}
}));
}
return result;
}
private int getDataResourceCount() {
int count=30;
Optional<AbstractDataResourceService> factory = DataResourceFactory.build();
if (factory.isPresent()) {
GetDataResourceListDto dto = new GetDataResourceListDto().setPageNum(0).setPageSize(30);
Map<String, Object> dataMap = (Map<String, Object>) factory.get().getDataResource(dto);
if (dataMap != null) {
count=Integer.parseInt(dataMap.get("rows").toString());
}
}
return count;
}
private List<TbFuseResourceDTO> getFuseResourceByFuseId(Long fuseId) {
List<Map> dataResourceMap = new ArrayList<>();
Map dataResourceMap = new HashMap();
List<TbFuseResourceDTO> result = new ArrayList();
QueryWrapper wrapper = new QueryWrapper();
wrapper.eq("fuse_id", fuseId);
List<TbFuseResourceEntity> list = fuseResourceDao.selectList(wrapper);
Map<String, List<TbFuseResourceEntity>> resourceMap = list.stream().filter(index -> index.getType() != null).collect(Collectors.groupingBy(TbFuseResourceEntity::getType));
if (resourceMap.containsKey("数据资源")) {
dataResourceMap.addAll(getDataResource());
dataResourceMap.putAll(getDataResource());
}
resourceMap.forEach((type, value) -> {
if ("组件服务".equals(type)) {
@ -215,7 +220,7 @@ public class TbFuseServiceImpl extends CrudServiceImpl<TbFuseDao, TbFuseEntity,
result.addAll(value.stream().map(attr -> {
TbFuseResourceDTO dto = new TbFuseResourceDTO();
BeanUtils.copyProperties(attr, dto);
dto.setResource(dataResourceMap.stream().filter(it->it.get("id").equals(dto.getResourceId())).findFirst());
dto.setResource(dataResourceMap.get(dto.getResourceId()));
return dto;
}).collect(Collectors.toList()));
} else if ("基础设施".equals(type)) {

View File

@ -3,6 +3,8 @@ package io.renren.modules.processForm.listener.v3;
import com.alibaba.fastjson.JSON;
import com.google.common.collect.ImmutableMap;
import io.renren.common.annotation.ActivitiNoticeOperation;
import io.renren.modules.activiti.service.ActTaskService;
import io.renren.modules.processForm.dto.TAbilityApplicationDTO;
import io.renren.modules.sys.dao.SysUserDao;
import io.renren.modules.sys.dto.SysDeptDTO;
import io.renren.modules.sys.dto.SysRoleDTO;
@ -17,6 +19,7 @@ import org.activiti.engine.TaskService;
import org.activiti.engine.delegate.*;
import org.activiti.engine.delegate.event.ActivitiEvent;
import org.activiti.engine.delegate.event.ActivitiEventListener;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@ -98,6 +101,7 @@ public class ApplyDistrictListener implements TaskListener, ExecutionListener, A
taskService.setAssignee(delegateTask.getId(), defaultAssigneeRoleId);
assignee = defaultAssigneeRoleId;
}
mpComplete(delegateTask, assignee);
logger.error("分配的用户id为:{}", assignee);
} else {
try {
@ -108,6 +112,17 @@ public class ApplyDistrictListener implements TaskListener, ExecutionListener, A
}
}
private void mpComplete(DelegateTask delegateTask, final String assignee) { // 处理审批人为申请人
if (StringUtils.isNotEmpty(assignee)
&& StringUtils.isNotEmpty(delegateTask.getVariable("creator", String.class))
&& delegateTask.getVariable("creator", String.class).equals(assignee)) {
taskService.addComment(delegateTask.getId(), delegateTask.getProcessInstanceId(), "审批人为发起人,默认通过");
taskService.setVariable(delegateTask.getId(), ActTaskService.Task_HANDLE_STATE, ActTaskService.Task_HANDLE_STATE_AGREE);
taskService.setVariable(delegateTask.getId(), "backToFirst", Boolean.FALSE);
taskService.complete(delegateTask.getId(), delegateTask.getVariables());
}
}
@Override
public void notify(DelegateExecution delegateExecution) throws Exception {

View File

@ -3,6 +3,7 @@ package io.renren.modules.processForm.listener.v3;
import com.alibaba.fastjson.JSON;
import com.google.common.collect.ImmutableMap;
import io.renren.common.annotation.ActivitiNoticeOperation;
import io.renren.modules.activiti.service.ActTaskService;
import io.renren.modules.sys.dao.SysUserDao;
import io.renren.modules.sys.dto.SysDeptDTO;
import io.renren.modules.sys.dto.SysRoleDTO;
@ -17,6 +18,7 @@ import org.activiti.engine.TaskService;
import org.activiti.engine.delegate.*;
import org.activiti.engine.delegate.event.ActivitiEvent;
import org.activiti.engine.delegate.event.ActivitiEventListener;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@ -99,6 +101,7 @@ public class CityListener implements TaskListener, ExecutionListener, ActivitiEv
taskService.setAssignee(delegateTask.getId(), defaultAssigneeRoleId);
assignee = defaultAssigneeRoleId;
}
mpComplete(delegateTask, assignee);
logger.error("分配的用户id为:{}", assignee);
} else {
try {
@ -109,6 +112,17 @@ public class CityListener implements TaskListener, ExecutionListener, ActivitiEv
}
}
private void mpComplete(DelegateTask delegateTask, final String assignee) { // 处理审批人为申请人
if (StringUtils.isNotEmpty(assignee)
&& StringUtils.isNotEmpty(delegateTask.getVariable("creator", String.class))
&& delegateTask.getVariable("creator", String.class).equals(assignee)) {
taskService.addComment(delegateTask.getId(), delegateTask.getProcessInstanceId(), "审批人为发起人,默认通过");
taskService.setVariable(delegateTask.getId(), ActTaskService.Task_HANDLE_STATE, ActTaskService.Task_HANDLE_STATE_AGREE);
taskService.setVariable(delegateTask.getId(), "backToFirst", Boolean.FALSE);
taskService.complete(delegateTask.getId(), delegateTask.getVariables());
}
}
@Override
public void notify(DelegateExecution delegateExecution) throws Exception {

View File

@ -3,6 +3,7 @@ package io.renren.modules.processForm.listener.v3;
import com.alibaba.fastjson.JSON;
import com.google.common.collect.ImmutableMap;
import io.renren.common.annotation.ActivitiNoticeOperation;
import io.renren.modules.activiti.service.ActTaskService;
import io.renren.modules.sys.dao.SysUserDao;
import io.renren.modules.sys.dto.SysDeptDTO;
import io.renren.modules.sys.dto.SysRoleDTO;
@ -16,6 +17,7 @@ import org.activiti.engine.TaskService;
import org.activiti.engine.delegate.*;
import org.activiti.engine.delegate.event.ActivitiEvent;
import org.activiti.engine.delegate.event.ActivitiEventListener;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@ -95,6 +97,7 @@ public class OwnerDistrictListener implements TaskListener, ExecutionListener, A
taskService.setAssignee(delegateTask.getId(), defaultAssigneeRoleId);
assignee = defaultAssigneeRoleId;
}
mpComplete(delegateTask, assignee);
logger.error("分配的用户id为:{}", assignee);
} else {
try {
@ -104,6 +107,17 @@ public class OwnerDistrictListener implements TaskListener, ExecutionListener, A
}
}
}
private void mpComplete(DelegateTask delegateTask, final String assignee) { // 处理审批人为申请人
if (StringUtils.isNotEmpty(assignee)
&& StringUtils.isNotEmpty(delegateTask.getVariable("creator", String.class))
&& delegateTask.getVariable("creator", String.class).equals(assignee)) {
taskService.addComment(delegateTask.getId(), delegateTask.getProcessInstanceId(), "审批人为发起人,默认通过");
taskService.setVariable(delegateTask.getId(), ActTaskService.Task_HANDLE_STATE, ActTaskService.Task_HANDLE_STATE_AGREE);
taskService.setVariable(delegateTask.getId(), "backToFirst", Boolean.FALSE);
taskService.complete(delegateTask.getId(), delegateTask.getVariables());
}
}
@Override
public void notify(DelegateExecution delegateExecution) throws Exception {

View File

@ -1275,9 +1275,8 @@ public class ResourceServiceImpl extends CrudServiceImpl<ResourceDao, ResourceEn
customThreadPool.shutdown();
}, executor));
try {
Thread.sleep(100); // 防止任务运行过快无法跳出循环
Thread.sleep(300); // 防止任务运行过快无法跳出循环
} catch (InterruptedException e) {
logger.info("知识库同步异常", e);
}

View File

@ -106,9 +106,6 @@ public class JhlDAPTool {
user.put("distinguishedName",next.get().toString());
}else if("objectGUID".equals(next.getID())){
String guidStr = next.get().toString();
//Object o = next.get(0);
String guid = guidObject2String((byte[]) next.get(0));
user.put("id",SingleID.getSingleID(guid));
user.put("guid",guid);
@ -162,16 +159,6 @@ public class JhlDAPTool {
}
builder.append('-');
// for (int i = 8; i <9; i++)
// {
// String hex = Integer.toHexString(b[i] & 0xFF);
// if (hex.length() == 1)
// {
// hex = '0' + hex;
// }
// builder.append(hex);
// }
// builder.append('-');
for (int i = 8; i <10; i++)
{
String hex = Integer.toHexString(b[i] & 0xFF);