发布按钮,废止按钮后端逻辑提交

This commit is contained in:
yujh 2024-06-27 09:55:01 +08:00
parent 740e8b2d9c
commit a3c58db588
2 changed files with 133 additions and 9 deletions

View File

@ -4,6 +4,8 @@ import com.actionsoft.apps.AppsConst;
import com.actionsoft.apps.coe.pal.pal.repository.PALRepositoryQueryAPIManager;
import com.actionsoft.apps.coe.pal.publisher.client.web.ProcessPublishClientWeb;
import com.actionsoft.apps.coe.pal.publisher.client.web.ProcessPublishWeb;
import com.actionsoft.bpms.bpmn.engine.model.run.delegate.ProcessInstance;
import com.actionsoft.bpms.bpmn.engine.model.run.delegate.TaskInstance;
import com.actionsoft.bpms.commons.htmlframework.HtmlPageTemplate;
import com.actionsoft.bpms.commons.login.constant.LoginConst;
import com.actionsoft.bpms.commons.mvc.view.ResponseObject;
@ -907,5 +909,26 @@ public class PublisherController {
return web.changeHisToPublicAll();
}
/**
* 创建发布流程
* @param processDefId
* @return
*/
@Mapping("com.actionsoft.apps.coe.pal.publisher.createProcess")
public String createProcess(UserContext me,String palUUID, String processDefId) {
ProcessPublishWeb web = new ProcessPublishWeb(me);
return web.createProcess(palUUID,processDefId);
}
/**
* 创建发布流程(废止状态)
* @param processDefId
* @return
*/
@Mapping("com.actionsoft.apps.coe.pal.publisher.createProcess_processTermination")
public String createProcessTermination(UserContext me,String palUUID, String processDefId) {
ProcessPublishWeb web = new ProcessPublishWeb(me);
return web.createProcessTermination(palUUID,processDefId);
}
}

View File

@ -4,15 +4,7 @@ import java.io.File;
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.*;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.LinkedBlockingDeque;
import java.util.concurrent.ThreadFactory;
@ -20,6 +12,8 @@ import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import com.actionsoft.apps.coe.pal.pal.repository.cache.PALRepositoryPropertyCache;
import com.actionsoft.apps.coe.pal.publisher.constant.FilePermConstant;
import org.apache.commons.lang.StringUtils;
import com.actionsoft.apps.coe.pal.constant.CoEConstant;
@ -4953,4 +4947,111 @@ public class ProcessPublishWeb extends ActionWeb {
return String.valueOf(count);
}
/**
* 创建发布流程
* @param processDefId
* @return
*/
public String createProcess(String palUUID,String processDefId) {
ResponseObject responseObject = ResponseObject.newOkResponse();
String optionType = "";//发布类型
String subBoName = "";//子表名称
//获取文件属性
PALRepositoryModel thisModel = PALRepositoryCache.getCache().get(palUUID);
PALRepositoryModel hisModel = null;
List<PALRepositoryModel> modelList = PALRepositoryCache.getCache().getByVersionId(thisModel.getVersionId());
Optional<PALRepositoryModel> firstPublished = modelList.stream().filter(PALRepositoryModel::isPublish).findFirst();
if (firstPublished.isPresent()) {
hisModel = firstPublished.get();
System.out.println("第一个已发布的对象是:" + hisModel.toString()); // 假设有toString方法
if(hisModel.getId().equals(thisModel.getId())){
responseObject.msg("该文件已经发布");
return responseObject.toString();
}else{
optionType = "流程制度版本更新";
subBoName = "BO_ACT_COE_PUBLISH_C";
}
} else {
optionType = "流程制度发布";
subBoName = "BO_ACT_COE_PUBLISH_N";
}
ProcessInstance processInstance = SDK.getProcessAPI().createProcessInstance(processDefId, _uc.getUID(), _uc.getUserName()+"发起流程发布流程");
BO bo =new BO();
BO subBO =new BO();
bo.set("OPTIONTYPE",optionType);//发布类型不同的发布类型显示不同的子表数据
if(optionType.equals("流程制度发布")){//创建一个子表
subBO.set("PUBLISTHTYPE","N");
subBO.set("PUBLISHFILENAME",thisModel.getName());
subBO.set("PUBLISHFILEID",thisModel.getId());
subBO.set("TASKID","submit_create");
subBO.set("FILETYPE","111");
SDK.getBOAPI().create(subBoName,subBO,processInstance.getId(),_uc.getUID());
}else {
subBO.set("CHANGETYPE","C");
subBO.set("CHANGEFILENAME",hisModel.getName());
subBO.set("CHANGEDFILENAMENEW",thisModel.getName());
subBO.set("CHANGEFILEID",hisModel.getId());
subBO.set("CHANGEDFILEIDNEW",thisModel.getId());
subBO.set("TASKID","submit_create");
subBO.set("PUBLISH_NUMBER",PALRepositoryPropertyCache.getPropertyByPropertyId(palUUID, "file_number").getPropertyValue());
SDK.getBOAPI().create(subBoName,subBO,processInstance.getId(),_uc.getUID());
}
//获取流程L1-L4等级名称
getProcessLevel(bo,palUUID);
//创建主表数据
SDK.getBOAPI().create(PublisherConstant.BOTABLENAME,bo,processInstance.getId(),_uc.getUID());
TaskInstance taskInstance = SDK.getProcessAPI().start(processInstance).fetchActiveTasks().get(0);
String formURL = SDK.getFormAPI().getFormURL(SDK.getPlatformAPI().getPortalUrl(), getContext().getSessionId(), processInstance.getId(), taskInstance.getId(), SDK.getTaskAPI().getTaskInstance(taskInstance.getId()).getState(), "", "", "");
responseObject.put("url",formURL);
return responseObject.toString();
}
/**
* 废止逻辑
* @param palUUID
* @param processDefId
* @return
*/
public String createProcessTermination(String palUUID,String processDefId) {
ResponseObject responseObject = ResponseObject.newOkResponse();
String optionType = "流程制度废止";
String subBoName = "BO_ACT_COE_PUBLISH_S";
//获取文件属性
PALRepositoryModel thisModel = PALRepositoryCache.getCache().get(palUUID);
ProcessInstance processInstance = SDK.getProcessAPI().createProcessInstance(processDefId, _uc.getUID(), _uc.getUserName()+"发起流程发布流程");
BO bo =new BO();
BO subBO =new BO();
bo.set("OPTIONTYPE",optionType);//发布类型不同的发布类型显示不同的子表数据
//获取流程L1-L4等级名称
getProcessLevel(bo,palUUID);
subBO.set("STOPTYPE","S");
subBO.set("STOPFILENAME",thisModel.getName());
subBO.set("STOPFILEID",thisModel.getId());
subBO.set("TASKID","submit_create");
SDK.getBOAPI().create(PublisherConstant.BOTABLENAME,bo,processInstance.getId(),_uc.getUID());
SDK.getBOAPI().create(subBoName,subBO,processInstance.getId(),_uc.getUID());
TaskInstance taskInstance = SDK.getProcessAPI().start(processInstance).fetchActiveTasks().get(0);
String formURL = SDK.getFormAPI().getFormURL(SDK.getPlatformAPI().getPortalUrl(), getContext().getSessionId(), processInstance.getId(), taskInstance.getId(), SDK.getTaskAPI().getTaskInstance(taskInstance.getId()).getState(), "", "", "");
responseObject.put("url",formURL);
return responseObject.toString();
}
/**
* 获取流程L1-L4等级名称
* @param bo
* @param palUUID
* @return
*/
public void getProcessLevel(BO bo,String palUUID){
PALRepositoryPropertyCache cache = PALRepositoryPropertyCache.getCache();
String l1_name = cache.getPropertyByPropertyId(palUUID, "Process_Architecture_L1").getPropertyValue();
bo.set("LEVEL_1_PROCESS_NAME",l1_name);
String l2_name = cache.getPropertyByPropertyId(palUUID, "Process_Architecture_L2").getPropertyValue();
bo.set("LEVEL_2_PROCESS_NAME",l2_name);
String l3_name = cache.getPropertyByPropertyId(palUUID, "Process_Architecture_L3").getPropertyValue();
bo.set("LEVEL_3_PROCESS_NAME",l3_name);
String l4_name = cache.getPropertyByPropertyId(palUUID, "Process_Architecture_L4").getPropertyValue();
bo.set("LEVEL_4_PROCESS_NAME",l4_name);
}
}