自动触发流程:管理员发起《5.2.6培训效果评估管理》选择了培训名称后会自动带出多人力资源值,,并且 培训效果评估方式选择了 培训效果评估表 提交流程后多人里资源里面所有的人收到《培训效果评估表》流程进行打分,收到时处于审批环节,打分直接提交流程即可归档。自动触发的培训效果评估表也要自动带出评估项目培训课程 就是培训主题

This commit is contained in:
dxfeng 2025-03-27 14:29:53 +08:00
parent 85026bce47
commit fd691a4eef
1 changed files with 164 additions and 0 deletions

View File

@ -0,0 +1,164 @@
package weaver.interfaces.hzzx.action;
import cn.hutool.core.convert.Convert;
import org.apache.commons.lang.StringUtils;
import weaver.common.DateUtil;
import weaver.conn.RecordSet;
import weaver.hrm.resource.ResourceComInfo;
import weaver.interfaces.workflow.action.Action;
import weaver.soa.workflow.request.MainTableInfo;
import weaver.soa.workflow.request.Property;
import weaver.soa.workflow.request.RequestInfo;
import weaver.workflow.webservices.*;
import java.util.HashMap;
import java.util.Map;
/**
* @author:dxfeng
* @createTime: 2025/03/27
* @version: 1.0
*/
public class TrainingManageCreateFlowAction implements Action {
/**
* 培训效果评估表 流程ID
*/
private String FLOW_ID = "65";
RecordSet rs = new RecordSet();
@Override
public String execute(RequestInfo requestInfo) {
try {
MainTableInfo mainTableInfo = requestInfo.getMainTableInfo();
Property[] properties = mainTableInfo.getProperty();
Map<String, String> mainDataMap = new HashMap<>();
for (Property property : properties) {
mainDataMap.put(property.getName(), property.getValue());
}
String pxxgpgfs = mainDataMap.get("pxxgpgfs");
String drlzy = mainDataMap.get("drlzy");
String pxmc = mainDataMap.get("pxmc");
rs.writeLog("pxxgpgfs==" + pxxgpgfs + "drlzy==" + drlzy + "pxmc==" + pxmc );
if (!"0".equals(pxxgpgfs)) {
// 不是培训效果评估表,不做处理
return SUCCESS;
}
ResourceComInfo resourceComInfo = new ResourceComInfo();
if (StringUtils.isNotBlank(drlzy)) {
String[] userIds = drlzy.split(",");
for (String userId : userIds) {
// 创建流程
String lastName = resourceComInfo.getLastname(userId);
String workCode = resourceComInfo.getWorkcode(userId);
String departmentId = resourceComInfo.getDepartmentID(userId);
rs.writeLog("lastName==" + lastName + "workCode==" + workCode + "departmentId==" + departmentId);
createWorkFLow(lastName, userId, workCode, departmentId, pxmc);
}
}
return SUCCESS;
} catch (Exception e) {
rs.writeLog(e);
requestInfo.getRequestManager().setMessagecontent(e.getMessage());
return FAILURE_AND_CONTINUE;
}
}
/**
* 创建流程
*
* @param lastName
* @param userId
* @param workCode
* @param departmentId
* @param pxmc
*/
private void createWorkFLow(String lastName, String userId, String workCode, String departmentId, String pxmc) {
// 构建主表流程数据
WorkflowRequestTableField[] workflowRequestTableField = {
createWorkflowRequestTableField("xm", userId),
createWorkflowRequestTableField("gh", workCode),
createWorkflowRequestTableField("bm", departmentId)
};
WorkflowMainTableInfo workflowMainTableInfo = new WorkflowMainTableInfo();
WorkflowRequestTableRecord[] workflowRequestTableRecord = new WorkflowRequestTableRecord[1];
workflowMainTableInfo.setRequestRecords(workflowRequestTableRecord);
workflowRequestTableRecord[0] = new WorkflowRequestTableRecord();
workflowRequestTableRecord[0].setWorkflowRequestTableFields(workflowRequestTableField);
// 构建明细表数据
WorkflowDetailTableInfo[] workflowDetailTableInfoArray = new WorkflowDetailTableInfo[3];
workflowDetailTableInfoArray[0] = new WorkflowDetailTableInfo();
// 明细表一
WorkflowRequestTableRecord[] workflowRequestTableRecordDt = new WorkflowRequestTableRecord[1];
WorkflowRequestTableField[] workflowRequestTableFieldDt = {
createWorkflowRequestTableField("pgxmpxkc", pxmc)
};
workflowRequestTableRecordDt[0] = new WorkflowRequestTableRecord();
workflowRequestTableRecordDt[0].setWorkflowRequestTableFields(workflowRequestTableFieldDt);
workflowDetailTableInfoArray[0].setWorkflowRequestTableRecords(workflowRequestTableRecordDt);
createWorkflowRequest(FLOW_ID, "培训效果评估表-" + lastName + "-" + DateUtil.getCurrentDate(), userId, "1", workflowMainTableInfo, workflowDetailTableInfoArray);
}
/**
* 创建流程
*
* @param flowId
* @param title
* @param creatorId
* @param isNextFlow
* @param workflowMainTableInfo
* @param workflowDetailTableInfoArray
* @return
*/
public static String createWorkflowRequest(String flowId, String title, String creatorId, String isNextFlow, WorkflowMainTableInfo workflowMainTableInfo, WorkflowDetailTableInfo[] workflowDetailTableInfoArray) {
WorkflowBaseInfo workflowBaseInfo = new WorkflowBaseInfo();
workflowBaseInfo.setWorkflowId(flowId);
//工作流程请求信息
WorkflowRequestInfo workflowRequestInfo = new WorkflowRequestInfo();
//请求标题
workflowRequestInfo.setRequestName(title);
//请求重要级别
workflowRequestInfo.setRequestLevel("1");
//显示
workflowRequestInfo.setCanView(true);
//创建者id
workflowRequestInfo.setCreatorId(creatorId);
//工作流信息
workflowRequestInfo.setWorkflowBaseInfo(workflowBaseInfo);
//主表
workflowRequestInfo.setWorkflowMainTableInfo(workflowMainTableInfo);
workflowRequestInfo.setWorkflowDetailTableInfos(workflowDetailTableInfoArray);
//是否提交下一节点
workflowRequestInfo.setIsnextflow(isNextFlow);
WorkflowService workflow = new WorkflowServiceImpl();
return workflow.doCreateWorkflowRequest(workflowRequestInfo, Convert.toInt(creatorId, 1));
}
/**
* 创建流程字段
*
* @param fieldName
* @param fieldValue
* @return
*/
public static WorkflowRequestTableField createWorkflowRequestTableField(String fieldName, String fieldValue) {
WorkflowRequestTableField tableField = new WorkflowRequestTableField();
tableField.setFieldName(fieldName);
tableField.setFieldValue(fieldValue);
tableField.setView(true);
tableField.setEdit(true);
return tableField;
}
}