Compare commits
13 Commits
master
...
大王椰组织调整工作流提醒
| Author | SHA1 | Date |
|---|---|---|
|
|
c08f0fbb2a | |
|
|
30da1ecc45 | |
|
|
87b46999e2 | |
|
|
87077db4aa | |
|
|
fe3febba66 | |
|
|
b5d04cdac5 | |
|
|
47fe053323 | |
|
|
ee481d8d6f | |
|
|
79ef169464 | |
|
|
4fb302c415 | |
|
|
05a35d68db | |
|
|
c61b751fa9 | |
|
|
80b9bb6de4 |
|
|
@ -0,0 +1,15 @@
|
|||
package com.api.organization.web;
|
||||
|
||||
import javax.ws.rs.Path;
|
||||
|
||||
/**
|
||||
* @Author liang.cheng
|
||||
* @Date 2024/4/11 2:21 PM
|
||||
* @Description: 消息提醒
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Path("/bs/hrmorganization/remind")
|
||||
public class RemindMessageController extends com.engine.organization.web.RemindMessageController{
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
package com.engine.organization.entity.chart.params;
|
||||
|
||||
import com.engine.organization.enums.OperateTypeEnum;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @Author liang.cheng
|
||||
* @Date 2024/4/11 4:51 PM
|
||||
* @Description: 快速调整界面发送默认工作流提醒
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class QuickChangeMessageParam {
|
||||
|
||||
private String workflowId;
|
||||
|
||||
private String mainTableName;
|
||||
|
||||
private OperateTypeEnum operateType;
|
||||
|
||||
private String type;
|
||||
|
||||
private String subCompanyIdFrom;
|
||||
|
||||
private String subCompanyIdTo;
|
||||
|
||||
private String departmentIdFrom;
|
||||
|
||||
private String departmentIdTo;
|
||||
|
||||
private String mergeName;
|
||||
|
||||
private String content;
|
||||
|
||||
private boolean canceled;
|
||||
|
||||
/**
|
||||
* 转移类型 1 部门到部门 2 部门到分部 3分部到分部
|
||||
*/
|
||||
private Integer tranfeserType;
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
package com.engine.organization.service;
|
||||
|
||||
import com.engine.organization.entity.chart.params.QuickChangeMessageParam;
|
||||
|
||||
/**
|
||||
* @Author liang.cheng
|
||||
* @Date 2024/4/11 2:30 PM
|
||||
* @Description: TODO
|
||||
* @Version 1.0
|
||||
*/
|
||||
public interface RemindMessageService {
|
||||
|
||||
|
||||
/**
|
||||
* @Description: 快速调整界面 操作提醒系统默认工作流
|
||||
* @Author: liang.cheng
|
||||
* @Date: 2024/4/11 5:04 PM
|
||||
* @param: [param]
|
||||
* @return: java.lang.String
|
||||
*/
|
||||
String remindWorkflow(QuickChangeMessageParam param);
|
||||
}
|
||||
|
|
@ -0,0 +1,161 @@
|
|||
package com.engine.organization.service.impl;
|
||||
|
||||
|
||||
import com.engine.common.service.impl.HrmCommonServiceImpl;
|
||||
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.service.RemindMessageService;
|
||||
import com.engine.organization.util.OrganizationCommonUtil;
|
||||
import lombok.SneakyThrows;
|
||||
|
||||
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;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
/**
|
||||
* @Author liang.cheng
|
||||
* @Date 2024/4/11 2:30 PM
|
||||
* @Description:
|
||||
* @Version 1.0
|
||||
*/
|
||||
public class RemindMessageServiceImpl extends Service implements RemindMessageService {
|
||||
|
||||
|
||||
@Override
|
||||
public String remindWorkflow(QuickChangeMessageParam param) {
|
||||
|
||||
BaseBean bb = new BaseBean();
|
||||
WorkflowBaseInfo workflowBaseInfo = new WorkflowBaseInfo();
|
||||
workflowBaseInfo.setWorkflowId(param.getWorkflowId());
|
||||
|
||||
WorkflowMainTableInfo workflowMainTableInfo = new WorkflowMainTableInfo();
|
||||
//String personId = bb.getPropValue("hrmOrganization", "personId");
|
||||
String roleId = bb.getPropValue("hrmOrganization", "roleId");
|
||||
|
||||
HrmCommonServiceImpl hrmCommonService = new HrmCommonServiceImpl();
|
||||
|
||||
List<Object> roleMembers = hrmCommonService.getRoleMembers(roleId, "", null);
|
||||
String result = roleMembers.stream()
|
||||
.map(Object::toString)
|
||||
.collect(Collectors.joining(","));
|
||||
|
||||
WorkflowRequestTableField mutiresource = OrganizationCommonUtil.createWorkflowRequestTableField("mutiresource", result, 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) {
|
||||
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(), ">", "0");
|
||||
|
||||
switch (param.getOperateType().getValue()){
|
||||
case "4":
|
||||
content.append(param.getDepartmentIdFrom()).append(",").append("已被删除,");
|
||||
break;
|
||||
case "8":
|
||||
content.append(departmentRealPath).append(",");
|
||||
if (param.isCanceled()) {
|
||||
content.append("已被恢复");
|
||||
}else {
|
||||
content.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(" 已转移到公司:");
|
||||
if (param.getTranfeserType() == 2) {
|
||||
content.append(supComInfo.getSubCompanyname(param.getSubCompanyIdTo())).append(" 下,");
|
||||
}else {
|
||||
content.append(subcompanyNameT).append(" 部门:").append(departmentNameT).append(" 下,");
|
||||
}
|
||||
break;
|
||||
default :break;
|
||||
}
|
||||
}else {
|
||||
String subCompanynameT = supComInfo.getSubCompanyname(param.getSubCompanyIdTo());
|
||||
String subCompanynameF = supComInfo.getSubCompanyname(param.getSubCompanyIdFrom());
|
||||
|
||||
switch (param.getOperateType().getValue()){
|
||||
case "4":
|
||||
content.append(param.getSubCompanyIdFrom()).append(",");
|
||||
content.append("已被删除,");
|
||||
break;
|
||||
case "8":
|
||||
content.append(subCompanynameF).append(",");
|
||||
if (param.isCanceled()) {
|
||||
content.append("已被恢复,");
|
||||
}else {
|
||||
content.append("已被封存,");
|
||||
}
|
||||
break;
|
||||
case "5":
|
||||
content.append(subCompanynameF).append(",");
|
||||
content.append("已转移到公司:").append(subCompanynameT).append(" 下,");
|
||||
break;
|
||||
default :break;
|
||||
}
|
||||
}
|
||||
|
||||
content.append(" 请检查系统配置。");
|
||||
return RemindContentInfo.builder().content(content.toString()).title(param.getOperateType().getLabel()).build();
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,45 @@
|
|||
package com.engine.organization.web;
|
||||
|
||||
import com.engine.common.util.ServiceUtil;
|
||||
import com.engine.organization.entity.chart.params.QuickChangeMessageParam;
|
||||
import com.engine.organization.service.RemindMessageService;
|
||||
import com.engine.organization.service.impl.RemindMessageServiceImpl;
|
||||
import com.engine.organization.util.response.ReturnResult;
|
||||
import io.swagger.v3.oas.annotations.parameters.RequestBody;
|
||||
import weaver.hrm.HrmUserVarify;
|
||||
import weaver.hrm.User;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.ws.rs.POST;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
|
||||
/**
|
||||
* @Author liang.cheng
|
||||
* @Date 2024/4/11 2:20 PM
|
||||
* @Description: 触发消息提醒 工作流提醒
|
||||
* @Version 1.0
|
||||
*/
|
||||
public class RemindMessageController {
|
||||
|
||||
public RemindMessageService getRemindMessageService(User user) {
|
||||
return ServiceUtil.getService(RemindMessageServiceImpl.class,user);
|
||||
}
|
||||
|
||||
|
||||
@POST
|
||||
@Path("/quickly/workflow/message")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public ReturnResult remindWorkflow(@Context HttpServletRequest request, @Context HttpServletResponse response, @RequestBody QuickChangeMessageParam param) {
|
||||
try {
|
||||
User user = HrmUserVarify.getUser(request, response);
|
||||
return ReturnResult.successed(getRemindMessageService(user).remindWorkflow(param));
|
||||
} catch (Exception e) {
|
||||
return ReturnResult.exceptionHandle(e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue