diff --git a/src/com/engine/organization/entity/chart/params/QuickChangeMessageParam.java b/src/com/engine/organization/entity/chart/params/QuickChangeMessageParam.java index ab319f07..34d6f620 100644 --- a/src/com/engine/organization/entity/chart/params/QuickChangeMessageParam.java +++ b/src/com/engine/organization/entity/chart/params/QuickChangeMessageParam.java @@ -18,13 +18,23 @@ import lombok.NoArgsConstructor; @Builder public class QuickChangeMessageParam { + private String workflowId; + + private String mainTableName; + private OperateTypeEnum operateType; - private Integer companyId; + private String type; + + private String subCompanyIdFrom; + + private String subCompanyIdTo; + + private String departmentIdFrom; - private Integer departmentIdFrom; + private String departmentIdTo; - private Integer departmentIdTo; + private String mergeName; private String content; } diff --git a/src/com/engine/organization/entity/commom/CusWorkflowRequestInfo.java b/src/com/engine/organization/entity/commom/CusWorkflowRequestInfo.java new file mode 100644 index 00000000..2ea86167 --- /dev/null +++ b/src/com/engine/organization/entity/commom/CusWorkflowRequestInfo.java @@ -0,0 +1,40 @@ +package com.engine.organization.entity.commom; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import weaver.workflow.webservices.WorkflowBaseInfo; +import weaver.workflow.webservices.WorkflowMainTableInfo; + +/** + * @Author liang.cheng + * @Date 2024/4/11 6:10 PM + * @Description: + * @Version 1.0 + */ + +@Data +@NoArgsConstructor +@Builder +@AllArgsConstructor +public class CusWorkflowRequestInfo { + + + private String workflowName; + + private String nextFlow; + + private String requestLevel; + + private boolean canView; + + private String creatorId; + + private WorkflowBaseInfo workflowBaseInfo; + + private WorkflowMainTableInfo workflowMainTableInfo; + + + +} diff --git a/src/com/engine/organization/entity/commom/RemindContentInfo.java b/src/com/engine/organization/entity/commom/RemindContentInfo.java new file mode 100644 index 00000000..1043caf0 --- /dev/null +++ b/src/com/engine/organization/entity/commom/RemindContentInfo.java @@ -0,0 +1,23 @@ +package com.engine.organization.entity.commom; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author liang.cheng + * @Date 2024/4/15 3:31 PM + * @Description: + * @Version 1.0 + */ +@Data +@NoArgsConstructor +@Builder +@AllArgsConstructor +public class RemindContentInfo { + + private String content; + + private String title; +} diff --git a/src/com/engine/organization/service/RemindMessageServiceImpl.java b/src/com/engine/organization/service/RemindMessageServiceImpl.java index e3f54e5e..b012da6f 100644 --- a/src/com/engine/organization/service/RemindMessageServiceImpl.java +++ b/src/com/engine/organization/service/RemindMessageServiceImpl.java @@ -1,7 +1,22 @@ package com.engine.organization.service; + import com.engine.core.impl.Service; import com.engine.organization.entity.chart.params.QuickChangeMessageParam; +import com.engine.organization.entity.commom.CusWorkflowRequestInfo; +import com.engine.organization.entity.commom.RemindContentInfo; +import com.engine.organization.util.OrganizationCommonUtil; +import lombok.SneakyThrows; + +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.hrm.company.DepartmentComInfo; +import weaver.hrm.company.SubCompanyComInfo; +import weaver.workflow.webservices.WorkflowBaseInfo; +import weaver.workflow.webservices.WorkflowMainTableInfo; +import weaver.workflow.webservices.WorkflowRequestTableField; +import weaver.workflow.webservices.WorkflowRequestTableRecord; + /** * @Author liang.cheng @@ -14,6 +29,107 @@ public class RemindMessageServiceImpl extends Service implements RemindMessageSe @Override public String remindWorkflow(QuickChangeMessageParam param) { - return null; + + BaseBean bb = new BaseBean(); + WorkflowBaseInfo workflowBaseInfo = new WorkflowBaseInfo(); + workflowBaseInfo.setWorkflowId(param.getWorkflowId()); + + WorkflowMainTableInfo workflowMainTableInfo = new WorkflowMainTableInfo(); + String personId = bb.getPropValue("hrmOrganization", "personId"); + WorkflowRequestTableField mutiresource = OrganizationCommonUtil.createWorkflowRequestTableField("mutiresource", personId, true); + RemindContentInfo remindContentInfo = remindContent(param); + WorkflowRequestTableField remark = OrganizationCommonUtil.createWorkflowRequestTableField("remark", remindContentInfo.getContent(), true); + WorkflowRequestTableField[] workflowRequestTableField = {mutiresource,remark}; + + WorkflowRequestTableRecord[] workflowRequestTableRecord = new WorkflowRequestTableRecord[1]; + workflowMainTableInfo.setRequestRecords(workflowRequestTableRecord); + workflowRequestTableRecord[0] = new WorkflowRequestTableRecord(); + workflowRequestTableRecord[0].setWorkflowRequestTableFields(workflowRequestTableField); + + CusWorkflowRequestInfo cusWorkflowRequestInfo = CusWorkflowRequestInfo.builder() + .workflowName(String.format("组织架构快速调整审批提醒 (%s)",remindContentInfo.getTitle())) + .nextFlow("1") + .requestLevel("1") + .canView(true) + .creatorId(String.valueOf(user.getUID())) + .workflowBaseInfo(workflowBaseInfo) + .workflowMainTableInfo(workflowMainTableInfo) + .build(); + + return OrganizationCommonUtil.doCreateWorkflow(cusWorkflowRequestInfo); + } + + + /** + * 构造提醒内容 + * @param param + * @return + */ + @SneakyThrows + private RemindContentInfo remindContent(QuickChangeMessageParam param) { + RecordSet rs = new RecordSet(); + DepartmentComInfo deptComInfo = new DepartmentComInfo(); + SubCompanyComInfo supComInfo = new SubCompanyComInfo(); + + StringBuilder content = new StringBuilder("提醒:"); + content.append("公司:"); + if ("dept".equals(param.getType())) { + String departmentNameF = deptComInfo.getDepartmentName(param.getDepartmentIdFrom()); + String subcompanyidF = deptComInfo.getSubcompanyid1(param.getDepartmentIdFrom()); + String subcompanyNameF = supComInfo.getSubCompanyname(subcompanyidF); + + String departmentNameT = deptComInfo.getDepartmentName(param.getDepartmentIdTo()); + String subcompanyidT = deptComInfo.getSubcompanyid1(param.getDepartmentIdTo()); + String subcompanyNameT = supComInfo.getSubCompanyname(subcompanyidT); + content.append(subcompanyNameF).append(",").append(" 部门:"); + + + String departmentRealPath = deptComInfo.getDepartmentRealPath(param.getDepartmentIdFrom(), "/", ""); + + switch (param.getOperateType().getValue()){ + case "4": + content.append(departmentRealPath).append(",").append("已被删除,"); + break; + case "8": + content.append(departmentRealPath).append(",").append("已被封存,"); + break; + case "6": + content.append(departmentNameF).append(" 已合并到公司:").append(subcompanyNameT).append(" 部门:").append(departmentNameT) + .append(", 合并后名称:").append(param.getMergeName()).append(","); + break; + case "5": + content.append(departmentNameF).append(" 已转移到公司:").append(subcompanyNameT).append(" 部门:").append(departmentNameT) + .append(" 下,"); + break; + default :break; + } + }else { + String subCompanynameF = supComInfo.getSubCompanyname(param.getSubCompanyIdFrom()); + String subCompanynameT = supComInfo.getSubCompanyname(param.getSubCompanyIdTo()); + + content.append(subCompanynameF).append(","); + switch (param.getOperateType().getValue()){ + case "4": + content.append("已被删除,"); + break; + case "8": + content.append("已被封存,"); + break; + case "6": + content.append("已合并到公司:").append(subCompanynameT).append(",合并后名称:").append(param.getMergeName()).append(","); + break; + case "5": + content.append("已转移到公司:").append(subCompanynameT).append(" 下,"); + break; + default :break; + } + } + + content.append(" 请检查系统配置。"); + return RemindContentInfo.builder().content(content.toString()).title(param.getOperateType().getLabel()).build(); } + + + } + diff --git a/src/com/engine/organization/util/OrganizationCommonUtil.java b/src/com/engine/organization/util/OrganizationCommonUtil.java index c8f37edc..94a63ce7 100644 --- a/src/com/engine/organization/util/OrganizationCommonUtil.java +++ b/src/com/engine/organization/util/OrganizationCommonUtil.java @@ -1,5 +1,8 @@ package com.engine.organization.util; +import com.engine.organization.entity.commom.CusWorkflowRequestInfo; +import weaver.workflow.webservices.*; + import java.util.ArrayList; import java.util.List; @@ -28,4 +31,45 @@ public class OrganizationCommonUtil { } return splittedLists; } + + + /** + * @Description: 自动创建流程 + * @Author: liang.cheng + * @Date: 2024/4/11 6:18 PM + * @param: [cusWq] + * @return: java.lang.String + */ + public static String doCreateWorkflow(CusWorkflowRequestInfo cusWq){ + + //工作流程请求信息 + WorkflowRequestInfo workflowRequestInfo = new WorkflowRequestInfo(); + //请求标题 + workflowRequestInfo.setRequestName(cusWq.getWorkflowName()); + //请求重要级别 + workflowRequestInfo.setRequestLevel(cusWq.getRequestLevel()); + //显示 + workflowRequestInfo.setCanView(cusWq.isCanView()); + //创建者id + workflowRequestInfo.setCreatorId(cusWq.getCreatorId()); + //工作流信息 + workflowRequestInfo.setWorkflowBaseInfo(cusWq.getWorkflowBaseInfo()); + //主表 + workflowRequestInfo.setWorkflowMainTableInfo(cusWq.getWorkflowMainTableInfo()); + //是否提交下一节点 + workflowRequestInfo.setIsnextflow(cusWq.getNextFlow()); + + WorkflowService workflow = new WorkflowServiceImpl(); + return workflow.doCreateWorkflowRequest(workflowRequestInfo, Integer.parseInt(cusWq.getCreatorId())); + } + + + public static WorkflowRequestTableField createWorkflowRequestTableField(String fieldName, String fieldValue,boolean view) { + WorkflowRequestTableField tableField = new WorkflowRequestTableField(); + tableField.setFieldName(fieldName); + tableField.setFieldValue(fieldValue); + tableField.setView(view); + tableField.setEdit(true); + return tableField; + } }