资源下架流程
This commit is contained in:
parent
104d3b5129
commit
fd645cffeb
|
@ -13,8 +13,12 @@ import io.renren.modules.activiti.dto.ProcessInstanceDTO;
|
|||
import io.renren.modules.activiti.dto.ProcessStartDTO;
|
||||
import io.renren.modules.activiti.service.ActProcessService;
|
||||
import io.renren.modules.activiti.service.ActRunningService;
|
||||
import io.renren.modules.resource.dto.ResourceDTO;
|
||||
import io.renren.modules.resource.entity.ResourceEntityDelFlag;
|
||||
import io.renren.modules.resource.service.ResourceService;
|
||||
import io.renren.modules.resourceMountApply.dto.TResourceBatchMountApplyDTO;
|
||||
import io.renren.modules.resourceMountApply.dto.TResourceMountApplyDTO;
|
||||
import io.renren.modules.resourceMountApply.dto.TResourceUndercarriageApplyDTO;
|
||||
import io.renren.modules.resourceMountApply.service.TResourceMountApplyService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
|
@ -30,6 +34,7 @@ import org.springframework.web.bind.annotation.RestController;
|
|||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Api(tags = "资源上架")
|
||||
|
@ -44,12 +49,24 @@ public class ResourceMountController {
|
|||
private ActRunningService actRunningService;
|
||||
@Autowired
|
||||
private TResourceMountApplyService tResourceMountApplyService;
|
||||
private static String key = "resourcemountapply";
|
||||
@Autowired
|
||||
private ResourceService resourceService;
|
||||
|
||||
private static Map<String, Object> params = new HashMap<String, Object>() {
|
||||
private static String apply_key = "resourcemountapply"; // 资源上架
|
||||
|
||||
private static String undercarriage_key = "resourcundercarriageapply"; // 资源下架
|
||||
|
||||
private static Map<String, Object> apply_params = new HashMap<String, Object>() {
|
||||
{
|
||||
put("isLatestVersion", true); // 取最新版本
|
||||
put("key", key); // 限定 能力资源上架
|
||||
put("key", apply_key); // 限定 能力资源上架
|
||||
}
|
||||
};
|
||||
|
||||
private static Map<String, Object> undercarriage_params = new HashMap<String, Object>() {
|
||||
{
|
||||
put("isLatestVersion", true); // 取最新版本
|
||||
put("key", undercarriage_key); // 限定 资源下架
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -58,7 +75,7 @@ public class ResourceMountController {
|
|||
@ApiOperation("批量进行能力上架申请")
|
||||
public Result<List<ProcessInstanceDTO>> apply(@RequestBody TResourceBatchMountApplyDTO tResourceBatchMountApplyDTO) {
|
||||
// 仿照请求接口 /act/process/lastestPage
|
||||
PageData<Map<String, Object>> page = actProcessService.page(params);
|
||||
PageData<Map<String, Object>> page = actProcessService.page(apply_params);
|
||||
if (page.getTotal() <= 0) { //
|
||||
return new Result().error("联系管理员添加流程");
|
||||
}
|
||||
|
@ -85,7 +102,7 @@ public class ResourceMountController {
|
|||
// 仿照请求接口 /act/running/startOfBusinessKey
|
||||
ProcessStartDTO processStartDTO = new ProcessStartDTO();
|
||||
processStartDTO.setBusinessKey(tResourceMountApplyDTO.getId().toString());
|
||||
processStartDTO.setProcessDefinitionKey(key); // 限定资源上架
|
||||
processStartDTO.setProcessDefinitionKey(apply_key); // 限定资源上架
|
||||
ObjectMapper oMapper = new ObjectMapper();
|
||||
Map<String, Object> variables = oMapper.convertValue(tResourceMountApplyDTO, Map.class);
|
||||
processStartDTO.setVariables(variables);
|
||||
|
@ -103,4 +120,42 @@ public class ResourceMountController {
|
|||
return dto;
|
||||
}).filter(index -> ObjectUtil.isNotNull(index)).collect(Collectors.toList()));
|
||||
}
|
||||
|
||||
@PostMapping(value = "/undercarriage")
|
||||
@ApiOperation("批量进行能力下架申请")
|
||||
public Result<List<ProcessInstanceDTO>> undercarriage(@RequestBody TResourceUndercarriageApplyDTO tResourceUndercarriageApplyDTO) {
|
||||
// 仿照请求接口 /act/process/lastestPage
|
||||
PageData<Map<String, Object>> page = actProcessService.page(undercarriage_params);
|
||||
if (page.getTotal() <= 0) { //
|
||||
return new Result().error("联系管理员添加流程");
|
||||
}
|
||||
logger.info("---------------------------------------------------");
|
||||
logger.info(JSONObject.toJSONString(tResourceUndercarriageApplyDTO));
|
||||
logger.info("####################################################");
|
||||
return new Result().ok(tResourceUndercarriageApplyDTO.getResource().stream().map(index -> {
|
||||
Long resourceId = Long.valueOf(index.get("resourceId"));
|
||||
String resourceName = index.get("resourceName");
|
||||
Optional<ResourceDTO> resourceDTO = Optional.ofNullable(resourceService.get(resourceId));
|
||||
resourceDTO.ifPresent(dto -> {
|
||||
dto.setUndercarriageReason(tResourceUndercarriageApplyDTO.getReason());
|
||||
dto.setDelFlag(ResourceEntityDelFlag.UNDERCARRIAGE_REVIEW.getFlag()); // 设置为下架审核中
|
||||
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
|
||||
resourceService.update(dto);
|
||||
});
|
||||
|
||||
logger.info("-------------------1.保存申请表单成功--------------------------");
|
||||
// 仿照请求接口 /act/running/startOfBusinessKey
|
||||
ProcessStartDTO processStartDTO = new ProcessStartDTO();
|
||||
processStartDTO.setBusinessKey(resourceId.toString());
|
||||
processStartDTO.setProcessDefinitionKey(undercarriage_key); // 限定资源下架
|
||||
ObjectMapper oMapper = new ObjectMapper();
|
||||
Map<String, Object> variables = oMapper.convertValue(resourceDTO, Map.class);
|
||||
processStartDTO.setVariables(variables);
|
||||
ProcessInstanceDTO dto = actRunningService.startOfBusinessKey(processStartDTO);
|
||||
logger.info("-------------------2.启动流程成功--------------------------");
|
||||
logger.info("ProcessInstanceDTO.getBusinessKey:" + dto.getBusinessKey());
|
||||
|
||||
return dto;
|
||||
}).filter(index -> ObjectUtil.isNotNull(index)).collect(Collectors.toList()));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,6 +12,8 @@ import io.renren.modules.demanData.dto.TDemandDataDTO;
|
|||
import io.renren.modules.demanData.service.TDemandDataService;
|
||||
import io.renren.modules.processForm.dto.TAbilityApplicationDTO;
|
||||
import io.renren.modules.processForm.service.TAbilityApplicationService;
|
||||
import io.renren.modules.resource.dto.ResourceDTO;
|
||||
import io.renren.modules.resource.service.ResourceService;
|
||||
import io.renren.modules.resourceMountApply.dto.TResourceMountApplyDTO;
|
||||
import io.renren.modules.resourceMountApply.service.TResourceMountApplyService;
|
||||
import io.renren.modules.security.user.SecurityUser;
|
||||
|
@ -72,6 +74,8 @@ public class ActTaskService extends BaseServiceImpl {
|
|||
|
||||
@Autowired
|
||||
private TDemandDataService tDemandDataService;
|
||||
@Autowired
|
||||
private ResourceService resourceService;
|
||||
|
||||
/**
|
||||
* 根据参数获取当前运行的任务信息
|
||||
|
@ -115,25 +119,37 @@ public class ActTaskService extends BaseServiceImpl {
|
|||
for (Task task : list) {
|
||||
TaskDTO dto = new TaskDTO();
|
||||
this.convertTaskInfo(task, dto);
|
||||
ObjectMapper oMapper = new ObjectMapper();
|
||||
|
||||
TAbilityApplicationDTO abilityApplicationDTO =
|
||||
tAbilityApplicationService.get(Long.valueOf(dto.getBusinessKey()));
|
||||
TResourceMountApplyDTO resourceMountApplyDTO = tResourceMountApplyService.get(Long.valueOf(dto.getBusinessKey()));
|
||||
TDemandDataDTO tDemandDataDTO = tDemandDataService.get(Long.valueOf(dto.getBusinessKey()));
|
||||
if (abilityApplicationDTO != null) {
|
||||
ObjectMapper oMapper = new ObjectMapper();
|
||||
Map<String, Object> variables = oMapper.convertValue(abilityApplicationDTO, Map.class);
|
||||
dto.setParams(variables);
|
||||
} else if (resourceMountApplyDTO != null) {
|
||||
ObjectMapper oMapper = new ObjectMapper();
|
||||
listDto.add(dto);
|
||||
continue;
|
||||
}
|
||||
TResourceMountApplyDTO resourceMountApplyDTO = tResourceMountApplyService.get(Long.valueOf(dto.getBusinessKey()));
|
||||
if (resourceMountApplyDTO != null) {
|
||||
Map<String, Object> variables = oMapper.convertValue(resourceMountApplyDTO, Map.class);
|
||||
dto.setParams(variables);
|
||||
} else if (tDemandDataDTO != null) {
|
||||
ObjectMapper oMapper = new ObjectMapper();
|
||||
listDto.add(dto);
|
||||
continue;
|
||||
}
|
||||
TDemandDataDTO tDemandDataDTO = tDemandDataService.get(Long.valueOf(dto.getBusinessKey()));
|
||||
if (tDemandDataDTO != null) {
|
||||
Map<String, Object> variables = oMapper.convertValue(tDemandDataDTO, Map.class);
|
||||
dto.setParams(variables);
|
||||
listDto.add(dto);
|
||||
continue;
|
||||
}
|
||||
ResourceDTO resourceDTO = resourceService.get(Long.valueOf(dto.getBusinessKey()));
|
||||
if (resourceDTO != null) {
|
||||
Map<String, Object> variables = oMapper.convertValue(resourceDTO, Map.class);
|
||||
dto.setParams(variables);
|
||||
listDto.add(dto);
|
||||
continue;
|
||||
}
|
||||
|
||||
listDto.add(dto);
|
||||
}
|
||||
return new PageData<>(listDto, (int) taskQuery.count());
|
||||
}
|
||||
|
|
|
@ -96,6 +96,8 @@ public class ResourceDTO implements Serializable {
|
|||
|
||||
@ApiModelProperty(value = "附件")
|
||||
private String enclosure;
|
||||
@ApiModelProperty(value = "下架理由")
|
||||
private String undercarriageReason;
|
||||
|
||||
public String getDelFlagTip() {
|
||||
if (this.delFlag != null) {
|
||||
|
|
|
@ -19,11 +19,6 @@ import java.util.Date;
|
|||
public class ResourceEntity extends BaseEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
// /**
|
||||
// * 主键
|
||||
// */
|
||||
// @TableId(type = IdType.INPUT)
|
||||
// private Long id;
|
||||
/**
|
||||
* 类型:基础设施,数据资源等
|
||||
*/
|
||||
|
@ -88,16 +83,7 @@ public class ResourceEntity extends BaseEntity {
|
|||
* 删除标志:0:正常;1:已删除;9其他
|
||||
*/
|
||||
private Integer delFlag;
|
||||
// /**
|
||||
// * 创建人
|
||||
// */
|
||||
// @TableField(fill = FieldFill.INSERT)
|
||||
// private Long creator;
|
||||
// /**
|
||||
// * 创建时间
|
||||
// */
|
||||
// @TableField(fill = FieldFill.INSERT)
|
||||
// private Date createDate;
|
||||
|
||||
/**
|
||||
* 修改人
|
||||
*/
|
||||
|
@ -134,4 +120,9 @@ public class ResourceEntity extends BaseEntity {
|
|||
* 附件
|
||||
*/
|
||||
private String enclosure;
|
||||
|
||||
/**
|
||||
* 下架理由
|
||||
*/
|
||||
private String undercarriageReason;
|
||||
}
|
|
@ -14,7 +14,8 @@ public enum ResourceEntityDelFlag {
|
|||
UNDER_REVIEW(3, "上架审核中"),
|
||||
UNDERCARRIAGE_REVIEW(4, "下架审核中"),
|
||||
UNDERCARRIAGE(5, "已下架"),
|
||||
OTHER(9, "其他");
|
||||
OTHER(9, "其他"),
|
||||
UNKNOWN(10, "未知");
|
||||
|
||||
private int flag;
|
||||
private String tip;
|
||||
|
@ -26,7 +27,7 @@ public enum ResourceEntityDelFlag {
|
|||
|
||||
public static ResourceEntityDelFlag getByFlag(int flag) {
|
||||
ResourceEntityDelFlag[] index = ResourceEntityDelFlag.values();
|
||||
return Arrays.asList(index).stream().filter(index_ -> index_.flag == flag).findAny().orElse(null);
|
||||
return Arrays.asList(index).stream().filter(index_ -> index_.flag == flag).findAny().orElse(ResourceEntityDelFlag.UNKNOWN);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,117 @@
|
|||
package io.renren.modules.resource.listener;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.JsonElement;
|
||||
import io.renren.modules.resource.dto.ResourceDTO;
|
||||
import io.renren.modules.resource.service.ResourceService;
|
||||
import io.renren.modules.sys.dto.SysDeptDTO;
|
||||
import io.renren.modules.sys.dto.SysRoleDTO;
|
||||
import io.renren.modules.sys.dto.SysUserDTO;
|
||||
import io.renren.modules.sys.service.SysDeptService;
|
||||
import io.renren.modules.sys.service.SysRoleService;
|
||||
import io.renren.modules.sys.service.SysUserService;
|
||||
import org.activiti.engine.TaskService;
|
||||
import org.activiti.engine.delegate.DelegateTask;
|
||||
import org.activiti.engine.delegate.TaskListener;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
/**
|
||||
* 资源下线审核
|
||||
*/
|
||||
@Component
|
||||
public class ResourceUndercarriageListener implements TaskListener {
|
||||
private static Logger logger = LoggerFactory.getLogger(ResourceUndercarriageListener.class);
|
||||
|
||||
@Value("${big_date.name}")
|
||||
private String bigDateDeptName; // 大数据局名称
|
||||
@Value("${big_date.assignee_role_name}")
|
||||
private String roleName; // 具备审批的角色名称
|
||||
|
||||
@Autowired
|
||||
private SysRoleService sysRoleService;
|
||||
@Autowired
|
||||
private TaskService taskService;
|
||||
@Autowired
|
||||
private SysUserService sysUserService;
|
||||
|
||||
@Autowired
|
||||
private SysDeptService sysDeptService;
|
||||
@Autowired
|
||||
private ResourceService resourceService;
|
||||
|
||||
@Override
|
||||
public void notify(DelegateTask delegateTask) {
|
||||
logger.error("----------------------进入资源所有者节点---------------------------");
|
||||
logger.error("事件类型:" + delegateTask.getEventName());
|
||||
SysRoleDTO roleDTO = sysRoleService.getByName(roleName);
|
||||
logger.error("roleDTOId:" + roleDTO.getId());
|
||||
final String eventName = delegateTask.getEventName();
|
||||
switch (eventName) {
|
||||
case EVENTNAME_CREATE: // 创建当前审批节点事件
|
||||
create(delegateTask, roleDTO);
|
||||
break;
|
||||
default:
|
||||
logger.error("未处理该事件:" + eventName);
|
||||
}
|
||||
logger.error("-----------------------结束资源所有者节点---------------------------");
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 节点创建时动态分配资源部门审核人
|
||||
*
|
||||
* @param delegateTask
|
||||
* @param roleDTO
|
||||
*/
|
||||
private void create(DelegateTask delegateTask, final SysRoleDTO roleDTO) {
|
||||
Map<String, Object> kv = delegateTask.getVariables();
|
||||
Gson gson = new Gson();
|
||||
JsonElement jsonElement = gson.toJsonTree(kv);
|
||||
ResourceDTO re = gson.fromJson(jsonElement, ResourceDTO.class);
|
||||
;
|
||||
if (re.getDeptId() != null) {
|
||||
SysDeptDTO deptDTO =
|
||||
sysDeptService.get(re.getDeptId());
|
||||
SysUserDTO userDTO = null;
|
||||
if (deptDTO.getId() != null) {
|
||||
userDTO = sysUserService.getByDeptIdAndRoleId(deptDTO.getId(), roleDTO.getId()); // 搜出审批人
|
||||
}
|
||||
if (userDTO != null) {
|
||||
logger.error("审批人id:" + userDTO.getId() + "姓名:" + userDTO.getRealName());
|
||||
taskService.setAssignee(delegateTask.getId(), userDTO.getId().toString());
|
||||
} else {
|
||||
logger.error("未查到该部门对应的 " + roleName + " 将使用大数据部门审核人");
|
||||
defaultUser(delegateTask.getId(), roleDTO);
|
||||
}
|
||||
} else {
|
||||
defaultUser(delegateTask.getId(), roleDTO);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 未找到部门对应的审核人
|
||||
*
|
||||
* @param taskId
|
||||
*/
|
||||
private void defaultUser(String taskId, final SysRoleDTO roleDTO) {
|
||||
logger.error("大数据局名称:" + bigDateDeptName);
|
||||
SysDeptDTO deptDTO = sysDeptService.getByName(bigDateDeptName);
|
||||
logger.error("roleDTOId:" + roleDTO.getId());
|
||||
SysUserDTO userDTO = sysUserService.getByDeptIdAndRoleId(deptDTO.getId(), roleDTO.getId());
|
||||
|
||||
if (userDTO != null) {
|
||||
logger.error("大数据审批人id:" + userDTO.getId() + "姓名:" + userDTO.getRealName());
|
||||
taskService.setAssignee(taskId, userDTO.getId().toString());
|
||||
} else {
|
||||
logger.error("未查到大数据部门对应 " + roleName);
|
||||
taskService.setAssignee(taskId, "1516728698224427010");
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
package io.renren.modules.resourceMountApply.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
@Data
|
||||
@ApiModel(value = "资源下架申请表单")
|
||||
public class TResourceUndercarriageApplyDTO implements Serializable {
|
||||
@ApiModelProperty(value = "下架申请人id")
|
||||
private String userId;
|
||||
@ApiModelProperty(value = "下架申请人名字")
|
||||
private String userName;
|
||||
@ApiModelProperty(value = "下架申请人电话")
|
||||
private String phone;
|
||||
@ApiModelProperty(value = "下架申请人部门")
|
||||
private String deptId;
|
||||
@ApiModelProperty(value = "待下架的资源 id、资源名称 键值对")
|
||||
private List<Map<String, String>> resource;
|
||||
@ApiModelProperty(value = "下架原因")
|
||||
private String reason;
|
||||
}
|
|
@ -80,9 +80,6 @@ public class ResourceOwnerListener implements TaskListener, ExecutionListener, A
|
|||
case EVENTNAME_CREATE: // 创建当前审批节点事件
|
||||
create(delegateTask, roleDTO);
|
||||
break;
|
||||
// case EVENTNAME_COMPLETE:
|
||||
// complete(delegateTask);
|
||||
// break;
|
||||
default:
|
||||
logger.error("未处理该事件:" + eventName);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue