diff --git a/renren-admin/src/main/java/io/renren/modules/fuse/controller/FuseController.java b/renren-admin/src/main/java/io/renren/modules/fuse/controller/FuseController.java index d05ee9ca..3da55e70 100644 --- a/renren-admin/src/main/java/io/renren/modules/fuse/controller/FuseController.java +++ b/renren-admin/src/main/java/io/renren/modules/fuse/controller/FuseController.java @@ -62,13 +62,6 @@ public class FuseController { return new Result().ok(tbFuseService.getFuseById(id)); } - @GetMapping("getDataResource") - @ApiOperation("获取资源数据") - @LogOperation("获取资源数据") - public Result> getDataResource() { - return new Result().ok(tbFuseService.getDataResource()); - } - @PostMapping @ApiOperation("保存") @LogOperation("保存") diff --git a/renren-admin/src/main/java/io/renren/modules/fuse/service/TbFuseService.java b/renren-admin/src/main/java/io/renren/modules/fuse/service/TbFuseService.java index b296b7ef..f50ea326 100644 --- a/renren-admin/src/main/java/io/renren/modules/fuse/service/TbFuseService.java +++ b/renren-admin/src/main/java/io/renren/modules/fuse/service/TbFuseService.java @@ -16,8 +16,6 @@ public interface TbFuseService extends CrudService { TbFuseDTO getFuseById(Long id); - List getDataResource(); - Integer addFuse(TbFuseDTO dto); Integer updateFuse(TbFuseDTO dto); diff --git a/renren-admin/src/main/java/io/renren/modules/fuse/service/impl/TbFuseServiceImpl.java b/renren-admin/src/main/java/io/renren/modules/fuse/service/impl/TbFuseServiceImpl.java index 39d39908..407db5dd 100644 --- a/renren-admin/src/main/java/io/renren/modules/fuse/service/impl/TbFuseServiceImpl.java +++ b/renren-admin/src/main/java/io/renren/modules/fuse/service/impl/TbFuseServiceImpl.java @@ -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 getDataResource() { - int pageNum=0; - int pageSize=getDataResourceCount(); - List result = new ArrayList<>(); - Optional factory = DataResourceFactory.build(); - if (factory.isPresent()) { - GetDataResourceListDto dto = new GetDataResourceListDto().setPageNum(pageNum).setPageSize(pageSize); - Map dataMap = (Map) factory.get().getDataResource(dto); - if (dataMap != null) { - List> list = (List>) dataMap.get("data"); - list.forEach(map -> result.add(new HashMap() {{ - if (map.containsKey("zyname")) { - put("id", map.get("guid")); - put("name", map.get("zyname")); - } else { - put("id", map.get("serviceId")); - put("name", map.get("serviceName")); + private Map> getDataResource() { + Map result=new ConcurrentHashMap(); + final int pageSize = CPU_NUM * 10; + AtomicInteger pageIndex = new AtomicInteger(1); + AtomicBoolean end = new AtomicBoolean(true); + List completableFutures=new CopyOnWriteArrayList<>(); + while(end.get()){ + completableFutures.add(CompletableFuture.supplyAsync(()->{ + Optional factory = DataResourceFactory.build(); + if (factory.isPresent()) { + GetDataResourceListDto dto=new GetDataResourceListDto().setPageNum(pageIndex.get()).setPageSize(pageSize); + Map dataResource = (Map) factory.get().getDataResource(dto); + if(!dataResource.isEmpty()){ + List> list = (List>) dataResource.get("data"); + pageIndex.getAndIncrement(); + return new HashMap(){{put( list.stream().map(map->{ + if (map.containsKey("zyname")) { + return map.get("guid"); + } else { + return map.get("serviceId"); + } + }), list);}}; } - }})); - } + } + return null; + }).thenAcceptAsync(map->{ + if(map != null){ + result.putAll(map); + } + })); } return result; } - private int getDataResourceCount() { - int count=30; - Optional factory = DataResourceFactory.build(); - if (factory.isPresent()) { - GetDataResourceListDto dto = new GetDataResourceListDto().setPageNum(0).setPageSize(30); - Map dataMap = (Map) factory.get().getDataResource(dto); - if (dataMap != null) { - count=Integer.parseInt(dataMap.get("rows").toString()); - } - } - return count; - } - private List getFuseResourceByFuseId(Long fuseId) { - List dataResourceMap = new ArrayList<>(); + Map dataResourceMap = new HashMap(); List result = new ArrayList(); QueryWrapper wrapper = new QueryWrapper(); wrapper.eq("fuse_id", fuseId); List list = fuseResourceDao.selectList(wrapper); Map> 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 { 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)) { diff --git a/renren-admin/src/main/java/io/renren/modules/processForm/listener/v3/ApplyDistrictListener.java b/renren-admin/src/main/java/io/renren/modules/processForm/listener/v3/ApplyDistrictListener.java index 2f83b64b..22dc606d 100644 --- a/renren-admin/src/main/java/io/renren/modules/processForm/listener/v3/ApplyDistrictListener.java +++ b/renren-admin/src/main/java/io/renren/modules/processForm/listener/v3/ApplyDistrictListener.java @@ -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 { diff --git a/renren-admin/src/main/java/io/renren/modules/processForm/listener/v3/CityListener.java b/renren-admin/src/main/java/io/renren/modules/processForm/listener/v3/CityListener.java index 8d993161..019b35cc 100644 --- a/renren-admin/src/main/java/io/renren/modules/processForm/listener/v3/CityListener.java +++ b/renren-admin/src/main/java/io/renren/modules/processForm/listener/v3/CityListener.java @@ -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 { diff --git a/renren-admin/src/main/java/io/renren/modules/processForm/listener/v3/OwnerDistrictListener.java b/renren-admin/src/main/java/io/renren/modules/processForm/listener/v3/OwnerDistrictListener.java index f3d2f24f..ee6abdf1 100644 --- a/renren-admin/src/main/java/io/renren/modules/processForm/listener/v3/OwnerDistrictListener.java +++ b/renren-admin/src/main/java/io/renren/modules/processForm/listener/v3/OwnerDistrictListener.java @@ -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 { diff --git a/renren-admin/src/main/java/io/renren/modules/resource/service/impl/ResourceServiceImpl.java b/renren-admin/src/main/java/io/renren/modules/resource/service/impl/ResourceServiceImpl.java index 85ac2a0b..8a736367 100644 --- a/renren-admin/src/main/java/io/renren/modules/resource/service/impl/ResourceServiceImpl.java +++ b/renren-admin/src/main/java/io/renren/modules/resource/service/impl/ResourceServiceImpl.java @@ -1275,9 +1275,8 @@ public class ResourceServiceImpl extends CrudServiceImpl