增加大数据动态审批人

This commit is contained in:
wangliwen 2022-04-21 18:00:32 +08:00
parent b4bbdd1194
commit 8a594d2180
7 changed files with 168 additions and 57 deletions

View File

@ -76,6 +76,8 @@ public class AbilityCenterController {
tAbilityApplicationDTO.setInstanceId(abilityBatchApplicationDTO.getInstanceId()); tAbilityApplicationDTO.setInstanceId(abilityBatchApplicationDTO.getInstanceId());
tAbilityApplicationDTO.setUnit(abilityBatchApplicationDTO.getUnit()); tAbilityApplicationDTO.setUnit(abilityBatchApplicationDTO.getUnit());
tAbilityApplicationDTO.setUser(abilityBatchApplicationDTO.getUser()); tAbilityApplicationDTO.setUser(abilityBatchApplicationDTO.getUser());
tAbilityApplicationDTO.setResourceId(abilityBatchApplicationDTO.getResourceId());
tAbilityApplicationDTO.setUser(abilityBatchApplicationDTO.getUser());
tAbilityApplicationDTO.setSystem(index); tAbilityApplicationDTO.setSystem(index);
// 仿照请求接口 /processForm/tabilityapplication // 仿照请求接口 /processForm/tabilityapplication
ValidatorUtils.validateEntity(tAbilityApplicationDTO, AddGroup.class, DefaultGroup.class); ValidatorUtils.validateEntity(tAbilityApplicationDTO, AddGroup.class, DefaultGroup.class);

View File

@ -7,11 +7,11 @@ import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
/** /**
* 能力申请表单 * 能力申请表单
* *
* @author Mark sunlightcs@gmail.com * @author Mark sunlightcs@gmail.com
* @since 3.0 2022-04-13 * @since 3.0 2022-04-13
*/ */
@Data @Data
@ApiModel(value = "能力申请表单") @ApiModel(value = "能力申请表单")
public class TAbilityApplicationDTO implements Serializable { public class TAbilityApplicationDTO implements Serializable {
@ -37,4 +37,9 @@ public class TAbilityApplicationDTO implements Serializable {
@ApiModelProperty(value = "实例ID") @ApiModelProperty(value = "实例ID")
private String instanceId; private String instanceId;
@ApiModelProperty(value = "资源id")
private String resourceId;
@ApiModelProperty(value = "用户id")
private String userId;
} }

View File

@ -32,4 +32,9 @@ public class TAbilityBatchApplicationDTO implements Serializable {
private String attachment; private String attachment;
@ApiModelProperty(value = "实例ID") @ApiModelProperty(value = "实例ID")
private String instanceId; private String instanceId;
@ApiModelProperty(value = "资源id")
private String resourceId;
@ApiModelProperty(value = "用户id")
private String userId;
} }

View File

@ -11,48 +11,59 @@ import com.baomidou.mybatisplus.annotation.*;
* @since 3.0 2022-04-13 * @since 3.0 2022-04-13
*/ */
@Data @Data
@EqualsAndHashCode(callSuper=false) @EqualsAndHashCode(callSuper = false)
@TableName("t_ability_application") @TableName("t_ability_application")
public class TAbilityApplicationEntity { public class TAbilityApplicationEntity {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@TableId @TableId
private Long id; private Long id;
/** /**
* 申请人 * 申请人
*/ */
private String user; private String user;
/** /**
* 申请人电话 * 申请人电话
*/ */
private String phone; private String phone;
/** /**
* 申请人单位 * 申请人单位
*/ */
private String unit; private String unit;
/** /**
* 申请人所在地区 * 申请人所在地区
*/ */
private String area; private String area;
/** /**
* 申请应用系统 * 申请应用系统
*/ */
private String system; private String system;
/** /**
* 申请场景 * 申请场景
*/ */
private String scene; private String scene;
/** /**
* 申请依据 * 申请依据
*/ */
private String basis; private String basis;
/** /**
* 申请附件 * 申请附件
*/ */
private String attachment; private String attachment;
/** /**
* 实例ID * 实例ID
*/ */
private String instanceId; private String instanceId;
/**
* 资源id
*/
private String resourceId;
/**
* 用户id
*/
private String userId;
} }

View File

@ -3,6 +3,8 @@ package io.renren.modules.processForm.listener;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.JsonElement; import com.google.gson.JsonElement;
import io.renren.modules.processForm.dto.TAbilityApplicationDTO; import io.renren.modules.processForm.dto.TAbilityApplicationDTO;
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.SysDeptDTO;
import io.renren.modules.sys.dto.SysRoleDTO; import io.renren.modules.sys.dto.SysRoleDTO;
import io.renren.modules.sys.dto.SysUserDTO; import io.renren.modules.sys.dto.SysUserDTO;
@ -38,20 +40,33 @@ public class CorrectionListener implements TaskListener, ExecutionListener, Acti
@Autowired @Autowired
private SysDeptService sysDeptService; private SysDeptService sysDeptService;
@Autowired
private ResourceService resourceService;
@Override @Override
public void notify(DelegateTask delegateTask) { public void notify(DelegateTask delegateTask) {
Map<String, Object> kv = delegateTask.getVariables(); Map<String, Object> kv = delegateTask.getVariables();
Gson gson = new Gson(); Gson gson = new Gson();
JsonElement jsonElement = gson.toJsonTree(kv); JsonElement jsonElement = gson.toJsonTree(kv);
TAbilityApplicationDTO abilityApplicationDTO = gson.fromJson(jsonElement, TAbilityApplicationDTO.class); TAbilityApplicationDTO abilityApplicationDTO = gson.fromJson(jsonElement, TAbilityApplicationDTO.class);
logger.info(abilityApplicationDTO.toString());
logger.info("表单内单位名称:" + abilityApplicationDTO.getUnit());
SysDeptDTO deptDTO = sysDeptService.getByName(abilityApplicationDTO.getUnit());
logger.info("deptDTOId:" + deptDTO.getId());
SysRoleDTO roleDTO = sysRoleService.getByName(roleName); SysRoleDTO roleDTO = sysRoleService.getByName(roleName);
logger.info("roleDTOId:" + roleDTO.getId()); logger.info("roleDTOId:" + roleDTO.getId());
logger.info("abilityApplicationDTO:" + abilityApplicationDTO.toString());
ResourceDTO resourceEntityDto = resourceService.get(Long.valueOf(abilityApplicationDTO.getResourceId()));
Long deptId = null;
if (resourceEntityDto != null && resourceEntityDto.getDeptId() != null) {
deptId = resourceEntityDto.getDeptId();
} else {
logger.info("表单内单位名称:" + abilityApplicationDTO.getUnit());
SysDeptDTO deptDTO = sysDeptService.getByName(abilityApplicationDTO.getUnit());
logger.info("deptDTOId:" + deptDTO.getId());
deptId = deptDTO.getId();
}
SysUserDTO userDTO = sysUserService.getByDeptIdAndRoleId(deptId, roleDTO.getId()); // 搜出审批人
delegateTask.setAssignee("1513432847327199233"); delegateTask.setAssignee("1513432847327199233");
SysUserDTO userDTO = sysUserService.getByDeptIdAndRoleId(deptDTO.getId(), roleDTO.getId());
if (userDTO != null) { if (userDTO != null) {
logger.info("审批人id:" + userDTO.getId()); logger.info("审批人id:" + userDTO.getId());
taskService.setAssignee(delegateTask.getId(), userDTO.getId().toString()); taskService.setAssignee(delegateTask.getId(), userDTO.getId().toString());
@ -62,12 +77,12 @@ public class CorrectionListener implements TaskListener, ExecutionListener, Acti
@Override @Override
public void notify(DelegateExecution delegateExecution) throws Exception { public void notify(DelegateExecution delegateExecution) throws Exception {
logger.info("事件:" + delegateExecution.getEventName()); // logger.info("事件:" + delegateExecution.getEventName());
delegateExecution.getVariableNames().stream().forEach(index -> logger.info("variable:" + index)); // delegateExecution.getVariableNames().stream().forEach(index -> logger.info("variable:" + index));
delegateExecution.getVariables().values().stream().filter(index -> index != null).forEach(value -> logger.info(value.toString())); // delegateExecution.getVariables().values().stream().filter(index -> index != null).forEach(value -> logger.info(value.toString()));
// taskService.setAssignee(delegateExecution.getProcessInstanceId(), "1516307964617076737");// 可以设置 // // taskService.setAssignee(delegateExecution.getProcessInstanceId(), "1516307964617076737");// 可以设置
//
logger.info("修改审批人成功!" + delegateExecution.getCurrentActivityId() + " " + delegateExecution.getProcessInstanceId() + " " + delegateExecution.getProcessBusinessKey()); // logger.info("修改审批人成功!" + delegateExecution.getCurrentActivityId() + " " + delegateExecution.getProcessInstanceId() + " " + delegateExecution.getProcessBusinessKey());
} }
@Override @Override

View File

@ -0,0 +1,73 @@
package io.renren.modules.processForm.listener;
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.SysRoleUserService;
import io.renren.modules.sys.service.SysUserService;
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.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class DataCenterListener implements TaskListener, ExecutionListener, ActivitiEventListener, JavaDelegate {
private static Logger logger = LoggerFactory.getLogger(DataCenterListener.class);
private static String deptName = "青岛市大数据发展管理局";
private static String roleName = "部门审批人";
@Autowired
private SysRoleService sysRoleService;
@Autowired
private TaskService taskService;
@Autowired
private SysUserService sysUserService;
@Autowired
private SysRoleUserService sysRoleUserService;
@Autowired
private SysDeptService sysDeptService;
@Override
public void notify(DelegateExecution delegateExecution) throws Exception {
}
@Override
public void execute(DelegateExecution delegateExecution) throws Exception {
}
@Override
public void notify(DelegateTask delegateTask) {
SysDeptDTO deptDTO = sysDeptService.getByName(deptName);
logger.info("deptDTOId:" + deptDTO.getId());
SysRoleDTO roleDTO = sysRoleService.getByName(roleName);
logger.info("roleDTOId:" + roleDTO.getId());
SysUserDTO userDTO = sysUserService.getByDeptIdAndRoleId(deptDTO.getId(), roleDTO.getId());
delegateTask.setAssignee("1513432847327199233");
if (userDTO != null) {
logger.info("审批人id:" + userDTO.getId());
taskService.setAssignee(delegateTask.getId(), userDTO.getId().toString());
} else {
logger.info("未查到该部门对应 " + roleName);
}
}
@Override
public void onEvent(ActivitiEvent activitiEvent) {
}
@Override
public boolean isFailOnException() {
return false;
}
}

View File

@ -14,7 +14,7 @@
<fileNamePattern>${LOG_HOME}/info.%d{yyyy-MM-dd}.%i.log</fileNamePattern> <fileNamePattern>${LOG_HOME}/info.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<MaxHistory>120</MaxHistory> <MaxHistory>120</MaxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>500MB</maxFileSize> <maxFileSize>50MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy> </timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy> </rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">