Compare commits

...

7 Commits

@ -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…
Cancel
Save