Compare commits

...

13 Commits

Author SHA1 Message Date
Chengliang c08f0fbb2a Merge branches 'develop' and '大王椰组织调整工作流提醒' of http://221.226.25.34:3000/liang.cheng/weaver-hrm-organization into 大王椰组织调整工作流提醒 2024-08-27 15:49:17 +08:00
Chengliang 30da1ecc45 Merge branches 'develop' and '大王椰组织调整工作流提醒' of http://221.226.25.34:3000/liang.cheng/weaver-hrm-organization into 大王椰组织调整工作流提醒
# Conflicts:
#	src/com/engine/organization/util/response/ReturnResult.java
2024-08-27 15:23:04 +08:00
Chengliang 87b46999e2 修复cardAccess多语言标签 2024-08-21 14:45:28 +08:00
Chengliang 87077db4aa 大王椰二开合并20240719
非标包
2024-07-23 14:35:18 +08:00
Chengliang fe3febba66 Merge remote-tracking branch 'origin/develop' into 大王椰组织调整工作流提醒 2024-07-23 10:42:07 +08:00
Chengliang b5d04cdac5 Merge branch 'develop' into 大王椰组织调整工作流提醒 2024-07-23 10:41:15 +08:00
Chengliang 47fe053323 大王椰快速调整流程提醒走角色开发 2024-07-11 14:51:06 +08:00
Chengliang ee481d8d6f 大王椰项目工作流提醒 修复分部名称 及部门全路径格式 2024-04-25 15:23:35 +08:00
Chengliang 79ef169464 大王椰组件跳转工作流提醒接口 路径修改 2024-04-18 18:32:58 +08:00
Chengliang 4fb302c415 大王椰组件跳转工作流提醒接口 删除接口修改 转移接口 2024-04-18 08:13:19 +08:00
Chengliang 05a35d68db 大王椰组件跳转工作流提醒接口 删除接口需修改q'y 2024-04-16 18:56:36 +08:00
Chengliang c61b751fa9 大王椰组件跳转工作流提醒接口完成 2024-04-15 18:32:26 +08:00
Chengliang 80b9bb6de4 大王椰组件跳转工作流提醒接口初始化 2024-04-11 17:33:16 +08:00
8 changed files with 397 additions and 0 deletions

View File

@ -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{
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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);
}

View File

@ -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();
}
}

View File

@ -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;
}
}

View File

@ -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);
}
}
}