diff --git a/src/weaver/interfaces/hzzx/action/TrainingManageCreateFlowAction.java b/src/weaver/interfaces/hzzx/action/TrainingManageCreateFlowAction.java new file mode 100644 index 0000000..0446ffe --- /dev/null +++ b/src/weaver/interfaces/hzzx/action/TrainingManageCreateFlowAction.java @@ -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 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; + } + +}