From fd691a4eef640a7ccb111c17b27746cbb488fceb Mon Sep 17 00:00:00 2001 From: dxfeng Date: Thu, 27 Mar 2025 14:29:53 +0800 Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E8=A7=A6=E5=8F=91=E6=B5=81?= =?UTF-8?q?=E7=A8=8B=EF=BC=9A=E7=AE=A1=E7=90=86=E5=91=98=E5=8F=91=E8=B5=B7?= =?UTF-8?q?=E3=80=8A5.2.6=E5=9F=B9=E8=AE=AD=E6=95=88=E6=9E=9C=E8=AF=84?= =?UTF-8?q?=E4=BC=B0=E7=AE=A1=E7=90=86=E3=80=8B=E9=80=89=E6=8B=A9=E4=BA=86?= =?UTF-8?q?=E5=9F=B9=E8=AE=AD=E5=90=8D=E7=A7=B0=E5=90=8E=E4=BC=9A=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E5=B8=A6=E5=87=BA=E5=A4=9A=E4=BA=BA=E5=8A=9B=E8=B5=84?= =?UTF-8?q?=E6=BA=90=E5=80=BC=EF=BC=8C=EF=BC=8C=E5=B9=B6=E4=B8=94=20=20?= =?UTF-8?q?=E5=9F=B9=E8=AE=AD=E6=95=88=E6=9E=9C=E8=AF=84=E4=BC=B0=E6=96=B9?= =?UTF-8?q?=E5=BC=8F=E9=80=89=E6=8B=A9=E4=BA=86=20=20=E5=9F=B9=E8=AE=AD?= =?UTF-8?q?=E6=95=88=E6=9E=9C=E8=AF=84=E4=BC=B0=E8=A1=A8=20=20=20=E6=8F=90?= =?UTF-8?q?=E4=BA=A4=E6=B5=81=E7=A8=8B=E5=90=8E=E5=A4=9A=E4=BA=BA=E9=87=8C?= =?UTF-8?q?=E8=B5=84=E6=BA=90=E9=87=8C=E9=9D=A2=E6=89=80=E6=9C=89=E7=9A=84?= =?UTF-8?q?=E4=BA=BA=E6=94=B6=E5=88=B0=E3=80=8A=E5=9F=B9=E8=AE=AD=E6=95=88?= =?UTF-8?q?=E6=9E=9C=E8=AF=84=E4=BC=B0=E8=A1=A8=E3=80=8B=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E8=BF=9B=E8=A1=8C=E6=89=93=E5=88=86=EF=BC=8C=E6=94=B6=E5=88=B0?= =?UTF-8?q?=E6=97=B6=E5=A4=84=E4=BA=8E=E5=AE=A1=E6=89=B9=E7=8E=AF=E8=8A=82?= =?UTF-8?q?=EF=BC=8C=E6=89=93=E5=88=86=E7=9B=B4=E6=8E=A5=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=E6=B5=81=E7=A8=8B=E5=8D=B3=E5=8F=AF=E5=BD=92=E6=A1=A3=E3=80=82?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E8=A7=A6=E5=8F=91=E7=9A=84=E5=9F=B9=E8=AE=AD?= =?UTF-8?q?=E6=95=88=E6=9E=9C=E8=AF=84=E4=BC=B0=E8=A1=A8=E4=B9=9F=E8=A6=81?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=B8=A6=E5=87=BA=E8=AF=84=E4=BC=B0=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E5=9F=B9=E8=AE=AD=E8=AF=BE=E7=A8=8B=20=20=E5=B0=B1?= =?UTF-8?q?=E6=98=AF=E5=9F=B9=E8=AE=AD=E4=B8=BB=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TrainingManageCreateFlowAction.java | 164 ++++++++++++++++++ 1 file changed, 164 insertions(+) create mode 100644 src/weaver/interfaces/hzzx/action/TrainingManageCreateFlowAction.java 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; + } + +}